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

const prefix = 'store/';

/**
 * 获取医生下拉列表（用于选择在线复诊负责人）
 * 返回 su_id 作为 id，需传入 store_id
 */
export async function getDoctorOptionApi(storeId?: number) {
  return requestClient.get<any>(`${prefix}doctor-option`, {
    params: storeId ? { store_id: storeId } : {},
  });
}

/**
 * 获取有互联网诊疗资质的诊所下拉列表
 * 用于选择委托在线复诊的诊所
 */
export async function getInternetMedicalStoreOptionApi() {
  return requestClient.get<any>(`${prefix}internet-medical-store-option`);
}

/**
 * 绑定在线复诊配置
 */
export async function bindOnlineConsultationApi(data: {
  id: number;
  is_internet_medical: number;
  delegate_store_id?: number | null;
  online_consultation_doctor_id?: number | null;
}) {
  return requestClient.post<any>(`${prefix}bind-online-consultation`, data);
}

/**
 * 绑定门店可开方药品种类与默认种类
 */
export async function bindPrescriptionTypesApi(data: {
  id: number;
  allowed_prescription_types: number[];
  default_prescription_type: number;
}) {
  return requestClient.post<any>(`${prefix}bind-prescription-types`, data);
}

/**
 * 绑定特色方默认挂号医生
 */
export async function updateSpecialPrescriptionDoctorApi(data: {
  id: number;
  special_prescription_doctor_id?: number | null;
}) {
  return requestClient.post<any>(`${prefix}update-special-prescription-doctor`, data);
}
/**
 * 分页查询用户列表
 * @param data
 */
export async function getStoreList(data: any) {
  return requestClient.get<any>(`${prefix}list`, { params: data });
}
/**
 * 分页查询用户列表
 * @param data
 */
export async function getStoreOption(data: any) {
  return requestClient.get<any>(`${prefix}option`, { params: data });
}

/**
 * 门店关键词搜索（名称/拼音首拼），供多选搜索气泡列表
 */
export async function searchStoreOption(params: {
  keyword: string;
  type?: 0 | 1;
  limit?: number;
}) {
  return requestClient.get<{
    items: { id: number; name: string; type: number; shouzimu: string }[];
  }>(`${prefix}search-option`, { params });
}

/**
 * 获取诊所详情
 * @param id
 */
export async function getStoreInfo(id: number) {
  return requestClient.get<any>(`${prefix}detail`, { params: { id } });
}

/**
 * 门店详情卡片（概览 + 统计 + 医生团队）
 */
export async function getStoreCardApi(params: {
  id: number;
  search_time?: [string, string];
}) {
  return requestClient.get<any>(`${prefix}card`, { params });
}

/**
 * 门店详情卡片统计刷新
 */
export async function getStoreCardStatsApi(params: {
  id: number;
  search_time?: [string, string];
}) {
  return requestClient.get<any>(`${prefix}card-stats`, { params });
}

/**
 * 新增诊所
 * @param data
 */
export async function createStore(data: Record<string, any>) {
  return requestClient.post<any>(`${prefix}create`, data);
}

/**
 * 编辑诊所
 * @param data
 */
export async function updateStore(data: Record<string, any>) {
  return requestClient.post<any>(`${prefix}update`, data);
}

/**
 * 删除诊所
 * @param data
 */
export async function deleteStore(data: Record<string, any>) {
  return requestClient.post<any>(`${prefix}delete`, data);
}

/**
 * 开启后台登录
 * @param id
 */
export async function openPcWindowsApiByStore(id: number) {
  return requestClient.post<any>(`${prefix}open-pc-windows`, {
    id,
  });
}

/**
 * 开启后台登录
 * @param id
 */
export async function openQrCodeApi(id: number) {
  return requestClient.post<any>(`${prefix}open-qr-code`, {
    id,
  });
}

/**
 * 更新门店包邮状态
 * @param data
 */
export async function updateStoreShippingFree(data: { id: number }) {
  return requestClient.post<any>(`${prefix}update-shipping-free`, data);
}

/**
 * 更新门店价格波动订阅状态
 * @param data
 */
export async function updateStoreSubscribeStatus(data: { id: number }) {
  return requestClient.post<any>(`${prefix}update-subscribe-status`, data);
}

/**
 * 切换门店是否可查看毛利率
 * @param data
 */
export async function updateStoreSeeRateStatus(data: { id: number }) {
  return requestClient.post<any>(`${prefix}update-see-rate`, data);
}

/**
 * 获取诊所药品列表（按类型）
 * @param storeId 诊所ID
 * @param type 商品类型（1中药 2西药 3保健食品 5产品服务包 6非药品 7医疗器械）
 */
export async function getStoreDrugsByTypeApi(storeId: number, type: number) {
  return requestClient.get<any>(`${prefix}get-store-drugs-by-type`, {
    params: { store_id: storeId, type },
  });
}

/**
 * 批量更新诊所药品价格（平台管理员专用）
 * @param data
 */
export async function updateStoreDrugPricesApi(data: {
  store_id: number;
  drugs: Array<{
    id: number;
    price: number;
    buy_price: number;
  }>;
}) {
  return requestClient.post<any>(`${prefix}update-store-drug-prices`, data);
}

/**
 * 批量同步总仓库药品
 * @param ids 门店ID数组
 */
export async function batchSyncDrugPriceApi(ids: number[]) {
  return requestClient.post<any>(`${prefix}batch-sync-drug-price`, {
    ids,
  });
}

/**
 * 更新诊所类型
 * @param data 包含id和clinic_type的对象，clinic_type: 1=西医诊所, 2=中医诊所
 */
export async function updateClinicTypeApi(data: { id: number; clinic_type: number }) {
  return requestClient.post<any>(`${prefix}update-clinic-type`, data);
}

export async function updateAllowInsuranceCategoryApi(data: { id: number }) {
  return requestClient.post<any>(`${prefix}update-allow-insurance-category`, data);
}

export async function updateStoreOrderPricePercentAdjust(data: { id: number }) {
  return requestClient.post<any>(`${prefix}update-order-price-percent-adjust`, data);
}

export async function toggleSalespersonSeePriceApi(data: { store_id: number }) {
  return requestClient.post<any>('salesperson-store-config/toggle-see-price', data);
}

/**
 * 单独更新 ERP ID 或 MES ID（列表快捷编辑）
 */
export async function updateStoreExternalFieldApi(data: {
  id: number;
  field: 'erp_id' | 'mes_id';
  value?: number | string | null;
}) {
  return requestClient.post<any>(`${prefix}update-store-external-field`, data);
}

/**
 * 仅更新系统门店银行卡字段（不触发易票联报备）
 */
export async function updateStoreBankInfoApi(data: {
  id: number;
  bank_user_name: string;
  bank_card: string;
  bank_name: string;
  bank_account_type: number;
  bank_no?: string;
}) {
  return requestClient.post<any>(`${prefix}update-store-bank-info`, data);
}
