// src/server/features/schedule/db/shifts.table.ts
// Shifts table schema for schedule management

import { mysqlTable, varchar, timestamp, boolean, mysqlEnum, uniqueIndex } from 'drizzle-orm/mysql-core';

export const shifts = mysqlTable('shifts', {
  id: varchar('id', { length: 36 }).primaryKey(),
  date: timestamp('date').notNull(), // Дата смены (хранится в UTC)
  userId: varchar('user_id', { length: 36 }).notNull(), // FK на таблицу users
  roleAtShift: mysqlEnum('role_at_shift', ['Manager', 'Maid']).notNull(), // Роль на смене
  status: mysqlEnum('status', ['Blank', 'Work', 'Holiday', 'Unavailable']).notNull().default('Blank'), // СBlank=С, Work=Г, Holiday=О, Unavailable=X
  isApproved: boolean('is_approved').notNull().default(false), // Статус подтверждения админом
  createdBy: varchar('created_by', { length: 36 }).notNull(), // ID пользователя, создавшего запись
  createdAt: timestamp('created_at').notNull().defaultNow(),
  updatedAt: timestamp('updated_at').notNull().defaultNow().onUpdateNow(),
  archivedAt: timestamp('archived_at'),
}, (table) => ({
  uniqueUserDateApproved: uniqueIndex('unique_user_date_approved').on(table.userId, table.date, table.roleAtShift, table.isApproved),
}));
