namespace Campaign_Tracker.Server.LegacyData.Schema; /// /// Categorisation of a structural delta detected by the compatibility check /// (Story 1.7 AC #2). Used in entries. /// public enum LegacySchemaChangeType { TableMissing, TableAdded, ColumnMissing, ColumnAdded, ColumnTypeChanged, ColumnSizeChanged, ColumnNullabilityChanged, ColumnConstraintsChanged, } /// /// One structural delta entry between baseline and live schema. /// is null for table-level drift entries. /// public sealed record LegacySchemaDrift( string TableName, string? ColumnName, LegacySchemaChangeType ChangeType, string Detail); /// /// Outcome of a compatibility check run. /// AC #2: failure includes structured drift list identifying table, column, and change type. /// AC #3: pass returns timestamp, count of tables verified, and zero drift count. /// public sealed record LegacySchemaCheckResult( bool Passed, int TablesVerified, int DriftCount, DateTimeOffset CheckedAt, IReadOnlyList Drifts, string BaselineSource);