import { requestClient } from '#/api/request';

const prefix = 'chat-friends/';
const commonPrescriptionPrefix = 'common-prescription/';

/**
 * 获取当前登录的诊所信息
 * @param data
 */
export async function getChatFriendsListApi(data: any = {}) {
  return requestClient.get<any>(`${prefix}list`, { params: data });
}
// chat-friends/messages-by-room-id

/**
 * 获取当前登录的诊所信息
 * @param data
 */
export async function getChatMessageListApi(data: any = {}) {
  // return requestClient.post<any>(`${prefix}messages-by-room-id`, { params: data });
  return requestClient.post<any>(`${prefix}messages-by-room-id`, data);
}
/**
 * 获取挂号卡片信息
 * @param data
 */
export async function getChatMessageRegisterInfoApi(data: any = {}) {
  // return requestClient.post<any>(`${prefix}messages-by-room-id`, { params: data });
  return requestClient.get<any>(`${prefix}chat-register-info`, { params: data });
}

// ==================== 常用方管理 API ====================

/**
 * 常用方药品数据结构（西药/中成药）
 * @description 西药药品的详细信息
 */
export interface CommonPrescriptionWestDrug {
  /** 药品ID */
  drug_id?: number;
  /** 药品ID（兼容字段） */
  id?: number;
  /** 药品名称 */
  drug_name: string;
  /** 每次用量 */
  number?: number;
  /** 购买数量 */
  select_number?: number;
  /** 单价 */
  price?: number;
  /** 使用时间ID */
  time_id?: number;
  /** 使用类型ID */
  type_id?: number;
  /** 使用频率ID */
  frequency_id?: number;
  /** 单位ID */
  unit_id?: number;
  /** 药品图片 */
  image?: string;
  /** 说明书 */
  instruction?: string;
  /** 使用时间信息 */
  use_num?: { name?: string };
  /** 使用类型信息 */
  use_type?: { name?: string };
  /** 使用频率信息 */
  use_frequency?: { name?: string };
  /** 单位信息 */
  unit?: { name?: string };
}

/**
 * 常用方药品数据结构（中药/颗粒药）
 * @description 中药/颗粒药药品的详细信息
 */
export interface CommonPrescriptionChineseDrug {
  /** 药品ID */
  drug_id?: number;
  /** 药品ID（兼容字段） */
  id?: number;
  /** 药品名称 */
  drug_name: string;
  /** 克数/用量 */
  number?: number;
  /** 单价 */
  price?: number;
  /** 用法ID */
  way_id?: number;
}

/**
 * 保存西药常用方
 * @description 将当前处方保存为西药常用方模板，后端会自动创建 recipe 记录
 * @param data 常用方数据
 */
export async function saveWestCommonPrescriptionApi(data: {
  /** 常用方名称 */
  name: string;
  /** 药品详细信息数组 */
  drugs: CommonPrescriptionWestDrug[];
  /** 诊所ID */
  store_id: number;
  /** 临床诊断（可选） */
  clinical_diagnose?: string;
  /** 医嘱（可选） */
  doctor_order?: string;
  /** 类别 1-自费 2-医保（可选） */
  category?: string;
}) {
  return requestClient.post<any>(`${commonPrescriptionPrefix}save-west`, data);
}

/**
 * 保存中药常用方
 * @description 将当前处方保存为中药常用方模板，后端会自动创建 recipe 记录
 * @param data 常用方数据
 */
export async function saveChineseCommonPrescriptionApi(data: {
  /** 常用方名称 */
  name: string;
  /** 药品详细信息数组 */
  drugs: CommonPrescriptionChineseDrug[];
  /** 诊所ID */
  store_id: number;
  /** 临床诊断（可选） */
  clinical_diagnose?: string;
  /** 医嘱（可选） */
  doctor_order?: string;
  /** 类别 1-自费 2-医保（可选） */
  category?: string;
  /** 剂量/天数（可选，默认7） */
  dosage?: number;
  /** 每日次数（可选，默认2） */
  day_dosage?: number;
}) {
  return requestClient.post<any>(
    `${commonPrescriptionPrefix}save-chinese`,
    data,
  );
}

/**
 * 保存颗粒药常用方
 * @description 将当前处方保存为颗粒药常用方模板，后端会自动创建 recipe 记录
 * @param data 常用方数据
 */
export async function saveGranularCommonPrescriptionApi(data: {
  /** 常用方名称 */
  name: string;
  /** 药品详细信息数组 */
  drugs: CommonPrescriptionChineseDrug[];
  /** 诊所ID */
  store_id: number;
  /** 临床诊断（可选） */
  clinical_diagnose?: string;
  /** 医嘱（可选） */
  doctor_order?: string;
  /** 类别 1-自费 2-医保（可选） */
  category?: string;
  /** 剂量/天数（可选，默认7） */
  dosage?: number;
  /** 每日次数（可选，默认2） */
  day_dosage?: number;
}) {
  return requestClient.post<any>(
    `${commonPrescriptionPrefix}save-granular`,
    data,
  );
}
