// HR模块模型定义

// 员工状态
export type EmployeeStatus = '在职' | '离职' | '试用期';

// 员工基本信息
export interface Employee {
  id: string;
  name: string;
  department: string;
  position: string;
  employeeId: string;
  phone: string;
  email: string;
  gender: string;
  birthDate: Date;
  hireDate: Date;
  status: EmployeeStatus;
  avatar?: string;
  contract?: Contract;
  certificates?: Certificate[];
  // 详情页面新增字段
  education?: string; // 学历
  workYears?: string; // 工作年限
  idCard?: string; // 身份证号
  bankCard?: string; // 银行卡号
  address?: string; // 地址
  supervisor?: string; // 直属上级
  screeningStatus?: 'approved' | 'rejected' | 'pending'; // 初筛状态
  screeningComment?: string; // 初筛备注
  screeningTime?: Date; // 初筛时间
}

// 合同信息
export interface Contract {
  id: string;
  startDate: Date;
  endDate: Date;
  type: string;
  fileUrl?: string;
  isExpiringSoon: boolean;
}

// 证件信息
export interface Certificate {
  id: string;
  name: string;
  type: string;
  number: string;
  issueDate: Date;
  expiryDate?: Date;
  fileUrl?: string;
}

// 考勤记录
export interface Attendance {
  id: string;
  employeeId: string;
  date: Date;
  checkInTime?: Date;
  checkOutTime?: Date;
  status: '正常' | '迟到' | '早退' | '旷工' | '请假';
  workHours: number;
  projectId?: string;
  projectName?: string;
}

// 资产类型
export type AssetType = '电脑' | '外设' | '软件账号' | '域名' | '其他';

// 资产状态
export type AssetStatus = '空闲' | '占用' | '故障' | '报修中';

// 资产信息
export interface Asset {
  id: string;
  name: string;
  type: AssetType;
  status: AssetStatus;
  purchaseDate: Date;
  value: number;
  assignedTo?: string;
  assignedToName?: string;
  department?: string;
  description?: string;
  serialNumber?: string;
  warrantyExpiry?: Date;
}

// 资产分配记录
export interface AssetAssignment {
  id: string;
  assetId: string;
  employeeId: string;
  startDate: Date;
  endDate?: Date;
  status: '进行中' | '已归还';
}

// 设计师技能
export interface DesignerSkill {
  id: string;
  name: string;
  level: number; // 1-5
}

// 设计师作品
export interface DesignerPortfolioItem {
  id: string;
  title: string;
  description: string;
  imageUrl: string;
  projectId?: string;
  projectName?: string;
  completionDate: Date;
  rating: number; // 1-5
}

// 部门信息
export interface Department {
  id: string;
  name: string;
  managerId?: string;
  managerName?: string;
  employeeCount: number;
}

// 岗位信息
export interface Position {
  id: string;
  name: string;
  departmentId: string;
  departmentName: string;
  level: string;
}