summaryrefslogtreecommitdiffhomepage
path: root/cloud/core/src/schema/workspace.sql.ts
blob: 3e9379e1f532bca897c48d8b2f13f17f5106ffb9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import { primaryKey, foreignKey, pgTable, uniqueIndex, varchar } from "drizzle-orm/pg-core"
import { timestamps, ulid } from "../drizzle/types"

export const WorkspaceTable = pgTable(
  "workspace",
  {
    id: ulid("id").notNull().primaryKey(),
    slug: varchar("slug", { length: 255 }),
    name: varchar("name", { length: 255 }),
    ...timestamps,
  },
  (table) => [uniqueIndex("slug").on(table.slug)],
)

export function workspaceIndexes(table: any) {
  return [
    primaryKey({
      columns: [table.workspaceID, table.id],
    }),
    foreignKey({
      foreignColumns: [WorkspaceTable.id],
      columns: [table.workspaceID],
    }),
  ]
}