create<T extends Model> static method

Future<T?> create<T extends Model>(
  1. Map<String, dynamic> fromJson
)

Implementation

static Future<T?> create<T extends Model>(Map<String, dynamic> fromJson) async {
  try {
    final constructor = _jsonConstructors[T];
    if (constructor == null) return null;

    fromJson
      ..remove('id')
      ..remove('uuid')
      ..remove('created_at')
      ..remove('updated_at');

    final defaults = {'uuid': _uuid.v4(), 'created_at': DateTime.now().toUtc().toIso8601String(), 'updated_at': DateTime.now().toUtc().toIso8601String()};

    final instance = constructor({...fromJson, ...defaults}) as T;

    if (await instance.save(disk: .pgsql)) {
      return instance;
    }
    return null;
  } catch (e) {
    print('Postgres create error: $e');
    return null;
  }
}