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,
localName:
json['localName'] as String? ?? _makeSafeDartClassName(originalName),
schema: json['schema'] as String? ?? '',
columns:
(json['columns'] as List?)
?.map((c) => TetherColumnInfo.fromJson(c as Map<String, dynamic>))
.toList() ??
[],
foreignKeys:
(json['foreignKeys'] as List?)
?.map(
(fk) => SupabaseForeignKeyConstraint.fromJson(
fk as Map<String, dynamic>,
),
)
.toList() ??
[],
indexes:
(json['indexes'] as List?)
?.map(
(idx) =>
SupabaseIndexInfo.fromJson(idx as Map<String, dynamic>),
)
.toList() ??
[],
comment: json['comment'] as String?,
reverseRelations:
(json['reverseRelations'] as List?) // <<< ADDED TO fromJson
?.map(
(rr) => ModelReverseRelationInfo.fromJson(
rr as Map<String, dynamic>,
),
)
.toList() ??
const [],
);
}