export default {
  app: {
    name: 'Hotel OMS',
    theme: '主题',
    language: '语言',
    navigationAria: '预订订单导航',
    healthUp: '后端已连接',
    healthDown: '后端未连接',
    healthChecking: '检查中',
  },
  auth: {
    loginTitle: '登录系统',
    loginSubtitle: '使用系统账号进入 TH Hotel 预订处理工作台。',
    username: '用户名',
    password: '密码',
    loginSubmit: '登录',
    loggingIn: '登录中',
    loginFailed: '用户名或密码错误。',
    logout: '退出登录',
    currentUser: '当前用户',
    currentHotel: '当前酒店',
    unauthorizedTitle: '没有访问权限',
    unauthorizedMessage: '当前账号没有访问这个页面或操作的权限，请联系管理员调整角色权限。',
    backHome: '返回可访问页面',
  },
  nav: {
    orders: '订单列表',
    taskQueue: '任务队列',
    sourceMessages: '消息来源',
    systemStatus: '系统状态',
    orderDetail: '订单详情',
    taskDetail: '任务详情',
    sourceMessageConversation: '邮件会话',
    debugEml: 'Debug EML',
    systemSettings: '系统设置',
    systemUsers: '用户管理',
    systemRoles: '角色权限',
    systemMenus: '菜单管理',
    systemHotels: '酒店管理',
    systemAudits: '管理审计',
  },
  common: {
    loading: '加载中',
    noData: '暂无数据',
    endpointPending: '接口待接入',
    endpointMissing: '接口待补',
    all: '全部',
    unknownStatus: '未知状态',
    unknownTaskType: '未知任务类型',
    unknownTaskSubtype: '未知任务细分',
    unknownReadonlyReason: '暂不可处理',
    unknownActorType: '未知操作者',
    unknownAuditAction: '未知操作',
    unknownOperation: '未知操作',
    previousPage: '上一页',
    nextPage: '下一页',
    pageStatus: '第 {current} / {total} 页',
    pageSize: '每页',
  },
  notFound: {
    title: '页面不可用',
    message: '当前菜单或链接对应的前端页面尚未接入。',
    backHome: '返回可访问页面',
  },
  systemAdmin: {
    title: '系统设置',
    subtitle: '维护用户、角色权限、菜单和酒店资料',
    navigationAria: '系统设置导航',
    common: {
      keyword: '关键词',
      viewDetail: '查看详情',
      selectRow: '选择一行查看详情',
      create: '新增',
      save: '保存',
      edit: '编辑',
      yes: '是',
      no: '否',
    },
    status: {
      ACTIVE: '启用',
      DISABLED: '禁用',
    },
    users: {
      title: '用户筛选',
      tableTitle: '用户数据',
      detailTitle: '用户详情',
      createTitle: '新增用户',
      totalSuffix: '个用户',
      keywordPlaceholder: '用户名 / 展示名 / 邮箱',
      userStatus: '用户状态',
      username: '用户名',
      initialPassword: '初始密码',
      displayName: '展示名称',
      email: '邮箱',
      phone: '手机号',
      roles: '角色',
      hotels: '授权酒店',
      defaultHotel: '默认酒店',
      saveRoles: '保存角色',
      saveHotels: '保存酒店授权',
      resetPassword: '重置密码',
      temporaryPassword: '临时密码：',
      created: '用户已创建',
      columns: {
        user: '用户',
        status: '状态',
        roles: '角色',
        defaultHotel: '默认酒店',
      },
    },
    roles: {
      title: '角色筛选',
      tableTitle: '角色数据',
      detailTitle: '角色详情',
      createTitle: '新增自定义角色',
      totalSuffix: '个角色',
      keywordPlaceholder: '角色代码 / 角色名称',
      roleStatus: '角色状态',
      roleCode: '角色代码',
      roleName: '角色名称',
      builtinReadonly: '内置角色由系统启动矩阵维护，不能在页面修改。',
      savePermissions: '保存权限',
      columns: {
        role: '角色',
        status: '状态',
        builtin: '内置',
        permissions: '权限',
        users: '用户数',
      },
    },
    menus: {
      title: '菜单筛选',
      createTitle: '新增菜单',
      editTitle: '编辑菜单',
      tableTitle: '菜单数据',
      totalSuffix: '个菜单',
      keywordPlaceholder: '菜单代码 / 名称 / 路由',
      menuStatus: '菜单状态',
      menuCode: '菜单代码',
      menuName: '菜单名称',
      componentKey: '组件标识',
      iconKey: '图标标识',
      columns: {
        menu: '菜单',
        route: '路由',
        permission: '权限码',
        visible: '可见',
        status: '状态',
        sort: '排序',
        knownRoute: '已知路由',
      },
    },
    hotels: {
      title: '酒店筛选',
      createTitle: '新增酒店',
      editTitle: '编辑酒店',
      tableTitle: '酒店数据',
      totalSuffix: '家酒店',
      keywordPlaceholder: '酒店 ID / 酒店名称',
      hotelStatus: '酒店状态',
      hotelId: '酒店 ID',
      hotelName: '酒店名称',
      saveStatus: '保存状态',
      singleActiveRule: '单酒店阶段只允许一家 ACTIVE 酒店；新增酒店默认禁用。',
      columns: {
        hotel: '酒店',
        status: '状态',
        timeZone: '时区',
        authorizedUsers: '授权用户',
        sort: '排序',
      },
    },
    audits: {
      title: '审计筛选',
      tableTitle: '管理审计数据',
      totalSuffix: '条审计记录',
      targetType: '对象类型',
      targetId: '对象 ID',
      action: '操作类型',
      columns: {
        action: '操作',
        target: '对象',
        actor: '操作者',
        occurredAt: '发生时间',
      },
    },
  },
  workbench: {
    title: '订单工作台',
    subtitle: '查看、筛选和处理预订订单任务',
    filters: '筛选条件',
    dateRange: '日期范围',
    businessKey: '业务号 / 临时单号',
    orderStatus: '订单状态',
    taskStatus: '任务状态',
    taskCardType: '任务卡类型',
    reset: '重置',
    tableTitle: '订单 / 任务列表',
    columns: {
      businessKey: '业务号',
      orderStatus: '订单状态',
      currentTask: '当前任务',
      taskStatus: '任务状态',
      updatedAt: '最近更新',
      operation: '操作',
    },
    view: '查看',
    totalPrefix: '共',
    totalSuffix: '条任务线索',
  },
  orderList: {
    title: '订单列表',
    subtitle: '按订单查看预订处理入口',
    keyword: '团队号 / 确认号',
    keywordPlaceholder: '团队号 / 确认号',
    groupCode: '团队号',
    groupCodePlaceholder: '输入团队号',
    confirmationNumber: '确认号',
    confirmationNumberPlaceholder: '输入确认号',
    tableTitle: '订单数据',
    totalSuffix: '条订单',
    viewDetail: '查看详情',
    continueTask: '继续处理',
    noOpenTask: '无待处理任务',
    endpointPending: '订单列表接口待后端接入，当前不展示假数据。',
    columns: {
      order: '订单',
      status: '状态',
      openTasks: '未关闭任务',
      createdAt: '创建时间',
    },
  },
  order: {
    summary: '订单摘要',
    taskQueue: '同订单任务队列',
    sourceMessage: '来源消息',
    businessKeySource: '业务号来源',
    updatedAt: '最近更新',
    guestName: '客人',
    arrivalDate: '入住日期',
    roomType: '房型',
    amount: '金额',
    openTask: '处理任务',
    groupCode: '团队号（Group Code）',
    confirmationNumber: '确认号（Confirmation No.）',
    temporaryOrderNo: '临时单号',
    blockCode: '团队预留号（Block Code）',
    createdAt: '创建时间',
    conversationMessageCount: '会话邮件数',
    sourceSummaryPending: '订单详情任务时间线的来源邮件摘要字段待后端补充；请从具体任务进入后查看。',
  },
  taskList: {
    title: '任务列表',
    subtitle: '按任务查看预订待处理队列',
    keyword: '订单 / 邮件关键词',
    keywordPlaceholder: '订单号 / 邮件关键词',
    taskType: '任务类型',
    taskSubtype: '任务细分',
    tableTitle: '任务数据',
    totalSuffix: '条任务',
    noSourceSubject: '暂无来源主题',
    canProcess: '可处理',
    cannotProcess: '不可处理',
    queueParticipation: '是否参与队列',
    queueAll: '全部队列状态',
    queueIncluded: '参与队列',
    queueExcluded: '不参与队列',
    viewTask: '查看任务',
    viewOrder: '查看订单',
    viewConversation: '查看邮件会话',
    sourceOnlyOrderLabel: '来源消息只读',
    hiddenTechnicalOrder: '不关联可见订单',
    columns: {
      task: '任务',
      order: '订单',
      card: '任务卡',
      status: '状态',
      source: '来源邮件',
      queue: '队列',
    },
  },
  task: {
    title: '任务卡',
    fieldContract: '字段契约',
    evidence: '证据区',
    saveDraft: '保存草稿',
    confirm: '确认任务',
    blocked: '阻塞中',
    readOnly: '只读',
    operaOperations: 'OPERA 模拟操作',
    audits: '审计时间线',
    noOperations: '确认任务后生成 OPERA 模拟操作。',
    noAudits: '暂无审计记录。',
    execute: '执行',
    retry: '重试',
    simulateFailure: '模拟失败',
    fieldNotes: '字段备注',
    emptyValue: '未填写',
    attachments: '附件',
    fieldAreaFallback: '基础信息',
    savedLocally: '草稿已保存',
    confirmedLocally: '任务已确认',
    validationFailed: '请先修正字段',
    validation: {
      required: '{field}为必填项',
      enum: '{field}必须来自可选项',
      date: '{field}日期格式必须为 YYYY-MM-DD',
      number: '{field}必须是数字',
    },
    viewOrder: '查看订单',
    viewConversation: '查看邮件会话',
    parentGroup: 'Parent Group',
    sourceMessageId: '来源消息编号（ID）',
    sourceSubject: '来源主题',
    sourceSender: '发件人',
    sourceReceivedAt: '接收时间',
    sourceSummaryPending: '来源邮件摘要字段待后端补充',
    sourceOnlyResult: '来源消息入口结果',
    sourceOnlyReadonly: '该任务仅用于展示来源消息入口结果，不进入订单处理、字段编辑或 OPERA 操作。',
    sourceOnlyNoOpera: '该类任务不涉及 OPERA 操作。',
    routeInfo: '路由与处理信息',
    resultType: '识别结果类型',
    aiTaskType: 'AI 任务类型',
    systemTaskType: '系统任务类型',
    taskCardType: '任务卡类型',
    taskSubtype: '任务细分',
    routeCode: '路由代码',
    systemProcessCategory: '系统处理分类',
    reviewStatus: '复核状态',
    entryResultCode: '入口结果码',
    entryResultMeaning: '结果含义',
    entryResultDescription: '结果说明',
    entryResultSourceMessageId: '结果来源消息编号',
    rawAnswer: 'SuperAgent 原始回答',
    agentAssessment: 'AI 原始字段',
    sourceNotification: '来源消息通知',
    manualReviewData: '人工复核信息',
    manualReviewEvidence: '人工复核证据',
    manualReviewEvidenceFallback: '请根据来源邮件和候选信息确认 Parent Group 身份。',
    manualReviewMissingFields: '缺失字段',
    manualReviewBlockingPoints: '阻塞点',
    manualReviewConflictingPoints: '冲突点',
    manualReviewSuggestedActions: '建议动作',
    manualReviewEvidenceToCheck: '建议核对证据',
    parentIdentityCandidates: 'Parent Group 候选',
    parentIdentityCandidate: '候选项',
    noParentIdentityCandidates: '暂无 Parent Group 候选；需要后端透出 context_used.parent_identity_candidates。',
    adapterContractErrors: '适配契约异常',
    unhandledIntents: '未处理意图',
    noSourceOnlyResult: '暂无来源消息入口结果。',
    manualResolution: {
      title: '人工复核解阻',
      description: '在原任务卡上补齐缺失字段，提交后由后端校验并解除阻塞。',
      pendingStatus: '待复核',
      resolvedTitle: '复核已完成',
      reasonCode: '复核原因代码',
      reviewInstruction: '复核说明',
      confirmedOrderId: '确认订单编号',
      fieldValuePlaceholder: '填写确认后的值',
      noSupportedMissingFields: '当前缺失字段暂不支持前端解阻，请联系后端确认字段映射。',
      fieldRequired: '请填写缺失字段和确认订单编号',
      reason: '处理说明',
      reasonPlaceholder: '可选，说明人工判断依据',
      submit: '提交复核结果',
      succeeded: '人工复核已解阻，任务状态已刷新。',
    },
    manualConversion: {
      title: '人工转换',
      description: '将人工复核任务转换为可处理的预订任务。',
      targetTaskType: '目标任务类型',
      targetOrder: '目标订单',
      targetOrderHelp: '修改或取消预订必须选择一个未删除订单。',
      targetOrderKeyword: '目标订单搜索',
      targetOrderKeywordPlaceholder: '团队号、确认号或订单关键词',
      searchTargetOrders: '搜索订单',
      noTargetOrderCandidates: '请输入关键词并搜索目标订单',
      orderDeletedDisabled: '已删除订单不可选',
      newBookingHint: '转为新预订时不强制选择目标订单，后端会按当前任务重新归属。',
      reason: '转换原因',
      reasonPlaceholder: '可选，说明人工判断依据',
      submit: '转换任务',
      targetOrderRequired: '请选择目标订单',
      succeeded: '人工转换已完成：{taskType}，目标订单 {orderId}',
      orderId: '订单编号',
    },
  },
  conversation: {
    title: '邮件会话详情',
    subtitle: '查看来源邮件所在会话下的全部历史邮件和回复',
    endpointPending: '邮件会话详情接口待后端接入，当前不展示假数据。',
    subject: '会话主题',
    messageCount: '邮件数',
    channel: '渠道',
    firstReceivedAt: '首次接收',
    lastReceivedAt: '最近接收',
    emptyBody: '邮件正文为空',
    attachments: '附件 / 内嵌图片',
    unnamedAttachment: '未命名附件',
    relatedOrders: '关联订单',
    relatedTasks: '关联任务',
  },
  debugEml: {
    title: 'Debug EML 调试上传',
    subtitle: '上传单封 .eml 邮件并查看 SourceMessage 与 SuperAgent 调试结果',
    uploadConfig: '上传配置',
    hotelId: '酒店 ID',
    debugUploadKey: 'Debug 上传口令',
    runLabel: '运行标签',
    emlFile: '.eml 文件',
    submit: '提交调试',
    submitting: '等待 SuperAgent 返回',
    executionStatus: '执行状态',
    status: '状态',
    debugRunId: 'Debug 运行 ID',
    backendStatus: '后端状态',
    backendMessage: '后端消息',
    waitingSuperAgent: '正在解析邮件并等待 SuperAgent 返回',
    systemStages: '本系统处理阶段',
    superAgentTrace: 'SuperAgent Trace',
    traceToolName: '工具',
    traceInputSummary: '入参摘要',
    traceOutputSummary: '出参摘要',
    traceStatus: '状态',
    traceTime: '时间',
    sourceTrace: 'SourceMessage 追溯',
    sourceMessageId: 'SourceMessage ID',
    sourceProvider: '来源 Provider',
    externalMessageId: '外部消息 ID',
    externalConversationId: '外部会话 ID',
    mailPreview: '邮件内容预览',
    noSafeHtml: '当前没有可安全渲染的 HTML 正文',
    uploadedMedia: '上传媒体',
    unnamedMedia: '未命名媒体',
    rawHtml: '原始处理 HTML',
    superAgentResult: 'SuperAgent 结果',
    superAgentSessionId: 'SuperAgent Session ID',
    superAgentRunId: 'SuperAgent Run ID',
    parsedJson: '解析 JSON',
    rawAnswer: '原始回答',
    warnings: '警告',
    debugPayload: '调试 Payload',
    statuses: {
      idle: '待上传',
      uploading: '执行中',
      succeeded: '成功',
      failed: '失败',
    },
    errors: {
      REQUEST_FIELD_REQUIRED: '缺少必填字段，请检查酒店 ID、文件或请求参数',
      EML_FILE_REQUIRED: '请选择 .eml 邮件文件',
      EML_FILE_TOO_LARGE: '邮件文件超过后端限制',
      INVALID_FILE_TYPE: '只支持 .eml 邮件文件',
      DEBUG_UPLOAD_KEY_INVALID: '调试上传口令缺失或错误',
      EML_PARSE_FAILED: '邮件文件无法解析',
      OSS_UPLOAD_FAILED: 'OSS 上传失败，请联系后端排查',
      SUPERAGENT_OPEN_API_FAILED: 'SuperAgent 调用失败，SourceMessage 可能已经写入',
      DEBUG_EML_RUN_FAILED: 'Debug EML 链路内部失败',
      UNKNOWN: 'Debug EML 调试失败',
    },
  },
  status: {
    TEMPORARY: '临时',
    ACTIVE: '有效',
    ENDED: '已结束',
    LOGIC_DELETED: '已删除',
    PENDING_CONFIRM: '待确认',
    READY: '待执行',
    EXECUTING: '执行中',
    FAILED: '失败',
    COMPLETED: '已完成',
    PENDING: '待执行',
    SUCCEEDED: '成功',
    BLOCKED: '阻塞',
    SKIPPED: '跳过',
  },
  cardType: {
    NEW_BOOKING: '新预订',
    UPDATE_BOOKING: '修改预订',
    CANCEL_BOOKING: '取消预订',
    CANCEL_ALLOTMENT: '取消 Parent Group 配额',
    VOUCHER: '凭证',
    ROOMING_LIST: '房表',
    AMEND_GROUP_CODE: '修改团队号',
    TRACE_NOTE: '追踪备注（Trace）',
    TA_RECORD: '旅行社记录',
    MESSAGE_NOTIFICATION: '消息通知',
    INFORMATIONAL_MESSAGE: '消息通知（历史 Message Notification）',
    SOURCE_MESSAGE_REVIEW_NOTIFICATION: '来源消息通知',
    SOURCE_MESSAGE_ONLY: '来源消息只读',
    MANUAL_REVIEW: '人工复核',
    FALLBACK_REVIEW: '人工复核',
  },
  taskSubtype: {
    NEW_BOOKING: '新预订',
    UPDATE_BOOKING: '修改预订',
    CANCEL_BOOKING: '取消预订',
    RATE_CHANGE: '价格调整',
    UPDATE_STAY_DATES: '修改入住日期',
    UPDATE_ROOM_TYPE: '修改房型',
    UPDATE_FIX_CHARGE: '修改固定收费',
    CANCEL_ALLOTMENT_CONTROL_BLOCK: '取消 Parent Group 整块配额',
    NEW_GROUP_BLOCK: '新团队预留',
    NEW_FIT_RESERVATION: '新散客预订',
    MANUAL_REVIEW: '人工复核',
    S10: '纯信息类邮件（S10）',
    S99: '无法形成业务素材包（S99）',
    S000: '纯信息类邮件',
    S999: '无法形成业务素材包',
  },
  resultType: {
    NORMAL_TASK: '普通任务',
    MANUAL_REVIEW: '人工复核',
    SOURCE_MESSAGE_REVIEW_NOTIFICATION: '来源消息通知',
    ADAPTER_CONTRACT_ERROR: '适配契约异常',
    UNHANDLED_CURRENT_INTENT: '未处理意图',
  },
  systemProcessCategory: {
    BUSINESS_TASK: '业务任务',
    SOURCE_MESSAGE_NOTIFICATION: '来源消息通知',
    ADAPTER_CONTRACT_ERROR: '适配契约异常',
    UNHANDLED_CURRENT_INTENT: '未处理意图',
  },
  readonlyReason: {
    PROCESSABLE: '可处理',
    PREVIOUS_TASK_NOT_FINISHED: '前序任务未完成',
    TASK_FINISHED: '任务已结束',
    TASK_READ_ONLY: '任务只读',
    ORDER_CLOSED: '订单已关闭',
    QUEUE_EXCLUDED: '未参与队列',
    BLOCKED: '阻塞中',
    MANUAL_REVIEW_REQUIRED: '需要人工复核',
  },
  actorType: {
    USER: '人工用户',
    SYSTEM: '系统',
    AI: 'AI',
    AGENT: '外部助手',
    BACKEND: '后端服务',
  },
  auditAction: {
    TASK_CREATED: '任务创建',
    TASK_LOADED: '任务读取',
    TASK_CONFIRMED: '任务确认',
    TASK_CONFIRM: '任务确认',
    DRAFT_SAVED: '草稿保存',
    TASK_UPDATED: '任务更新',
    OPERA_EXECUTED: 'OPERA 执行',
    OPERA_RETRIED: 'OPERA 重试',
    MANUAL_REVIEW_CREATED: '创建人工复核',
    MANUAL_REVIEW_CONVERT: '人工转换',
    MANUAL_REVIEW_RESOLVED: '人工复核解阻',
  },
  operaOperation: {
    CREATE_RESERVATION: '创建预订',
    UPDATE_RESERVATION: '更新预订',
    CANCEL_RESERVATION: '取消预订',
    UPDATE_ROOMING_LIST: '更新房表',
    ADD_TRACE_NOTE: '添加追踪备注',
  },
}
