export class TemporalTable extends S.Class<TemporalTable>('TemporalTable')({
id: TemporalId,
attributionId: AttributionId,
createdAt: SqliteDateTime,
start: S.NullOr(SqliteDateTime),
startPrecision: Precision,
end: S.NullOr(SqliteDateTime),
endPrecision: Precision,
ordinal: S.NullOr(S.Number)
}) {}
export class InsertTemporalParams extends S.Class<InsertTemporalParams>('InsertTemporalParams') ({
id: S.optional(TemporalId, { default: () => makeId('Temporal')}),
attributionId: S.optional(AttributionId, { default: () => makeId('Attribution') }),
createdAt: S.optional(SqliteDateTime, { default: sqliteDateTimeNow }),
start: S.optional(S.NullOr(SqliteDateTime), { default: () => null }),
startPrecision: S.optional(Precision, { default: () => 'empty'}),
end: S.optional(S.NullOr(SqliteDateTime), { default: () => null }),
endPrecision: S.optional(Precision, { default: () => 'empty'}),
ordinal: S.optional(S.NullOr(S.Number), { default: () => null })
}) {}
export class TemporalTable extends S.Class<TemporalTable>('TemporalTable')({
id: TemporalId,
attributionId: AttributionId,
createdAt: SqliteDateTime,
start: S.NullOr(SqliteDateTime),
startPrecision: Precision,
end: S.NullOr(SqliteDateTime),
endPrecision: Precision,
ordinal: S.NullOr(S.Number)
}) {}
export class InsertTemporalParams extends S.Class<InsertTemporalParams>('InsertTemporalParams') ({
id: S.optional(TemporalId, { default: () => makeId('Temporal')}),
attributionId: S.optional(AttributionId, { default: () => makeId('Attribution') }),
createdAt: S.optional(SqliteDateTime, { default: sqliteDateTimeNow }),
start: S.optional(S.NullOr(SqliteDateTime), { default: () => null }),
startPrecision: S.optional(Precision, { default: () => 'empty'}),
end: S.optional(S.NullOr(SqliteDateTime), { default: () => null }),
endPrecision: S.optional(Precision, { default: () => 'empty'}),
ordinal: S.optional(S.NullOr(S.Number), { default: () => null })
}) {}