SupabaseTableInfo.fromJson constructor
Creates a SupabaseTableInfo instance from a JSON map (deserialization). Handles missing fields from older data formats with default values.
Implementation
factory SupabaseTableInfo.fromJson(Map<String, dynamic> json) {
final originalName =
json['originalName'] as String? ?? json['name'] as String? ?? '';
return SupabaseTableInfo(
name: json['name'] as String? ?? originalName,
originalName: originalName,
localName: json['localName'] as String?,
schema: json['schema'] as String? ?? 'public',
columns: (json['columns'] as List<dynamic>? ?? [])
.map((c) => TetherColumnInfo.fromJson(c as Map<String, dynamic>))
.toList(),
foreignKeys: (json['foreignKeys'] as List<dynamic>? ?? [])
.map((fk) =>
SupabaseForeignKeyConstraint.fromJson(fk as Map<String, dynamic>))
.toList(),
indexes: (json['indexes'] as List<dynamic>? ?? [])
.map((idx) => SupabaseIndexInfo.fromJson(idx as Map<String, dynamic>))
.toList(),
comment: json['comment'] as String?,
reverseRelations: (json['reverseRelations'] as List<dynamic>? ?? [])
.map((rr) =>
ModelReverseRelationInfo.fromJson(rr as Map<String, dynamic>))
.toList(),
);
}