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


export const floor = pgTable("floor", {
	id: uuid("id").primaryKey().notNull().defaultRandom(),
	name:varchar('name',{length:255}).notNull(),
	projectName:varchar('project_name',{length:255}).notNull(),
	projectId:uuid('project_id').references(()=>project.id,{onDelete:'cascade',onUpdate:'cascade'})
},(t)=>({
	unq_floor_project:unique().on(t.name,t.projectId),
	floor_project:index("floor_project").on(t.projectId)
}));

export const floorRelations=relations(floor,({one,many})=>({
    project:one(project,{
        fields:[floor.projectId],
        references:[project.id]
    }),
	areas:many(areas),

}))

export type FloorSelect = typeof floor.$inferInsert