* feat: add account deletion functionality with cascade delete for workspace relations * fix: add cascade delete to workspace user foreign key constraints * fix: change onDelete action to set null for user references in schema * feat: tweak design --------- Co-authored-by: Henry <henry_ball@hotmail.co.uk> Co-authored-by: Henry <30578846+hjball@users.noreply.github.com>
46 lines
1.2 KiB
TypeScript
46 lines
1.2 KiB
TypeScript
import { relations } from "drizzle-orm";
|
|
import {
|
|
bigserial,
|
|
pgEnum,
|
|
pgTable,
|
|
timestamp,
|
|
uuid,
|
|
varchar,
|
|
} from "drizzle-orm/pg-core";
|
|
|
|
import { boards } from "./boards";
|
|
import { cards } from "./cards";
|
|
import { labels } from "./labels";
|
|
import { lists } from "./lists";
|
|
import { users } from "./users";
|
|
|
|
export const importSourceEnum = pgEnum("source", ["trello"]);
|
|
export const importStatusEnum = pgEnum("status", [
|
|
"started",
|
|
"success",
|
|
"failed",
|
|
]);
|
|
|
|
export const imports = pgTable("import", {
|
|
id: bigserial("id", { mode: "number" }).primaryKey(),
|
|
publicId: varchar("publicId", { length: 12 }).notNull().unique(),
|
|
source: importSourceEnum("source").notNull(),
|
|
status: importStatusEnum("status").notNull(),
|
|
createdBy: uuid("createdBy").references(() => users.id, {
|
|
onDelete: "set null",
|
|
}),
|
|
createdAt: timestamp("createdAt").defaultNow().notNull(),
|
|
}).enableRLS();
|
|
|
|
export const importsRelations = relations(imports, ({ one, many }) => ({
|
|
createdBy: one(users, {
|
|
fields: [imports.createdBy],
|
|
references: [users.id],
|
|
relationName: "importsCreatedByUser",
|
|
}),
|
|
boards: many(boards),
|
|
cards: many(cards),
|
|
lists: many(lists),
|
|
labels: many(labels),
|
|
}));
|