Openstatus www.openstatus.dev
at 4c0f4c00a38753a5d0dfd7e7b7b7706dec6f1503 39 lines 1.2 kB view raw
1import { relations, sql } from "drizzle-orm"; 2import { integer, sqliteTable, text } from "drizzle-orm/sqlite-core"; 3 4import { pageComponent } from "../page_components"; 5import { page } from "../pages"; 6import { workspace } from "../workspaces"; 7 8export const pageComponentGroup = sqliteTable("page_component_groups", { 9 id: integer("id").primaryKey(), 10 workspaceId: integer("workspace_id") 11 .references(() => workspace.id, { onDelete: "cascade" }) 12 .notNull(), 13 pageId: integer("page_id") 14 .references(() => page.id, { onDelete: "cascade" }) 15 .notNull(), 16 name: text("name").notNull(), 17 18 createdAt: integer("created_at", { mode: "timestamp" }).default( 19 sql`(strftime('%s', 'now'))`, 20 ), 21 updatedAt: integer("updated_at", { mode: "timestamp" }).default( 22 sql`(strftime('%s', 'now'))`, 23 ), 24}); 25 26export const pageComponentGroupRelations = relations( 27 pageComponentGroup, 28 ({ one, many }) => ({ 29 workspace: one(workspace, { 30 fields: [pageComponentGroup.workspaceId], 31 references: [workspace.id], 32 }), 33 page: one(page, { 34 fields: [pageComponentGroup.pageId], 35 references: [page.id], 36 }), 37 pageComponents: many(pageComponent), 38 }), 39);