// import { relations } from "drizzle-orm";
// import {
//   boolean,
//   int,
//   mysqlTable,
//   text,
//   timestamp,
//   varchar,
// } from "drizzle-orm/mysql-core";

// export const user = mysqlTable("users", {
//   id: int("id").autoincrement().primaryKey(),
//   username: varchar("username", {
//     length: 255,
//   }).unique(),
//   email: varchar("email", {
//     length: 255,
//   })
//     .unique()
//     .notNull(),
//   phone: varchar("phone", {
//     length: 15,
//   }).unique(),
//   address: varchar("address", {
//     length: 255,
//   }),
//   firstName: varchar("first_name", {
//     length: 255,
//   }),
//   lastName: varchar("last_name", {
//     length: 255,
//   }),
//   password: varchar("password", {
//     length: 500,
//   }).notNull(),
//   isAdmin: boolean("is_admin").default(false),
//   position: varchar("position", {
//     length: 50,
//   }).default("staff"),
//   createdAt: timestamp("created_at").defaultNow(),
//   updatedAt: timestamp("updated_at").onUpdateNow(),
// });

// export const usersRelations = relations(user, ({ many }) => ({
//   chats: many(reply, { relationName: "chat_replies_staff" }),
//   tokens: many(token, { relationName: "user_tokens" }),
// }));

// export const chat = mysqlTable("chats", {
//   id: int("id").autoincrement().primaryKey(),
//   name: varchar("name", {
//     length: 255,
//   }).notNull(),
//   email: varchar("email", {
//     length: 255,
//   }).notNull(),
//   subject: varchar("subject", {
//     length: 255,
//   }).notNull(),
//   message: text("message").notNull(),
//   isRead: boolean("is_read").default(false).notNull(),
//   isReplied: boolean("is_replied").default(false).notNull(),
//   // time: timestamp("time").defaultNow(),
//   time: timestamp("created_at").defaultNow(),
// });

// export const chatsRelations = relations(chat, ({ many }) => ({
//   replies: many(reply, { relationName: "chat_replies" }),
// }));

// export const reply = mysqlTable("replies", {
//   id: int("id").autoincrement().primaryKey(),
//   reply: text("reply").notNull(),
//   // repliedBy: varchar("replied_by", {
//   //   length: 255,
//   // }),
//   repliedBy: int("replied_by").references(() => user.id, {
//     onUpdate: "cascade",
//     onDelete: "set null",
//   }),
//   // chatId: int("chat_id")
//   chatId: int("chat_id").references(() => chat.id, {
//     onUpdate: "cascade",
//     onDelete: "cascade",
//   }),
//   time: timestamp("replied_at").defaultNow(),
//   // time: timestamp("time").defaultNow(),
// });

// export const repliesRelations = relations(reply, ({ one }) => ({
//   message: one(chat, {
//     fields: [reply.chatId],
//     references: [chat.id],
//     relationName: "reply_ibfk_1",
//   }),
//   staff: one(user, {
//     fields: [reply.repliedBy],
//     references: [user.id],
//     relationName: "chat_replies_staff",
//   }),
// }));

// export const token = mysqlTable("tokens", {
//   tokenId: int("token_id").autoincrement().primaryKey(),
//   email: varchar("email", {
//     length: 255,
//   })
//     .notNull()
//     .references(() => user.email, {
//       onUpdate: "cascade",
//       onDelete: "cascade",
//     }),
//   token: varchar("token", {
//     length: 255,
//   }).notNull(),
//   expiredAt: timestamp("expired_at"),
//   generatedAt: timestamp("generated_at").defaultNow(),
// });

// export const tokensRelations = relations(token, ({ one }) => ({
//   user: one(user, {
//     fields: [token.email],
//     references: [user.email],
//     relationName: "tokens_ibfk_1",
//   }),
// }));
