export const projects = pgTable("project", {
id: uuid("id").defaultRandom().primaryKey(),
title: text("name").notNull(),
description: text("description"),
icon: iconStatusEnum("icon").default("globe").notNull(),
status: projectStatusEnum("status").default("in-progress").notNull(),
createdBy: text("created_by").references(() => users.id),
createdAt: timestamp("created_at").notNull().defaultNow(),
});
export const projectUsers = pgTable("project_user", {
id: uuid("id").defaultRandom().primaryKey(),
projectId: uuid("project_id")
.notNull()
.references(() => projects.id),
userId: text("user_id")
.notNull()
.references(() => users.id),
});
export const projectRelations = relations(projects, ({ many }) => ({
members: many(projectUsers),
}));
export const userRelations = relations(users, ({ many }) => ({
members: many(projectUsers),
}));
export const projectUserRelations = relations(projectUsers, ({ one }) => ({
project: one(projects, {
fields: [projectUsers.projectId],
references: [projects.id],
}),
user: one(users, {
fields: [projectUsers.userId],
references: [users.id],
}),
}));
export const projects = pgTable("project", {
id: uuid("id").defaultRandom().primaryKey(),
title: text("name").notNull(),
description: text("description"),
icon: iconStatusEnum("icon").default("globe").notNull(),
status: projectStatusEnum("status").default("in-progress").notNull(),
createdBy: text("created_by").references(() => users.id),
createdAt: timestamp("created_at").notNull().defaultNow(),
});
export const projectUsers = pgTable("project_user", {
id: uuid("id").defaultRandom().primaryKey(),
projectId: uuid("project_id")
.notNull()
.references(() => projects.id),
userId: text("user_id")
.notNull()
.references(() => users.id),
});
export const projectRelations = relations(projects, ({ many }) => ({
members: many(projectUsers),
}));
export const userRelations = relations(users, ({ many }) => ({
members: many(projectUsers),
}));
export const projectUserRelations = relations(projectUsers, ({ one }) => ({
project: one(projects, {
fields: [projectUsers.projectId],
references: [projects.id],
}),
user: one(users, {
fields: [projectUsers.userId],
references: [users.id],
}),
}));