// missing imports from drizzle to avoid discord character limit
import { teamsTable } from "./clubSchemas";
import crypto from "node:crypto";
const v4ID = (name: string) =>
varchar(name, { length: 36 }).$defaultFn(() => crypto.randomUUID());
export const usersTable = mysqlTable("users", {
id: v4ID("id").primaryKey(),
email: varchar("email", { length: 255 }).notNull(),
name: text("name").notNull(),
teamId: text("team_id").notNull(),
createdAt: timestamp("created_at").defaultNow().notNull(),
lastEdited: timestamp("last_edited").defaultNow().notNull(),
});
export const usersRelations = relations(usersTable, ({ many, one }) => ({
posts: many(postsTable),
team: one(teamsTable, {
fields: [usersTable.teamId],
references: [teamsTable.id],
}),
}));
export const postsTable = mysqlTable("posts", {
id: v4ID("id").primaryKey(),
authorId: text("author_id").notNull(),
content: text("content").notNull(),
debateId: text("debate_id").notNull(),
createdAt: timestamp("created_at").defaultNow().notNull(),
likeCount: mediumint("like_count").default(0).notNull(),
dislikeCount: mediumint("dislike_count").default(0).notNull(),
});
export const postsRelations = relations(postsTable, ({ one, many }) => ({
author: one(usersTable, {
fields: [postsTable.authorId],
references: [usersTable.id],
}),
debate: one(debatesTable, {
fields: [postsTable.debateId],
references: [debatesTable.id],
}),
}));
export const debatesTable = mysqlTable("debates", {
id: v4ID("id").notNull(),
name: varchar("name", { length: 255 }).primaryKey(),
teamId: text("team_id"),
debateType: mysqlEnum("debate_type", ["league", "team"]).notNull(),
});
export const debatesRelations = relations(debatesTable, ({ one, many }) => ({
posts: many(
team: one(teamsTable, {
fields: [debatesTable.teamId],
references: [teamsTable.id],
}),
}));
// missing imports from drizzle to avoid discord character limit
import { teamsTable } from "./clubSchemas";
import crypto from "node:crypto";
const v4ID = (name: string) =>
varchar(name, { length: 36 }).$defaultFn(() => crypto.randomUUID());
export const usersTable = mysqlTable("users", {
id: v4ID("id").primaryKey(),
email: varchar("email", { length: 255 }).notNull(),
name: text("name").notNull(),
teamId: text("team_id").notNull(),
createdAt: timestamp("created_at").defaultNow().notNull(),
lastEdited: timestamp("last_edited").defaultNow().notNull(),
});
export const usersRelations = relations(usersTable, ({ many, one }) => ({
posts: many(postsTable),
team: one(teamsTable, {
fields: [usersTable.teamId],
references: [teamsTable.id],
}),
}));
export const postsTable = mysqlTable("posts", {
id: v4ID("id").primaryKey(),
authorId: text("author_id").notNull(),
content: text("content").notNull(),
debateId: text("debate_id").notNull(),
createdAt: timestamp("created_at").defaultNow().notNull(),
likeCount: mediumint("like_count").default(0).notNull(),
dislikeCount: mediumint("dislike_count").default(0).notNull(),
});
export const postsRelations = relations(postsTable, ({ one, many }) => ({
author: one(usersTable, {
fields: [postsTable.authorId],
references: [usersTable.id],
}),
debate: one(debatesTable, {
fields: [postsTable.debateId],
references: [debatesTable.id],
}),
}));
export const debatesTable = mysqlTable("debates", {
id: v4ID("id").notNull(),
name: varchar("name", { length: 255 }).primaryKey(),
teamId: text("team_id"),
debateType: mysqlEnum("debate_type", ["league", "team"]).notNull(),
});
export const debatesRelations = relations(debatesTable, ({ one, many }) => ({
posts: many(
team: one(teamsTable, {
fields: [debatesTable.teamId],
references: [teamsTable.id],
}),
}));