import { relations } from 'drizzle-orm';
import { pgTable,serial,char,pgEnum, primaryKey,integer,index,uniqueIndex,timestamp,unique, varchar, uuid } from 'drizzle-orm/pg-core';
import { tool } from './tools';
import { user } from './user';
export const userTool = pgTable("userTool", {
id: uuid("id").primaryKey().notNull(),
toolId: uuid("toolId").notNull().references(()=>tool.id,{onDelete:'cascade',onUpdate:'cascade'}),
userId: varchar("userId",{length:255}).notNull().references(()=>user.id),
toolName: varchar("tool_name",{length:255}).notNull(),
quantity:integer('quantity').notNull().default(1),
createdAt: timestamp('createdAt',{mode:'date'}).notNull().defaultNow(),
updatedAt: timestamp('updatedAt',{mode:'date'}).notNull().defaultNow(),
},(t)=>({
unq_user_tool:unique().on(t.toolId,t.userId),
userTool_tool:index("userTool_tool").on(t.toolId),
userTool_user:index('userTool_user').on(t.userId)
}));
export const userToolRelations=relations(userTool,({one,many})=>({
tool:one(tool,{
fields:[userTool.toolId],
references:[tool.id]
}),
user:one(user,{
fields:[userTool.userId],
references:[user.id]
}),
}))
export type UserToolInsert = typeof userTool.$inferInsert
export type UserToolSelect = typeof userTool.$inferSelect