bc28893b6f
Move saved CVs and append-only revisions into an additive provider-aware migration. Preserve public slugs, builder settings, job-link nulling, and revision cascades.
72 lines
2.3 KiB
C#
72 lines
2.3 KiB
C#
namespace JobTrackerApi.Services;
|
|
|
|
/// <summary>
|
|
/// Records the current table-creation owner while the legacy startup reconciler is retired in
|
|
/// migration-backed increments. This is a governance boundary, not a second schema definition.
|
|
/// A table must appear in exactly one creation set.
|
|
/// </summary>
|
|
internal static class StartupSchemaOwnership
|
|
{
|
|
internal static readonly IReadOnlySet<string> MigrationOwnedTables = new HashSet<string>(StringComparer.Ordinal)
|
|
{
|
|
"AccountDeletionFiles",
|
|
"AccountDeletionRequests",
|
|
"AiUsageRecords",
|
|
"AiWorkspaceNotes",
|
|
"Attachments",
|
|
"Companies",
|
|
"Correspondences",
|
|
"CvExtractionRuns",
|
|
"CvUploadArtifacts",
|
|
"CvVariants",
|
|
"CvVariantVersions",
|
|
"EmailDrafts",
|
|
"EmailSendAttempts",
|
|
"GmailConnections",
|
|
"GmailReviewDecisions",
|
|
"ImapConnections",
|
|
"InterviewPrepNotes",
|
|
"JobApplications",
|
|
"JobEvents",
|
|
"Jobs",
|
|
"MicrosoftGraphConnections",
|
|
"RuleSettings",
|
|
"SystemEmailSettings",
|
|
"TailoredCvDrafts",
|
|
"TrustedDevices",
|
|
"TwoFactorRecoveryCodes",
|
|
"UserNotifications",
|
|
"UserOperations",
|
|
"UserRuleSettings",
|
|
"UserSessions",
|
|
};
|
|
|
|
internal static readonly IReadOnlySet<string> ReconcilerOwnedTables = new HashSet<string>(StringComparer.Ordinal)
|
|
{
|
|
"AiInteractions",
|
|
"ApplicationChecklistItems",
|
|
"AspNetRoleClaims",
|
|
"AspNetRoles",
|
|
"AspNetUserClaims",
|
|
"AspNetUserLogins",
|
|
"AspNetUserRoles",
|
|
"AspNetUsers",
|
|
"AspNetUserTokens",
|
|
"CareerCertifications",
|
|
"CareerEducations",
|
|
"CareerExperiences",
|
|
"CareerLanguages",
|
|
"CareerProfiles",
|
|
"CareerProfileVersions",
|
|
"CareerProjects",
|
|
"CareerSkills",
|
|
"CoverLetterVersions",
|
|
"InterviewPrepItems",
|
|
};
|
|
|
|
// Historical migrations contain guarded compatibility bootstraps for these tables so direct
|
|
// EF tooling can traverse the chain. Their current creation owner remains the reconciler.
|
|
internal static readonly IReadOnlySet<string> MigrationCompatibilityBootstrapTables =
|
|
new HashSet<string>(StringComparer.Ordinal) { "AiInteractions", "AspNetUsers" };
|
|
}
|