This commit is contained in:
Dax Raad
2026-01-27 16:57:51 -05:00
parent 246e901e42
commit cd174d8cba
6 changed files with 143 additions and 20 deletions
+6 -6
View File
@@ -3,7 +3,7 @@ import { ProjectTable } from "../project/project.sql"
import type { MessageV2 } from "./message-v2"
import type { Snapshot } from "@/snapshot"
import type { PermissionNext } from "@/permission/next"
import { Database } from "@/storage/db"
import { Timestamps } from "@/storage/schema.sql"
type PartData = Omit<MessageV2.Part, "id" | "sessionID" | "messageID">
type InfoData = Omit<MessageV2.Info, "id" | "sessionID">
@@ -27,7 +27,7 @@ export const SessionTable = sqliteTable(
summary_diffs: text({ mode: "json" }).$type<Snapshot.FileDiff[]>(),
revert: text({ mode: "json" }).$type<{ messageID: string; partID?: string; snapshot?: string; diff?: string }>(),
permission: text({ mode: "json" }).$type<PermissionNext.Ruleset>(),
...Database.Timestamps,
...Timestamps,
time_compacting: integer(),
time_archived: integer(),
},
@@ -41,7 +41,7 @@ export const MessageTable = sqliteTable(
session_id: text()
.notNull()
.references(() => SessionTable.id, { onDelete: "cascade" }),
...Database.Timestamps,
...Timestamps,
data: text({ mode: "json" }).notNull().$type<InfoData>(),
},
(table) => [index("message_session_idx").on(table.session_id)],
@@ -55,7 +55,7 @@ export const PartTable = sqliteTable(
.notNull()
.references(() => MessageTable.id, { onDelete: "cascade" }),
session_id: text().notNull(),
...Database.Timestamps,
...Timestamps,
data: text({ mode: "json" }).notNull().$type<PartData>(),
},
(table) => [index("part_message_idx").on(table.message_id), index("part_session_idx").on(table.session_id)],
@@ -72,7 +72,7 @@ export const TodoTable = sqliteTable(
status: text().notNull(),
priority: text().notNull(),
position: integer().notNull(),
...Database.Timestamps,
...Timestamps,
},
(table) => [primaryKey({ columns: [table.session_id, table.id] }), index("todo_session_idx").on(table.session_id)],
)
@@ -81,6 +81,6 @@ export const PermissionTable = sqliteTable("permission", {
project_id: text()
.primaryKey()
.references(() => ProjectTable.id, { onDelete: "cascade" }),
...Database.Timestamps,
...Timestamps,
data: text({ mode: "json" }).notNull().$type<PermissionNext.Ruleset>(),
})