/**
 * 评价人员选择器相关类型定义
 */

/**
 * 评价人员项
 * 确保与API.PersonnelItem保持兼容
 */
export interface PersonnelItem {
  id: string;             // 人员ID
  name: string;           // 人员姓名
  userDept: string;     // 所属部门
  userDeptId: string;     // 所属部门ID
  position?: string;      // 职位（可选）
  selected?: boolean;     // 是否被选中（用于UI显示）
  indicatorIds?: string[]; // 指标ID列表
  isSelected?: boolean;    // 是否被选中（用于UI显示）
  // 其他可能的API字段
}

/**
 * 供应商项
 */
export interface SupplierItem {
  id: string;                       // 供应商ID
  supplierName: string;             // 供应商名称
  socialCreditCode?: string;        // 统一社会信用代码
  category?: string;                // 品类
  department?: string;              // 准入部门
  evaluatorCount: number;           // 评价人员数量
  evaluators: PersonnelItem[];      // 评价人员列表
  // 其他可能的字段
  [key: string]: any;
}

/**
 * 权重单位，用于设置不同部门的评分权重
 */
export interface WeightUnit {
  id: string;             // 权重单位ID
  name: string;           // 权重单位名称（通常是部门名）
  weight: number;         // 权重值
}

/**
 * 模态框模式枚举
 */
export enum ModalMode {
  SELECT = 'SELECT',    // 选择模式
  VIEW = 'VIEW'         // 查看模式
}

/**
 * 评价任务添加请求
 */
export interface TaskAddRequest {
  evaluateTheme?: string;           // 评价主题
  startTime?: string;               // 开始时间
  endTime?: string;                 // 结束时间
  templateId?: string;              // 模板ID
  categoryLimitation?: string;      // 品类限制
  evaluateYear?: string;            // 评价年份

  // 供应商相关
  selectedSuppliers?: SupplierItem[]; // 选择的供应商列表
  supplierIds?: { id: string }[];     // 供应商ID列表

  // 评价人员相关
  suppliersWithEvaluators?: SupplierItem[]; // 带有评价人员的供应商列表
  indicatorList?: {                 // 指标列表
    userId: string;                 // 用户ID
    type: number;                   // 类型
    indicatorIds: string[];         // 指标ID列表
  }[];

  // 权重相关
  WeightUnit?: WeightUnit[];        // 权重单位列表
  taskDeptWeightList?: any[];       // 任务部门权重列表
  weightStatus?: number;            // 权重状态
}
