// 宜搭应用配置
export const YIDA_APP_TYPE = 'APP_T3NXE1MYZ6O34NXJL12N';

// 表单 UUID
export const FORM_UUIDS = {
  BUSINESS_TRIP: 'FORM-33666CB10GA2RSMWBHJPS7XF94RG2N39DG46L63',
  BUSINESS_TRIP_CHANGE: 'FORM-DX966R610P4323DK7XH747JNP98L36W7QYW6L0',
  OLD_EMPLOYEE_INFO: 'FORM-NC966W81QGP2RO5FB80HMBX751JQ2TU877D6LO',
  EMPLOYEE_INFO: 'FORM-4G8667A1KB1CXROFFIVAP8LQVAUR32W6J7MJL81',
  EMPLOYEE_INFO_WEEKLY: 'FORM-4G8667A17A9CHR1C9IJEM52SIQ4Z1O50SIQJL0',
  FIELD_APPLICATION: 'FORM-EX866CB13XM4RGRAAD5RSDXU7NC43NSCR4C9LT1',
  OVERTIME_APPLICATION: 'FORM-RK966E71K1Q9ORK2AC9O8AOCE1G12SAMD6GGLZ',
  SEPARATION_HANDOVER: 'FORM-4V966N81YBW8L35DD9ZIJCUUDTMI2XJ6I72FL5',
  LEAVE_EXTENSION_PROCESS: 'FORM-4G8667A1KB1CXROFFIVAP8LQVAUR32W6J7MJL81',
  LEAVE_EXTENSION_DATA: 'FORM-3J866L81C0ED0VW3F8RZL7SWNKAO3I32SYELLB',
  ANNUAL_LEAVE_RELEASE: 'FORM-MFA66S915B7CY6OJBKIMC7FJDNZU3VHJEIPJLF',
  // 采购申请（根据 SAP_ENVIRONMENT 在运行时选择）
  PURCHASE_REQUEST_TEST: 'FORM-0C7C56E35CD844B2B97821540420E3BD3AMU',
  PURCHASE_REQUEST_PROD: 'FORM-5L6664817VY21Y0C71OXGD7A5RJJ3LHQY3U6L91',
};

// 出差申请表字段
export const BUSINESS_TRIP_FIELDS = {
  USER_ID: 'textField_l6d77ijn',
  NUMBER: 'textField_l6oi3r6n',
  NAME: 'textField_l6c046bz',
  TABLE_FIELD: 'tableField_l63i9o7v',
  CREATOR: 'textField_l6un702e',
  FROM_DATE: 'dateField_l6vzymfp',
  TO_DATE: 'dateField_l6vzymfq',
  FROM_SLOT: 'selectField_l6vzymfr_id',
  TO_SLOT: 'selectField_l6vzymfs_id',
};

// 员工信息表字段 (新表)
export const EMPLOYEE_INFO_FIELDS = {
  USER_ID: 'textField_l6d77ijn',
  NUMBER: 'textField_l6oi3r6n',
  NAME: 'textField_l6c046bz',
  COUNTRY: 'textField_l6w1tckk',
  DEPARTMENT: 'textField_l6c046c0',
  WORK_PLACE: 'textField_l6oq5scz',
  CONTRACT_COMPANY: 'textField_l6vjo0rx',
  BANK: 'textField_l6vjo0ry',
  BANK_NO: 'textField_l6vjo0rz',
  TITLE: 'textField_l6w1tckl',
  RANK: 'textField_l6w1tcko',
  START_DATE: 'textField_l6w1tckm',
  MONTHLY_STANDARD_HOURS: 'textField_l6w1tckp',
  WORK_HOUR_LIMIT: 'textField_l6w1tckq',
  COMPANY_YEAR: 'textField_ljqybhbq',
  WORK_YEAR: 'textField_ljqybhbs',
  WORK_DATE: 'textField_ljqybhbr',
  PHONE: 'textField_l6w1tckn',
  STATUS: 'textField_ljqiy3mu',
};

// 员工信息表字段 (旧表)
export const OLD_EMPLOYEE_INFO_FIELDS = {
  USER_ID: 'textField_l6d77ijn',
  COUNTRY: 'textField_l6w1tckk',
  NUMBER: 'textField_l6oi3r6n',
  NAME: 'textField_l6c046bz',
  DEPARTMENT: 'textField_l6c046c0',
  WORK_PLACE: 'textField_l6oq5scz',
  CONTRACT_COMPANY: 'textField_l6vjo0rx',
  BANK: 'textField_l6vjo0ry',
  BANK_NO: 'textField_l6vjo0rz',
  TITLE: 'textField_l6w1tckl',
  RANK: 'textField_l6w1tcko',
  START_DATE: 'textField_l6w1tckm',
  PHONE: 'textField_l6w1tckn',
  STATUS: 'textField_l6w1tckp',
};

