sql.ts 852 B

12345678910111213141516171819202122232425
  1. import { sqliteTable, text, integer, index, uniqueIndex } from "drizzle-orm/sqlite-core"
  2. import type { EventV2 } from "../event"
  3. export const EventSequenceTable = sqliteTable("event_sequence", {
  4. aggregate_id: text().notNull().primaryKey(),
  5. seq: integer().notNull(),
  6. owner_id: text(),
  7. })
  8. export const EventTable = sqliteTable(
  9. "event",
  10. {
  11. id: text().$type<EventV2.ID>().primaryKey(),
  12. aggregate_id: text()
  13. .notNull()
  14. .references(() => EventSequenceTable.aggregate_id, { onDelete: "cascade" }),
  15. seq: integer().notNull(),
  16. type: text().notNull(),
  17. data: text({ mode: "json" }).$type<Record<string, unknown>>().notNull(),
  18. },
  19. (table) => [
  20. uniqueIndex("event_aggregate_seq_idx").on(table.aggregate_id, table.seq),
  21. index("event_aggregate_type_seq_idx").on(table.aggregate_id, table.type, table.seq),
  22. ],
  23. )