import { z } from 'zod';

/**
 * 用 zod schema 校验接口响应；失败时抛出带字段路径的错误，
 * 由调用方的统一错误处理（getErrorMessage / useApiMutation）展示。
 */
export function validateResponse<T>(schema: z.ZodType<unknown>, data: unknown): T {
  const result = schema.safeParse(data);
  if (!result.success) {
    const first = result.error.issues[0];
    const path = first?.path?.join('.');
    console.error('[response-validation]', result.error.issues);
    throw new Error(path ? `接口字段 ${path} 格式异常` : '接口数据格式异常');
  }
  return result.data as T;
}
