19 lines
622 B
TypeScript
19 lines
622 B
TypeScript
import { sqliteTable, text, integer } from "drizzle-orm/sqlite-core"
|
|
import type { EventV2 } from "../event"
|
|
|
|
export const EventSequenceTable = sqliteTable("event_sequence", {
|
|
aggregate_id: text().notNull().primaryKey(),
|
|
seq: integer().notNull(),
|
|
owner_id: text(),
|
|
})
|
|
|
|
export const EventTable = sqliteTable("event", {
|
|
id: text().$type<EventV2.ID>().primaryKey(),
|
|
aggregate_id: text()
|
|
.notNull()
|
|
.references(() => EventSequenceTable.aggregate_id, { onDelete: "cascade" }),
|
|
seq: integer().notNull(),
|
|
type: text().notNull(),
|
|
data: text({ mode: "json" }).$type<Record<string, unknown>>().notNull(),
|
|
})
|