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 false for 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 Equatable mixin 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, the toString method will be overridden to output this instance's props.
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 oldVersion of 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