datumCoreFieldSpecs<E extends DatumEntityInterface> function
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),
);