
export enum VaiTro {
  QUAN_TRI_VIEN = 'QUAN_TRI_VIEN',
  NHAN_VIEN_XU_LY = 'NHAN_VIEN_XU_LY',
  NGUOI_XEM = 'NGUOI_XEM'
}

export enum TrangThaiHoSo {
  BAN_NHAP = 'BAN_NHAP',
  SAN_SANG_IN = 'SAN_SANG_IN',
  DA_IN = 'DA_IN',
  LUU_TRU = 'LUU_TRU'
}

export enum LoaiDuLieu {
  VAN_BAN = 'text',
  SO = 'number',
  NGAY = 'date',
  VUNG_VAN_BAN = 'textarea',
  DAN_SACH = 'select'
}

export interface TruongDuLieu {
  key: string;
  label: string;
  type: LoaiDuLieu;
  required: boolean;
  options?: string[];
}

export interface MauHoSo {
  id: string;
  tenMau: string;
  coQuan: string;
  moTa?: string;
  fields: TruongDuLieu[];
  fileMauPath?: string;
}

export interface HoSo {
  id: string;
  templateId: string;
  templateName: string;
  coQuan: string;
  trangThai: TrangThaiHoSo;
  formData: Record<string, any>;
  confidence: Record<string, number>;
  files: Array<{ name: string; path: string }>;
  outputFile?: string;
  nguoiTao: string;
  ngayTao: string;
  ngayCapNhat: string;
}

export interface DoanhNghiep {
  maSoThue: string;
  tenCongTy: string;
  diaChi: string;
  daiDienPhapLuat: string;
}

export interface NguoiDung {
  id: string;
  username: string;
  fullName: string;
  email?: string;
  role: VaiTro;
  isActive: boolean;
  password?: string;
}

export interface NhatKy {
  id: string;
  nguoiThucHien: string;
  hanhDong: string;
  chiTiet: string;
  thoiGian: string;
  ipAddress: string;
}

// Định nghĩa cho Phân quyền
export interface QuyenHan {
  id: string;
  nhom: string;
  ten: string;
  moTa: string;
  allowedRoles: VaiTro[];
}
