sql.ts 724 B

1234567891011121314151617181920
  1. import { sqliteTable, text, uniqueIndex } from "drizzle-orm/sqlite-core"
  2. import { Timestamps } from "../database/schema.sql"
  3. import { ProjectV2 } from "../project"
  4. import { ProjectTable } from "../project/sql"
  5. import type { PermissionSaved } from "./saved"
  6. export const PermissionTable = sqliteTable(
  7. "permission",
  8. {
  9. id: text().$type<PermissionSaved.ID>().primaryKey(),
  10. project_id: text()
  11. .$type<ProjectV2.ID>()
  12. .notNull()
  13. .references(() => ProjectTable.id, { onDelete: "cascade" }),
  14. action: text().notNull(),
  15. resource: text().notNull(),
  16. ...Timestamps,
  17. },
  18. (table) => [uniqueIndex("permission_project_action_resource_idx").on(table.project_id, table.action, table.resource)],
  19. )