// 钉钉 HR 字段名映射
export const DINGTALK_HR_FIELD_NAMES = {
  USER_ID: 'UserID',
  NUMBER: '工号',
  NAME: '姓名',
  COUNTRY: '国家',
  DEPARTMENT: '部门',
  WORK_PLACE: '办公地点',
  CONTRACT_COMPANY: '合同公司',
  BANK: '开户行',
  BANK_NO: '银行卡号后四位',
  TITLE: '职位',
  RANK: '岗位职级',
  START_DATE: '入职时间',
  MONTHLY_STANDARD_HOURS: '全月标准工时',
  WORK_HOUR_LIMIT: '工时上限',
  COMPANY_YEAR: '司龄（系统计算）',
  WORK_YEAR: '工龄（系统计算）',
  WORK_DATE: '首次参加工作时间',
  PHONE: '手机号',
};

// 出差变更类型
export const BUSINESS_TRIP_CHANGE_TYPES = {
  CANCEL_UNCHANGED: '取消未变更过的出差',
  CANCEL_CHANGED: '取消已变更过的出差',
  FIRST_CHANGE: '首次变更',
  NOT_FIRST_CHANGE: '非首次变更',
};

// 出差变更关联字段
export const BUSINESS_TRIP_CHANGE_FIELDS = {
  TYPE: 'selectField_l78pm1uc',
  CANCEL_UNCHANGED_ASSOC: 'associationFormField_l7r2pt5q_id',
  CANCEL_CHANGED_ASSOC: 'associationFormField_l7r2pt5r_id',
  FIRST_CHANGE_ASSOC: 'associationFormField_l6xjqm71_id',
  NOT_FIRST_CHANGE_ASSOC: 'associationFormField_l78pm1tz_id',
  TABLE_FIELD: 'tableField_l63i9o7v',
  CREATOR: 'textField_l6un702e',
  FROM_DATE: 'dateField_l6vzymfp',
  TO_DATE: 'dateField_l6vzymfq',
  FROM_SLOT: 'selectField_l6vzymfr_id',
  TO_SLOT: 'selectField_l6vzymfs_id',
};

// 外勤申请表字段
export const FIELD_APPLICATION_FIELDS = {
  TABLE_FIELD: 'tableField_l63i9o7v',
  CREATOR: 'textField_l6un702e',
  FROM_DATE: 'dateField_l9c53yak',
  TO_DATE: 'dateField_l9c53yam',
};

// 加班确认表字段
export const OVERTIME_FIELDS = {
  CREATOR: 'textField_l631idt7',
  TABLE_FIELD: 'tableField_lgg5hltd',
  FROM_DATE: 'dateField_lgg5hlte',
  TO_DATE: 'dateField_lheormgh',
  DURATION: 'numberField_lhh4v2f1',
};

// 假期延期申请表字段
export const LEAVE_EXTENSION_PROCESS_FIELDS = {
  APPLICATION_DATE: 'cascadeDateField_ljm7qcge',
  EXPIRATION_DATE: 'cascadeDateField_ljm7qcgd',
  LEAVE_TYPE: 'selectField_ljm7qcgc',
  USER_ID: 'textField_l6ow35rx',
  NAME: 'textField_l631idt7',
  EMPLOYEE_ID: 'textField_l631idt6',
};

// 假期延期数据表字段
export const LEAVE_EXTENSION_DATA_FIELDS = {
  USER_ID: 'textField_lleysn7j',
  EMPLOYEE_ID: 'textField_lleysn7k',
  EMPLOYEE_NAME: 'textField_lleysn7r',
  LEAVE_TYPE: 'textField_lleysn7l',
  LEAVE_ID: 'textField_lleysn7m',
  EXPIRATION_DATE_STR: 'textField_lleysn7n',
  APPLICATION_DATE_STR: 'textField_lleysn7q',
  EXPIRATION_DATE: 'textField_lln2eny3',
  APPLICATION_DATE: 'textField_lln64kws',
  DAYS: 'textField_lleysn7o',
  IS_NOTIFY: 'textField_lln64kwt',
};

// 年假释放表字段
export const ANNUAL_LEAVE_FIELDS = {
  USER_ID: 'textField_ljs4x1rt',
  EMPLOYEE_NUMBER: 'textField_qb14sdd',
  NAME: 'textField_l4zwp0o',
  WORK_START_DATE: 'textField_ae59mj9',
  JOIN_DATE: 'textField_hy0lneo',
  STATUS: 'textField_ljqicrhq',
  YEAR: 'textField_ljqh1fca',
  LEAVE_ADJUSTMENT: 'textField_ljpijn2g',
  NOT_COUNT_DAYS: 'textField_ljqh1fc9',
  LEAVE_DATE_KEYS: [
    'textField_q1pla6q', 'textField_0rjhr76', 'textField_etp4rir', 'textField_ipxhv58',
    'textField_3zlkb3z', 'textField_r2toslg', 'textField_y539qgu', 'textField_u98przv',
    'textField_v5x1ano', 'textField_gv1he5s', 'textField_5mvye6p', 'textField_3mmh1as',
    'textField_vgmmnfu', 'textField_exxgbay', 'textField_8q1vi2i', 'textField_tcfzr7y',
    'textField_lc2992v', 'textField_en1qze0', 'textField_fttyjbp', 'textField_eve8ruw',
  ],
};

