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