// src/server/features/approval/db/approval_requests.table.ts
// Approval requests table schema for approval system

import { mysqlTable, varchar, text, timestamp, json } from 'drizzle-orm/mysql-core';
import { randomUUID } from 'node:crypto';

export const approvalRequests = mysqlTable('approval_requests', {
  id: varchar('id', { length: 36 }).primaryKey().$defaultFn(() => randomUUID()),
  entityType: varchar('entity_type', { length: 50 }).notNull(), // Тип сущности: 'shift', 'employee', 'blacklist'
  targetId: varchar('target_id', { length: 36 }), // ID изменяемой записи (null при создании новой)
  requesterId: varchar('requester_id', { length: 36 }).notNull(), // ID менеджера, создающего заявку
  payload: json('payload').notNull(), // JSON с измененными полями
  status: varchar('status', { length: 20, enum: ['pending', 'approved', 'rejected'] }).notNull().default('pending'),
  createdAt: timestamp('created_at').notNull().defaultNow(),
  updatedAt: timestamp('updated_at').notNull().defaultNow().onUpdateNow(),
  archivedAt: timestamp('archived_at'), // Soft delete для архивации
});
