// 驾驶员档案数据类型定义

export interface DriverRecord {
  id: string;
  
  // 基本信息
  name: string;
  gender: '男' | '女';
  birthDate: string;
  phone: string;
  email?: string;
  address?: string;
  idCard: string; // 身份证号
  photo?: string; // 照片URL
  
  // 驾驶证信息
  driverLicense: {
    licenseNumber: string;
    licenseType: string; // C1, B2, A等
    issueDate: string;
    expiryDate: string;
    frontPhoto?: string; // 驾驶证正页
    backPhoto?: string; // 驾驶证副页
  };
  
  // 从业资格证
  qualification?: {
    certificateNumber: string;
    issueDate: string;
    expiryDate: string;
    certificatePhoto?: string;
  };
  
  // 培训记录
  trainingRecords: TrainingRecord[];
  
  // 违规记录
  violationRecords: ViolationRecord[];
  
  // 工作信息
  status: DriverStatus;
  department?: string;
  entryDate: string; // 入职日期
  
  // 系统信息
  createdAt: string;
  updatedAt: string;
  createdBy: string;
  updatedBy: string;
}

export type DriverStatus = '在岗' | '休假' | '离职';

// 培训记录
export interface TrainingRecord {
  id: string;
  driverId: string;
  trainingName: string;
  trainingType: string;
  trainingDate: string;
  duration: number; // 培训时长（小时）
  instructor?: string;
  score?: number;
  certificate?: string; // 证书URL
  remarks?: string;
}

// 违规记录
export interface ViolationRecord {
  id: string;
  driverId: string;
  violationType: string;
  violationDate: string;
  description: string;
  penaltyPoints?: number;
  fine?: number;
  handler?: string;
  status: '待处理' | '处理中' | '已处理';
  remarks?: string;
}

// 驾驶员任务
export interface DriverTask {
  id: string;
  taskNumber: string; // 任务编号
  
  // 任务基本信息
  machineryId: string; // 农机ID
  machineryName?: string;
  driverId: string; // 驾驶员ID
  driverName?: string;
  fieldId?: string; // 地块ID
  fieldName?: string;
  
  // 任务详情
  operationType: string; // 作业类型：耕地、播种、收获等
  description?: string;
  
  // 时间要求
  plannedStartTime: string;
  plannedEndTime: string;
  actualStartTime?: string;
  actualEndTime?: string;
  
  // 任务状态
  status: TaskStatus;
  
  // 问题反馈
  issues: TaskIssue[];
  
  // 工时统计
  workHours?: number; // 实际工时（小时）
  
  // 其他
  priority: 'low' | 'medium' | 'high';
  assignedBy: string; // 分配人
  assignedAt: string; // 分配时间
  
  createdAt: string;
  updatedAt: string;
}

export type TaskStatus = '待接收' | '已接收' | '进行中' | '已完成' | '已取消' | '已终止';

export interface TaskIssue {
  id: string;
  taskId: string;
  type: string; // 问题类型
  reportedAt: string;
  reportedBy: string;
  description: string;
  photos?: string[]; // 问题照片
  status: 'pending' | 'processing' | 'resolved' | '待处理' | '处理中' | '已解决';
  
  // 处理信息
  solution?: string; // 解决方案
  handleNote?: string; // 处理备注
  handledAt?: string; // 处理时间
  handledBy?: string; // 处理人
  
  // 兼容旧字段
  issueType?: string; // 兼容旧的问题类型字段
  solvedAt?: string; // 兼容旧的解决时间字段
}

// 证件到期提醒配置
export interface CertificateReminder {
  driverId: string;
  driverName: string;
  certificateType: '驾驶证' | '从业资格证';
  expiryDate: string;
  daysUntilExpiry: number;
  reminded: boolean;
}
