Model class abstract
Abstract base class for all data models.
Provides:
- Common fields:
id,uuid,createdAt,updatedAt - Unified CRUD API across backends
- JSON serialization
- Disk-agnostic static methods
Usage:
class User extends Model {
String name;
String email;
User({this.name, this.email});
@override
Map<String, dynamic> toJson() => {
'name': name,
'email': email,
};
@override
Map<String, dynamic> toMetaJson() => {
'id': id,
'uuid': uuid,
'created_at': createdAt?.toIso8601String(),
'updated_at': updatedAt?.toIso8601String(),
};
}
- Implementers
Constructors
-
Model.fromJson(Map<
String, dynamic> json) - Constructs model from JSON.
Properties
- createdAt ↔ DateTime?
-
Creation timestamp (UTC).
getter/setter pair
- disk ↔ Disk
-
getter/setter pair
- hashCode → int
-
The hash code for this object.
no setterinherited
- id ↔ int?
-
Primary key (auto-incremented by backend).
getter/setter pair
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- updatedAt ↔ DateTime?
-
Last update timestamp (UTC).
getter/setter pair
- uuid ↔ String?
-
UUID for cross-backend identification.
getter/setter pair
Methods
-
delete(
{Disk disk = Model.defaultDisk}) → Future< bool> - Deletes the current instance.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
save(
{Disk disk = Model.defaultDisk}) → Future< bool> - Saves the current instance.
-
toJson(
) → Map< String, dynamic> - Serializes model data (excluding metadata).
-
toMetaJson(
) → Map< String, dynamic> -
Serializes metadata fields (
id,uuid, timestamps). -
toString(
) → String -
Human-readable string representation.
override
-
update(
{Disk disk = Model.defaultDisk}) → Future< bool> - Updates the current instance with new data.
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
all<
T extends Model> ({Disk disk = Model.defaultDisk}) → Future< List< T> > -
Returns all instances of type
T. -
count<
T extends Model> ({Disk disk = Model.defaultDisk}) → Future< int> -
Counts total instances of type
T. -
create<
T extends Model> ({required Map< String, dynamic> fromJson, Disk disk = Model.defaultDisk}) → Future<T?> -
Creates a new record from
fromJson. -
deleteInstance<
T extends Model> ({required T instance, Disk disk = Model.defaultDisk}) → Future< bool> -
Deletes an
instanceby UUID. -
destroy<
T extends Model> ({required dynamic id, Disk disk = Model.defaultDisk}) → Future< bool> -
Deletes a record by
id. -
exists<
T extends Model> ({required dynamic id, Disk disk = Model.defaultDisk}) → Future< bool> -
Checks if a record with
idexists. -
find<
T extends Model> ({required dynamic id, Disk disk = Model.defaultDisk}) → Future< T?> -
Finds a record by
id(UUID or primary key). -
findBy<
T extends Model> ({required String field, required dynamic value, Disk disk = Model.defaultDisk}) → Future< T?> -
Finds first record where
fieldmatchesvalue. -
firstWhere<
T extends Model> ({required String field, required dynamic value, String comp = "==", Disk disk = Model.defaultDisk}) → Future< T?> -
Returns first record matching
where()condition. -
index<
T extends Model> ({Disk disk = Model.defaultDisk}) → Future< List< T> > -
Retrieves all instances of type
T. -
patch<
T extends Model> ({required dynamic id, required String field, required dynamic value, Disk disk = Disk.file}) → Future< bool> -
Updates a single field of a record by
id. -
saveInstance<
T extends Model> ({required T instance, Disk disk = Model.defaultDisk}) → Future< bool> -
Saves an
instanceto the specifieddisk. -
store<
T extends Model> ({required T instance, Disk disk = Model.defaultDisk}) → Future< bool> -
Alias for
saveInstance. -
truncate<
T extends Model> ({Disk disk = Model.defaultDisk}) → Future< bool> -
Deletes all records of type
T. -
updateInstance<
T extends Model> ({required T instance, required Map< String, dynamic> withJson, Disk disk = Disk.file}) → Future<bool> -
Updates an
instancewithwithJsondata. -
where<
T extends Model> ({required String field, required dynamic value, String comp = "==", Disk disk = Disk.file}) → Future< List< T> > -
Filters records where
fieldcompvalue.
Constants
- defaultDisk → const Disk
- Default storage backend for all models. can be overridden per-class Can be overridden per-operation.