namespace Campaign_Tracker.Server.LegacyData.Schema;
///
/// 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.
///
public sealed record LegacyColumnDefinition(
string Name,
int TypeCode,
int? Size,
bool Nullable);
///
/// 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).
///
public sealed record LegacyTableDefinition(
string Name,
IReadOnlyList Columns);