Files
jobtrackingapp/JobTrackerApi/Services/StartupSchemaOwnership.cs
T
cesnimda a906916acc refactor(db): migrate interview preparation
Move durable user-owned interview preparation into an additive provider-aware migration. Preserve questions, answers, practice state, ordering, and application cascade semantics.
2026-08-30 18:58:55 +02:00

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",
"AiInteractions",
"ApplicationChecklistItems",
"Attachments",
"Companies",
"Correspondences",
"CoverLetterVersions",
"CvExtractionRuns",
"CvUploadArtifacts",
"CvVariants",
"CvVariantVersions",
"EmailDrafts",
"EmailSendAttempts",
"GmailConnections",
"GmailReviewDecisions",
"ImapConnections",
"InterviewPrepNotes",
"InterviewPrepItems",
"JobApplications",
"JobEvents",
"Jobs",
"MicrosoftGraphConnections",
"RuleSettings",
"SystemEmailSettings",
"TailoredCvDrafts",
"TrustedDevices",
"TwoFactorRecoveryCodes",
"UserNotifications",
"UserOperations",
"UserRuleSettings",
"UserSessions",
};
internal static readonly IReadOnlySet<string> ReconcilerOwnedTables = new HashSet<string>(StringComparer.Ordinal)
{
"AspNetRoleClaims",
"AspNetRoles",
"AspNetUserClaims",
"AspNetUserLogins",
"AspNetUserRoles",
"AspNetUsers",
"AspNetUserTokens",
"CareerCertifications",
"CareerEducations",
"CareerExperiences",
"CareerLanguages",
"CareerProfiles",
"CareerProfileVersions",
"CareerProjects",
"CareerSkills",
};
// 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) { "AspNetUsers" };
}