belongsTo<T extends Model> method
Implementation
Future<T?> belongsTo<T extends Model>({
DatabaseDisk disk = Model.defaultDisk,
}) async {
try {
final tableName = Model.getTableName<T>();
final foreignTableSingular = tableName.substring(0, tableName.length - 1);
final data = toMetaJson();
switch (disk) {
case DatabaseDisk.file:
case DatabaseDisk.s3:
final foreignUuidKey = "${foreignTableSingular}_uuid";
final val = data[foreignUuidKey];
if (val == null) return null;
return Model.firstWhere<T>(field: "uuid", value: val, disk: disk);
case DatabaseDisk.sqlite:
case DatabaseDisk.pgsql:
final foreignIdKey = "${foreignTableSingular}_id";
final val = data[foreignIdKey];
if (val == null) return null;
return Model.firstWhere<T>(field: "id", value: val, disk: disk);
}
} catch (e) {
return null;
}
}