/**
 * robot-manager 模块 — 响应快照校验专属配置
 */

export interface EndpointOverride {
  frontendFields?: string[];
  nestedFields?: Record<string, string[]>;
  skip?: boolean;
  extraQueryParams?: Record<string, string>;
}

/** 端点覆盖配置 */
export const endpointOverrides: Record<string, EndpointOverride> = {
  // 列表端点额外字段由后端 join 计算，前端 interface 未完整声明
  'GET /robot-manager': {
    nestedFields: {
      items: ['id', 'ffsn', 'modelId', 'skuId', 'currentStatus', 'version', 'metadata', 'createdAt', 'updatedAt'],
    },
  },
  // Excel 导出/模板返回 stream，不能做快照
  'GET /robot-manager/excel/export': { skip: true },
  'GET /robot-manager/excel/template': { skip: true },
  'GET /robot-manager/attachments/:attachmentId/download': { skip: true },
};

/**
 * 获取模块特定的已知参数值（用于路径变量填充）
 * 需要测试后端（3011）有种子数据支撑
 */
export const knownParamEndpoints = {
  /** unitId: GET /robot-manager?pageSize=1 → items[0].id */
  id: { listUrl: '?pageSize=1', pickField: 'id' },
  /** modelId: GET /admin/models → data[0].id */
  modelId: { listUrl: '/admin/models', pickField: 'id' },
  /** skuId: GET /admin/skus → data[0].id */
  skuId: { listUrl: '/admin/skus', pickField: 'id' },
  /** supplierId: GET /admin/suppliers → data[0].id */
  supplierId: { listUrl: '/admin/suppliers', pickField: 'id' },
  /** customerId: GET /admin/customers → data[0].id */
  customerId: { listUrl: '/admin/customers', pickField: 'id' },
  /** locationId: GET /admin/locations → data[0].id */
  locationId: { listUrl: '/admin/locations', pickField: 'id' },
  /** fieldDefId: GET /admin/field-defs → data[0].id */
  fieldDefId: { listUrl: '/admin/field-defs', pickField: 'id' },
  /** attachmentId: 需先创建一个 unit 并上传附件；此处使用 config key 作为替代示例 */
  key: { listUrl: '/admin/config', pickField: 'key' },
};
