//
using System;
using JobTrackerApi.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace JobTrackerApi.Migrations
{
[DbContext(typeof(JobTrackerContext))]
partial class JobTrackerContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder.HasAnnotation("ProductVersion", "9.0.14");
modelBuilder.Entity("JobTrackerApi.Models.AiInteraction", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("CreatedAtUtc")
.HasColumnType("TEXT");
b.Property("EstimatedTokenCount")
.HasColumnType("INTEGER");
b.Property("InputCharacterCount")
.HasColumnType("INTEGER");
b.Property("JobApplicationId")
.HasColumnType("INTEGER");
b.Property("Mode")
.HasColumnType("TEXT");
b.Property("Module")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("TEXT");
b.Property("OutputCharacterCount")
.HasColumnType("INTEGER");
b.Property("OwnerUserId")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("TEXT");
b.Property("Provider")
.IsRequired()
.HasColumnType("TEXT");
b.Property("ResultJson")
.IsRequired()
.HasColumnType("TEXT");
b.Property("Title")
.IsRequired()
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("JobApplicationId");
b.HasIndex("OwnerUserId", "JobApplicationId", "Module", "CreatedAtUtc");
b.ToTable("AiInteractions");
});
modelBuilder.Entity("JobTrackerApi.Models.AiWorkspaceNote", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("AttachmentContextSignature")
.IsRequired()
.HasColumnType("TEXT");
b.Property("GeneratedAtUtc")
.HasColumnType("TEXT");
b.Property("JobApplicationId")
.HasColumnType("INTEGER");
b.Property("NoteType")
.IsRequired()
.HasColumnType("TEXT");
b.Property("OwnerUserId")
.IsRequired()
.HasColumnType("TEXT");
b.Property("ResultJson")
.IsRequired()
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("JobApplicationId");
b.HasIndex("OwnerUserId", "JobApplicationId", "NoteType")
.IsUnique();
b.ToTable("AiWorkspaceNotes");
});
modelBuilder.Entity("JobTrackerApi.Models.ApplicationChecklistItem", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("AutoSignal")
.HasMaxLength(64)
.HasColumnType("TEXT");
b.Property("Category")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("TEXT");
b.Property("CompletedAt")
.HasColumnType("TEXT");
b.Property("CreatedAtUtc")
.HasColumnType("TEXT");
b.Property("Description")
.HasColumnType("TEXT");
b.Property("IsAutoCompleted")
.HasColumnType("INTEGER");
b.Property("IsSystemGenerated")
.HasColumnType("INTEGER");
b.Property("JobApplicationId")
.HasColumnType("INTEGER");
b.Property("OwnerUserId")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("TEXT");
b.Property("Section")
.HasMaxLength(64)
.HasColumnType("TEXT");
b.Property("SortOrder")
.HasColumnType("INTEGER");
b.Property("Status")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("TEXT");
b.Property("SystemKey")
.HasMaxLength(64)
.HasColumnType("TEXT");
b.Property("Title")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("TEXT");
b.Property("UpdatedAtUtc")
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("JobApplicationId", "SystemKey")
.IsUnique();
b.HasIndex("OwnerUserId", "JobApplicationId", "SortOrder");
b.ToTable("ApplicationChecklistItems");
});
modelBuilder.Entity("JobTrackerApi.Models.ApplicationUser", b =>
{
b.Property("Id")
.HasColumnType("TEXT");
b.Property("AccessFailedCount")
.HasColumnType("INTEGER");
b.Property("AiEnabled")
.HasColumnType("INTEGER");
b.Property("AvatarImageDataUrl")
.HasColumnType("TEXT");
b.Property("ConcurrencyStamp")
.IsConcurrencyToken()
.HasColumnType("TEXT");
b.Property("CurrentCvExtractionRunId")
.HasColumnType("INTEGER");
b.Property("CurrentCvProfileVersion")
.HasColumnType("INTEGER");
b.Property("CurrentCvUploadArtifactId")
.HasColumnType("INTEGER");
b.Property("DisplayName")
.HasColumnType("TEXT");
b.Property("Email")
.HasMaxLength(256)
.HasColumnType("TEXT");
b.Property("EmailConfirmed")
.HasColumnType("INTEGER");
b.Property("ExternalAiProcessingAllowed")
.HasColumnType("INTEGER");
b.Property("FirstName")
.HasColumnType("TEXT");
b.Property("GoogleEmail")
.HasColumnType("TEXT");
b.Property("GoogleLinkedAt")
.HasColumnType("TEXT");
b.Property("GoogleSubject")
.HasColumnType("TEXT");
b.Property("LastName")
.HasColumnType("TEXT");
b.Property("LockoutEnabled")
.HasColumnType("INTEGER");
b.Property("LockoutEnd")
.HasColumnType("TEXT");
b.Property("MicrosoftEmail")
.HasColumnType("TEXT");
b.Property("MicrosoftLinkedAt")
.HasColumnType("TEXT");
b.Property("MicrosoftObjectId")
.HasMaxLength(36)
.HasColumnType("TEXT");
b.Property("MicrosoftSubject")
.HasColumnType("TEXT");
b.Property("MicrosoftTenantId")
.HasMaxLength(36)
.HasColumnType("TEXT");
b.Property("NormalizedEmail")
.HasMaxLength(256)
.HasColumnType("TEXT");
b.Property("NormalizedUserName")
.HasMaxLength(256)
.HasColumnType("TEXT");
b.Property("PasswordHash")
.HasColumnType("TEXT");
b.Property("PendingEmail")
.HasMaxLength(320)
.HasColumnType("TEXT");
b.Property("PendingEmailRequestedAtUtc")
.HasColumnType("TEXT");
b.Property("PhoneNumber")
.HasColumnType("TEXT");
b.Property("PhoneNumberConfirmed")
.HasColumnType("INTEGER");
b.Property("ProfileCvStructureJson")
.HasColumnType("TEXT");
b.Property("ProfileCvText")
.HasColumnType("TEXT");
b.Property("SecurityStamp")
.HasColumnType("TEXT");
b.Property("StripeCustomerId")
.HasColumnType("TEXT");
b.Property("StripeLastEventCreatedUtc")
.HasColumnType("TEXT");
b.Property("StripeSubscriptionId")
.HasColumnType("TEXT");
b.Property("StripeSubscriptionStatus")
.HasColumnType("TEXT");
b.Property("TotpEnabledAtUtc")
.HasColumnType("TEXT");
b.Property("TotpPendingSecretEncrypted")
.HasColumnType("TEXT");
b.Property("TotpSecretEncrypted")
.HasColumnType("TEXT");
b.Property("TwoFactorEnabled")
.HasColumnType("INTEGER");
b.Property("UserName")
.HasMaxLength(256)
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("NormalizedEmail")
.HasDatabaseName("EmailIndex");
b.HasIndex("NormalizedUserName")
.IsUnique()
.HasDatabaseName("UserNameIndex");
b.HasIndex("MicrosoftTenantId", "MicrosoftObjectId")
.IsUnique();
b.ToTable("AspNetUsers", (string)null);
});
modelBuilder.Entity("JobTrackerApi.Models.Attachment", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("FileName")
.IsRequired()
.HasColumnType("TEXT");
b.Property("FilePath")
.IsRequired()
.HasColumnType("TEXT");
b.Property("FileSize")
.HasColumnType("INTEGER");
b.Property("FileType")
.IsRequired()
.HasColumnType("TEXT");
b.Property("JobApplicationId")
.HasColumnType("INTEGER");
b.Property("Purpose")
.HasColumnType("TEXT");
b.Property("UploadDate")
.HasColumnType("TEXT");
b.Property("UseForAi")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("JobApplicationId");
b.ToTable("Attachments");
});
modelBuilder.Entity("JobTrackerApi.Models.CareerCertification", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("CareerProfileId")
.HasColumnType("INTEGER");
b.Property("Date")
.HasColumnType("TEXT");
b.Property("DateNormalized")
.HasColumnType("TEXT");
b.Property("DetailsJson")
.IsRequired()
.HasColumnType("TEXT");
b.Property("Issuer")
.HasColumnType("TEXT");
b.Property("ItemKey")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("TEXT");
b.Property("Location")
.HasColumnType("TEXT");
b.Property("Name")
.HasColumnType("TEXT");
b.Property("OwnerUserId")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("TEXT");
b.Property("SortOrder")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("CareerProfileId");
b.HasIndex("OwnerUserId", "CareerProfileId", "SortOrder");
b.ToTable("CareerCertifications");
});
modelBuilder.Entity("JobTrackerApi.Models.CareerEducation", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("CareerProfileId")
.HasColumnType("INTEGER");
b.Property("DetailsJson")
.IsRequired()
.HasColumnType("TEXT");
b.Property("End")
.HasColumnType("TEXT");
b.Property("EndDate")
.HasColumnType("TEXT");
b.Property("Institution")
.HasColumnType("TEXT");
b.Property("ItemKey")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("TEXT");
b.Property("Location")
.HasColumnType("TEXT");
b.Property("OwnerUserId")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("TEXT");
b.Property("Qualification")
.HasColumnType("TEXT");
b.Property("QualificationLevel")
.HasColumnType("TEXT");
b.Property("SortOrder")
.HasColumnType("INTEGER");
b.Property("Start")
.HasColumnType("TEXT");
b.Property("StartDate")
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("CareerProfileId");
b.HasIndex("OwnerUserId", "CareerProfileId", "SortOrder");
b.ToTable("CareerEducations");
});
modelBuilder.Entity("JobTrackerApi.Models.CareerExperience", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("BulletsJson")
.IsRequired()
.HasColumnType("TEXT");
b.Property("CareerProfileId")
.HasColumnType("INTEGER");
b.Property("Company")
.HasColumnType("TEXT");
b.Property("End")
.HasColumnType("TEXT");
b.Property("EndDate")
.HasColumnType("TEXT");
b.Property("IsCurrent")
.HasColumnType("INTEGER");
b.Property("ItemKey")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("TEXT");
b.Property("Location")
.HasColumnType("TEXT");
b.Property("OwnerUserId")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("TEXT");
b.Property("SkillsJson")
.IsRequired()
.HasColumnType("TEXT");
b.Property("SortOrder")
.HasColumnType("INTEGER");
b.Property("Start")
.HasColumnType("TEXT");
b.Property("StartDate")
.HasColumnType("TEXT");
b.Property("Title")
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("CareerProfileId");
b.HasIndex("OwnerUserId", "CareerProfileId", "SortOrder");
b.ToTable("CareerExperiences");
});
modelBuilder.Entity("JobTrackerApi.Models.CareerLanguage", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("CareerProfileId")
.HasColumnType("INTEGER");
b.Property("ItemKey")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("TEXT");
b.Property("Level")
.HasColumnType("TEXT");
b.Property("Name")
.HasColumnType("TEXT");
b.Property("Notes")
.HasColumnType("TEXT");
b.Property("OwnerUserId")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("TEXT");
b.Property("SortOrder")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("CareerProfileId");
b.HasIndex("OwnerUserId", "CareerProfileId", "SortOrder");
b.ToTable("CareerLanguages");
});
modelBuilder.Entity("JobTrackerApi.Models.CareerProfile", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("CreatedAtUtc")
.HasColumnType("TEXT");
b.Property("LongTailJson")
.IsRequired()
.HasColumnType("TEXT");
b.Property("OwnerUserId")
.IsRequired()
.HasColumnType("TEXT");
b.Property("ProfileJson")
.IsRequired()
.HasColumnType("TEXT");
b.Property("UpdatedAtUtc")
.HasColumnType("TEXT");
b.Property("Version")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("OwnerUserId")
.IsUnique();
b.ToTable("CareerProfiles");
});
modelBuilder.Entity("JobTrackerApi.Models.CareerProfileVersion", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("CareerProfileId")
.HasColumnType("INTEGER");
b.Property("CreatedAtUtc")
.HasColumnType("TEXT");
b.Property("OwnerUserId")
.IsRequired()
.HasColumnType("TEXT");
b.Property("ProfileJson")
.IsRequired()
.HasColumnType("TEXT");
b.Property("Source")
.IsRequired()
.HasColumnType("TEXT");
b.Property("Version")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("CareerProfileId");
b.HasIndex("OwnerUserId", "CareerProfileId", "Version");
b.ToTable("CareerProfileVersions");
});
modelBuilder.Entity("JobTrackerApi.Models.CareerProject", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("BulletsJson")
.IsRequired()
.HasColumnType("TEXT");
b.Property("CareerProfileId")
.HasColumnType("INTEGER");
b.Property("End")
.HasColumnType("TEXT");
b.Property("EndDate")
.HasColumnType("TEXT");
b.Property("ItemKey")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("TEXT");
b.Property("LinksJson")
.IsRequired()
.HasColumnType("TEXT");
b.Property("Location")
.HasColumnType("TEXT");
b.Property("Name")
.HasColumnType("TEXT");
b.Property("OwnerUserId")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("TEXT");
b.Property("Role")
.HasColumnType("TEXT");
b.Property("SkillsJson")
.IsRequired()
.HasColumnType("TEXT");
b.Property("SortOrder")
.HasColumnType("INTEGER");
b.Property("Start")
.HasColumnType("TEXT");
b.Property("StartDate")
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("CareerProfileId");
b.HasIndex("OwnerUserId", "CareerProfileId", "SortOrder");
b.ToTable("CareerProjects");
});
modelBuilder.Entity("JobTrackerApi.Models.CareerSkill", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("CareerProfileId")
.HasColumnType("INTEGER");
b.Property("Category")
.HasColumnType("TEXT");
b.Property("ItemKey")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("TEXT");
b.Property("Name")
.HasColumnType("TEXT");
b.Property("OwnerUserId")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("TEXT");
b.Property("Proficiency")
.HasColumnType("TEXT");
b.Property("SortOrder")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("CareerProfileId");
b.HasIndex("OwnerUserId", "CareerProfileId", "SortOrder");
b.ToTable("CareerSkills");
});
modelBuilder.Entity("JobTrackerApi.Models.Company", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("LastContactedAt")
.HasColumnType("TEXT");
b.Property("Location")
.HasColumnType("TEXT");
b.Property("Name")
.IsRequired()
.HasColumnType("TEXT");
b.Property("NextContactAt")
.HasColumnType("TEXT");
b.Property("OwnerUserId")
.HasColumnType("TEXT");
b.Property("PipelineStage")
.HasColumnType("TEXT");
b.Property("RecruiterEmail")
.HasColumnType("TEXT");
b.Property("RecruiterLinkedIn")
.HasColumnType("TEXT");
b.Property("RecruiterName")
.HasColumnType("TEXT");
b.Property("Source")
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("OwnerUserId");
b.ToTable("Companies");
});
modelBuilder.Entity("JobTrackerApi.Models.Correspondence", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("AttachmentMetadataJson")
.HasColumnType("TEXT");
b.Property("Channel")
.HasColumnType("TEXT");
b.Property("Content")
.IsRequired()
.HasColumnType("TEXT");
b.Property("Date")
.HasColumnType("TEXT");
b.Property("Direction")
.HasColumnType("TEXT");
b.Property("ExternalFrom")
.HasColumnType("TEXT");
b.Property("ExternalLabelsJson")
.HasColumnType("TEXT");
b.Property("ExternalMessageId")
.HasColumnType("TEXT");
b.Property("ExternalThreadId")
.HasColumnType("TEXT");
b.Property("ExternalTo")
.HasColumnType("TEXT");
b.Property("From")
.IsRequired()
.HasColumnType("TEXT");
b.Property("JobApplicationId")
.HasColumnType("INTEGER");
b.Property("Provider")
.HasColumnType("TEXT");
b.Property("Subject")
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("JobApplicationId");
b.ToTable("Correspondences");
});
modelBuilder.Entity("JobTrackerApi.Models.CoverLetterVersion", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("AiAction")
.HasMaxLength(32)
.HasColumnType("TEXT");
b.Property("CreatedAtUtc")
.HasColumnType("TEXT");
b.Property("JobApplicationId")
.HasColumnType("INTEGER");
b.Property("OwnerUserId")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("TEXT");
b.Property("Source")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("TEXT");
b.Property("Text")
.IsRequired()
.HasColumnType("TEXT");
b.Property("Version")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("JobApplicationId");
b.HasIndex("OwnerUserId", "JobApplicationId", "Version");
b.ToTable("CoverLetterVersions");
});
modelBuilder.Entity("JobTrackerApi.Models.CvExtractionRun", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("AppliedAtUtc")
.HasColumnType("TEXT");
b.Property("ArtifactId")
.HasColumnType("INTEGER");
b.Property("CompletedAtUtc")
.HasColumnType("TEXT");
b.Property("ErrorMessage")
.HasColumnType("TEXT");
b.Property("LlmPromptVersion")
.IsRequired()
.HasColumnType("TEXT");
b.Property("NormalizedText")
.HasColumnType("TEXT");
b.Property("NormalizerVersion")
.IsRequired()
.HasColumnType("TEXT");
b.Property("OwnerUserId")
.IsRequired()
.HasColumnType("TEXT");
b.Property("ParserVersion")
.IsRequired()
.HasColumnType("TEXT");
b.Property("RawExtractedText")
.HasColumnType("TEXT");
b.Property("StartedAtUtc")
.HasColumnType("TEXT");
b.Property("Status")
.IsRequired()
.HasColumnType("TEXT");
b.Property("StructuredProfileJson")
.HasColumnType("TEXT");
b.Property("Trigger")
.IsRequired()
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("ArtifactId");
b.HasIndex("OwnerUserId", "StartedAtUtc");
b.ToTable("CvExtractionRuns");
});
modelBuilder.Entity("JobTrackerApi.Models.CvUploadArtifact", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("ByteSize")
.HasColumnType("INTEGER");
b.Property("MimeType")
.IsRequired()
.HasColumnType("TEXT");
b.Property("OriginalFileName")
.IsRequired()
.HasColumnType("TEXT");
b.Property("OwnerUserId")
.IsRequired()
.HasColumnType("TEXT");
b.Property("Sha256")
.IsRequired()
.HasColumnType("TEXT");
b.Property("StoragePath")
.IsRequired()
.HasColumnType("TEXT");
b.Property("StoredFileName")
.IsRequired()
.HasColumnType("TEXT");
b.Property("UploadedAtUtc")
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("OwnerUserId", "UploadedAtUtc");
b.ToTable("CvUploadArtifacts");
});
modelBuilder.Entity("JobTrackerApi.Models.CvVariant", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("CreatedAtUtc")
.HasColumnType("TEXT");
b.Property("IsPublic")
.HasColumnType("INTEGER");
b.Property("JobApplicationId")
.HasColumnType("INTEGER");
b.Property("Name")
.IsRequired()
.HasColumnType("TEXT");
b.Property("OwnerUserId")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("TEXT");
b.Property("PublicSlug")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("TEXT");
b.Property("SettingsJson")
.IsRequired()
.HasColumnType("TEXT");
b.Property("UpdatedAtUtc")
.HasColumnType("TEXT");
b.Property("Version")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("JobApplicationId");
b.HasIndex("PublicSlug")
.IsUnique();
b.HasIndex("OwnerUserId", "UpdatedAtUtc");
b.ToTable("CvVariants");
});
modelBuilder.Entity("JobTrackerApi.Models.CvVariantVersion", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("CreatedAtUtc")
.HasColumnType("TEXT");
b.Property("CvVariantId")
.HasColumnType("INTEGER");
b.Property("OwnerUserId")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("TEXT");
b.Property("SettingsJson")
.IsRequired()
.HasColumnType("TEXT");
b.Property("Source")
.IsRequired()
.HasColumnType("TEXT");
b.Property("Version")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("CvVariantId", "Version");
b.ToTable("CvVariantVersions");
});
modelBuilder.Entity("JobTrackerApi.Models.GmailConnection", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property("AccessTokenExpiresAt")
.HasColumnType("TEXT");
b.Property("ConnectedAt")
.HasColumnType("TEXT");
b.Property("EncryptedAccessToken")
.HasColumnType("TEXT");
b.Property("EncryptedRefreshToken")
.IsRequired()
.HasColumnType("TEXT");
b.Property("GmailAddress")
.IsRequired()
.HasColumnType("TEXT");
b.Property("LastSyncAttemptedAt")
.HasColumnType("TEXT");
b.Property