datumCoreFieldSpecs<E extends DatumEntityInterface> function

DatumCoreFields<E> datumCoreFieldSpecs<E extends DatumEntityInterface>({
  1. String id = 'id',
  2. String userId = 'userId',
  3. String modifiedAt = 'modifiedAt',
  4. String createdAt = 'createdAt',
  5. String version = 'version',
  6. String isDeleted = 'isDeleted',
  7. DatumFieldCodec<DateTime> dateCodec = DatumFieldCodec.dateTimeIso,
})

Builds the six standard sync-field specs with camelCase keys by default (matching SqliteLocalAdapter's core columns). Every key is overridable for snake_case stores, and dateCodec controls how the two timestamps are persisted (ISO-8601 by default, with lenient decode that also accepts epoch milliseconds).

Implementation

DatumCoreFields<E> datumCoreFieldSpecs<E extends DatumEntityInterface>({
  String id = 'id',
  String userId = 'userId',
  String modifiedAt = 'modifiedAt',
  String createdAt = 'createdAt',
  String version = 'version',
  String isDeleted = 'isDeleted',
  DatumFieldCodec<DateTime> dateCodec = DatumFieldCodec.dateTimeIso,
}) =>
    DatumCoreFields._(
      id: DatumFieldSpec<E, String>(id, getter: (e) => e.id, coreRole: DatumCoreRole.id),
      userId: DatumFieldSpec<E, String>(userId, getter: (e) => e.userId, coreRole: DatumCoreRole.userId),
      modifiedAt: DatumFieldSpec<E, DateTime>(modifiedAt, getter: (e) => e.modifiedAt, codec: dateCodec, coreRole: DatumCoreRole.modifiedAt),
      createdAt: DatumFieldSpec<E, DateTime>(createdAt, getter: (e) => e.createdAt, codec: dateCodec, coreRole: DatumCoreRole.createdAt),
      version: DatumFieldSpec<E, int>(version, getter: (e) => e.version, coreRole: DatumCoreRole.version),
      isDeleted: DatumFieldSpec<E, bool>(isDeleted, getter: (e) => e.isDeleted, coreRole: DatumCoreRole.isDeleted),
    );