diff options
Diffstat (limited to 'packages/opencode/src/session/session.sql.ts')
| -rw-r--r-- | packages/opencode/src/session/session.sql.ts | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/packages/opencode/src/session/session.sql.ts b/packages/opencode/src/session/session.sql.ts index 189a59687..35ed8fdda 100644 --- a/packages/opencode/src/session/session.sql.ts +++ b/packages/opencode/src/session/session.sql.ts @@ -1,6 +1,7 @@ import { sqliteTable, text, integer, index, primaryKey } from "drizzle-orm/sqlite-core" import { ProjectTable } from "../project/project.sql" import type { MessageV2 } from "./message-v2" +import type { SessionEntry } from "../v2/session-entry" import type { Snapshot } from "../snapshot" import type { Permission } from "../permission" import type { ProjectID } from "../project/schema" @@ -94,6 +95,25 @@ export const TodoTable = sqliteTable( ], ) +export const SessionEntryTable = sqliteTable( + "session_entry", + { + id: text().$type<SessionEntry.ID>().primaryKey(), + session_id: text() + .$type<SessionID>() + .notNull() + .references(() => SessionTable.id, { onDelete: "cascade" }), + type: text().$type<SessionEntry.Type>().notNull(), + ...Timestamps, + data: text({ mode: "json" }).notNull().$type<Omit<SessionEntry.Entry, "type" | "id">>(), + }, + (table) => [ + index("session_entry_session_idx").on(table.session_id), + index("session_entry_session_type_idx").on(table.session_id, table.type), + index("session_entry_time_created_idx").on(table.time_created), + ], +) + export const PermissionTable = sqliteTable("permission", { project_id: text() .primaryKey() |
