DatumEntityMixin mixin
A mixin that provides the base functionality for Datum entities.
Use this mixin when you want to compose Datum's capabilities into your own base classes, allowing for a clean and maintainable architecture without extending DatumEntity.
Important: Use either DatumEntityMixin OR RelationalDatumEntityMixin, not both. DatumEntityMixin provides basic entity functionality without relationships. For entities that need relationships, use RelationalDatumEntityMixin.
class MyEntity with DatumEntityMixin {
@override
final String id;
@override
final String userId;
@override
final DateTime modifiedAt;
@override
final DateTime createdAt;
@override
final int version;
@override
final bool isDeleted;
// Your custom fields...
@override
Map<String, dynamic> toDatumMap({MapTarget target = MapTarget.local}) {
// Implementation...
}
@override
DatumEntityBase copyWith({DateTime? modifiedAt, int? version, bool? isDeleted}) {
// Implementation...
}
@override
Map<String, dynamic>? diff(covariant DatumEntityBase oldVersion) {
// Implementation...
}
}
- Implemented types
- Mixin applications
Properties
- createdAt → DateTime
-
The timestamp of when this entity was first created.
no setteroverride
- hashCode → int
-
The hash code for this object.
no setterinherited
- id → String
-
A unique identifier for the entity.
no setteroverride
- isDeleted → bool
-
A flag indicating if this entity has been locally marked for deletion.
no setteroverride
- isRelational → bool
-
Indicates whether this entity supports relationships. Always
falsefor this mixin.no setteroverride - modifiedAt → DateTime
-
The timestamp of the last time this entity was modified.
no setteroverride
-
props
→ List<
Object?> -
Provides the list of properties to be used by the
Equatablemixin for value equality checks.no setter - runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- stringify → bool?
-
If set to
true, thetoStringmethod will be overridden to output this instance'sprops.no setterinherited - userId → String
-
The ID of the user who owns or created this entity.
no setteroverride
- version → int
-
A sequential integer used for optimistic concurrency and tracking
changes.
no setteroverride
Methods
-
diff(
covariant DatumEntityInterface oldVersion) → Map< String, dynamic> ? -
Creates a new instance of the entity with updated values.
Computes the difference between the current entity state and an
oldVersionof the entity.override -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toDatumMap(
{MapTarget target = MapTarget.local}) → Map< String, dynamic> -
Converts the entity to a
Map<String, dynamic>for persistence.override -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited