generator client { provider = "prisma-client-js" } datasource db { provider = "postgresql" url = env("DATABASE_URL") } model Location { id Int @id @default(autoincrement()) name String @unique description String? categories Category[] created_at DateTime @default(now()) updated_at DateTime @updatedAt @@map("locations") } model Category { id Int @id @default(autoincrement()) name String location Location @relation(fields: [location_id], references: [id]) location_id Int items Item[] boxes Box[] userCategoryAccess UserCategoryAccess[] created_at DateTime @default(now()) @@map("categories") } model Item { id Int @id @default(autoincrement()) name String code String? description String? quantity Int @default(0) category Category @relation(fields: [category_id], references: [id]) category_id Int box_items BoxItem[] created_at DateTime @default(now()) updated_at DateTime @updatedAt @@map("items") } model Box { id Int @id @default(autoincrement()) name String category Category @relation(fields: [category_id], references: [id]) category_id Int items BoxItem[] created_at DateTime @default(now()) @@map("boxes") } model BoxItem { id Int @id @default(autoincrement()) box Box @relation(fields: [box_id], references: [id]) box_id Int item Item @relation(fields: [item_id], references: [id]) item_id Int quantity Int created_at DateTime @default(now()) @@map("box_items") } model Role { id Int @id @default(autoincrement()) name String @unique description String? users User[] permissions RolePermission[] created_at DateTime @default(now()) @@map("roles") } model Permission { id Int @id @default(autoincrement()) name String @unique description String? roles RolePermission[] created_at DateTime @default(now()) @@map("permissions") } model RolePermission { id Int @id @default(autoincrement()) role Role @relation(fields: [role_id], references: [id]) role_id Int permission Permission @relation(fields: [permission_id], references: [id]) permission_id Int created_at DateTime @default(now()) @@unique([role_id, permission_id]) @@map("role_permissions") } model User { id Int @id @default(autoincrement()) username String @unique password_hash String role Role @relation(fields: [role_id], references: [id]) role_id Int is_active Boolean @default(true) last_login DateTime? categoryAccess UserCategoryAccess[] created_at DateTime @default(now()) @@map("users") } model UserCategoryAccess { id Int @id @default(autoincrement()) user User @relation(fields: [user_id], references: [id]) user_id Int category Category @relation(fields: [category_id], references: [id]) category_id Int created_at DateTime @default(now()) @@map("user_category_access") } model YearEndTransfer { id Int @id @default(autoincrement()) year Int completed_at DateTime status String error_message String? created_at DateTime @default(now()) @@map("year_end_transfers") }