task-managment / src / database / schema / user.ts
user.ts
Raw
import { relations } from 'drizzle-orm';
import {  pgTable,serial,char,pgEnum, primaryKey,integer,index,uniqueIndex,timestamp,unique, varchar, uuid, boolean, text } from 'drizzle-orm/pg-core';
import { task } from './task';
import { userTool } from './userTool';

export const user = pgTable("user", {
    id: varchar("id",{length:255}).primaryKey().notNull(),
	firstName: varchar("firstName", { length: 255 }).notNull(),
	lastName: varchar("lastName", { length: 255 }),
	email: varchar("email", { length: 255 }).unique(),
	image:text('user_image'),
	createdAt: timestamp('createdAt',{mode:'date'}).notNull().defaultNow(),
	updatedAt: timestamp('updatedAt',{mode:'date'}).notNull().defaultNow(),
	isActive:boolean('is_active').notNull().default(true),
	rol:text('rol').default("moderator").notNull(),
	isDeleted:boolean('is_deleted').notNull().default(false)
});


export const userRelations=relations(user,({one,many})=>({
	tasks:many(task),
	userTool:many(userTool)
}))

export type UserSelect = typeof user.$inferInsert
export type UserInsert = typeof user.$inferInsert