// 宜搭审批通过查询条件
export const APPROVED_SEARCH_CONDITION = JSON.stringify([
  {
    key: 'processApprovedResult',
    value: ['agree'],
    type: 'ARRAY',
    operator: 'in',
    componentName: 'SelectField',
  },
]);

// 员工信息字段名映射 (钉钉HR字段 -> 宜搭字段)
export const EMPLOYEE_FIELD_MAPPING: Array<{
  key: string;
  dingtalkField: string;
  yidaField: string;
}> = [
  { key: 'NUMBER', dingtalkField: '工号', yidaField: EMPLOYEE_INFO_FIELDS.NUMBER },
  { key: 'NAME', dingtalkField: '姓名', yidaField: EMPLOYEE_INFO_FIELDS.NAME },
  { key: 'COUNTRY', dingtalkField: '国家', yidaField: EMPLOYEE_INFO_FIELDS.COUNTRY },
  { key: 'DEPARTMENT', dingtalkField: '部门', yidaField: EMPLOYEE_INFO_FIELDS.DEPARTMENT },
  { key: 'WORK_PLACE', dingtalkField: '办公地点', yidaField: EMPLOYEE_INFO_FIELDS.WORK_PLACE },
  { key: 'CONTRACT_COMPANY', dingtalkField: '合同公司', yidaField: EMPLOYEE_INFO_FIELDS.CONTRACT_COMPANY },
  { key: 'BANK', dingtalkField: '开户行', yidaField: EMPLOYEE_INFO_FIELDS.BANK },
  { key: 'BANK_NO', dingtalkField: '银行卡号后四位', yidaField: EMPLOYEE_INFO_FIELDS.BANK_NO },
  { key: 'TITLE', dingtalkField: '职位', yidaField: EMPLOYEE_INFO_FIELDS.TITLE },
  { key: 'RANK', dingtalkField: '岗位职级', yidaField: EMPLOYEE_INFO_FIELDS.RANK },
  { key: 'START_DATE', dingtalkField: '入职时间', yidaField: EMPLOYEE_INFO_FIELDS.START_DATE },
  { key: 'MONTHLY_STANDARD_HOURS', dingtalkField: '全月标准工时', yidaField: EMPLOYEE_INFO_FIELDS.MONTHLY_STANDARD_HOURS },
  { key: 'WORK_HOUR_LIMIT', dingtalkField: '工时上限', yidaField: EMPLOYEE_INFO_FIELDS.WORK_HOUR_LIMIT },
  { key: 'COMPANY_YEAR', dingtalkField: '司龄（系统计算）', yidaField: EMPLOYEE_INFO_FIELDS.COMPANY_YEAR },
  { key: 'WORK_YEAR', dingtalkField: '工龄（系统计算）', yidaField: EMPLOYEE_INFO_FIELDS.WORK_YEAR },
  { key: 'WORK_DATE', dingtalkField: '首次参加工作时间', yidaField: EMPLOYEE_INFO_FIELDS.WORK_DATE },
  { key: 'PHONE', dingtalkField: '手机号', yidaField: EMPLOYEE_INFO_FIELDS.PHONE },
];

// 采购申请单字段（测试/生产环境字段 ID 一致）
export const PURCHASE_REQUEST_FIELDS = {
  // 申请人信息
  APPLICANT_NAME: 'textField_l631idt7',
  APPLICANT_EMPLOYEE_ID: 'textField_l631idt6',
  APPLICANT_ID: 'textField_l6ow35rx',
  APPLICANT_DEPT: 'selectField_l6omsovj',
  APPLICATION_DATE: 'dateField_l631idt3',
  // 公司信息
  COMPANY_NAME: 'selectField_l6385y56',
  PURCHASING_COMPANY_NAME: 'selectField_miay1zu1',
  // 采购信息
  PURCHASER: 'employeeField_l6u4f3ee',
  SERIAL_NUMBER: 'textField_l6385y60',
  EXPECTED_COMPLETION_DATE: 'dateField_l6u4f3f5',
  // 需求信息
  DEMAND_INITIATOR: 'employeeField_l9nxtfh1',
  DEMAND_CATEGORY: 'selectField_l6q5ts76',
  // 预算信息
  BUDGET_NUMBER: 'textField_l6u4f3ec',
  BUDGET_AMOUNT: 'numberField_l6q5ts78',
  // 描述与财务
  PURCHASE_PROJECT_DESCRIPTION: 'textareaField_l6q5ts73',
  MATERIAL_GROUP: 'selectField_mhzmjamt',
  COST_CENTER_NUMBER: 'selectField_mifeb1r4',
  FIXED_ASSETS_NUMBER: 'textField_mhzmjamr',
  GENERAL_LEDGER_ACCOUNT: 'selectField_mhznbp16',
};
