|
- namespace Campaign_Tracker.Server.LegacyData.Schema;
-
- /// <summary>
- /// Represents a single column in a legacy Access table for compatibility checking.
- /// All structural attributes (name, type code, declared size, nullability) are part
- /// of the comparison signature — any change in any of them is reported as drift.
- /// </summary>
- public sealed record LegacyColumnDefinition(
- string Name,
- int TypeCode,
- int? Size,
- bool Nullable)
- {
- public IReadOnlyList<string> Constraints { get; init; } = [];
- }
-
- /// <summary>
- /// Represents a legacy table's full structural definition: the table name plus
- /// the ordered list of columns. Column order is preserved from the baseline file
- /// but column comparison is name-keyed (order changes are not flagged as drift —
- /// schema drift refers to structural deltas, not declaration order).
- /// </summary>
- public sealed record LegacyTableDefinition(
- string Name,
- IReadOnlyList<LegacyColumnDefinition> Columns);
|