/**
 * 通用接口返回状态码类型
 */
export type CommonActionResultStatusCode = 200 | 400 | 401 | 403 | 500 | 4011 | -1;

/**
 * 状态码常量（用于运行时访问）
 */
export const StatusCode = {
  Success: 200,
  BadRequest: 400,
  Unauthorized: 401,
  Forbidden: 403,
  InternalException: 500,
  Unidentified: 4011,
  Fail: -1,
} as const;

/**
 * 通用接口返回数据实体
 */
export interface CommonActionResult<T = any> {
  Status: CommonActionResultStatusCode;
  Message?: string | null;
  Data?: T;
  TraceId?: string | null;
  CopyRight?: string | null;
}

/**
 * 今日体检统计信息入参
 */
export interface InputTodayExamStatisticsInfo {
  // 空对象，无需参数
}

/**
 * 今日体检统计信息出参
 */
export interface OutputTodayExamStatisticsInfo {
  /** 今日预约人数 */
  today_appointment_count?: number | null;
  /** 今日签到人数 */
  today_signin_count?: number | null;
  /** 今日签在检人数 */
  today_in_exam_count?: number | null;
  /** 今日签打印导检单 */
  today_print_guide_count?: number | null;
  /** 今日签已完成人数 */
  today_completed_count?: number | null;
}

/**
 * 今日体检统计信息接口返回
 */
export type TodayExamStatisticsResponse = CommonActionResult<OutputTodayExamStatisticsInfo>;

/**
 * 今日体检进度入参
 */
export interface InputTodayExamProgress {
  // 空对象，无需参数
}

/**
 * 今日体检进度出参
 */
export interface OutputTodayExamProgress {
  /** 今日预约人数 */
  today_appointment_count?: number | null;
  /** 今日已签到人数 */
  today_signin_count?: number | null;
  /** 今日体检中人数 */
  today_in_exam_count?: number | null;
  /** 今日用餐人数 */
  today_meal_count?: number | null;
}

/**
 * 今日体检进度接口返回
 */
export type TodayExamProgressResponse = CommonActionResult<OutputTodayExamProgress>;

/**
 * 营收数据统计入参
 */
export interface InputRevenueStatisticsInfo {
  // 空对象，无需参数
}

/**
 * 营收数据统计出参
 */
export interface OutputRevenueStatisticsInfo {
  /** 体检收入 */
  physical_exam_income?: number | null;
  /** 加项收入 */
  add_item_income?: number | null;
  /** 整体收入 */
  total_income?: number | null;
  /** 目标收入 */
  target_income?: number | null;
  /** 完成百分比 */
  completion_percentage?: string | null;
  /** 缺口金额 */
  gap_amount?: number | null;
}

/**
 * 营收数据统计接口返回
 */
export type RevenueStatisticsResponse = CommonActionResult<OutputRevenueStatisticsInfo>;

/**
 * 体检客户列表入参
 */
export interface InputPhysicalExamCustomerList {
  /** 查询文本（客户姓名、证件号码、联系电话、卡号） */
  query_text?: string | null;
  /** 是否全部 （1-是 0-否） */
  is_all: number;
  /** 是否上午 （1-是 0-否） */
  is_morning: number;
  /** 是否下午 （1-是 0-否） */
  is_afternoon: number;
  /** 是否高客 （1-是 0-否） */
  is_high_customer: number;
  /** 是否普客 （1-是 0-否） */
  is_general_customer: number;
  /** 是否已签到 （1-是 0-否） */
  is_registered: number;
  /** 是否未签到 （1-是 0-否） */
  is_not_registered: number;
  /** 是否散客 （1-是 0-否） */
  is_individual_customer: number;
  /** 是否团客 （1-是 0-否） */
  is_group_customer: number;
}

/**
 * 体检客户列表项
 */
export interface OutputPhysicalExamCustomerListItem {
  physical_exam_status?: number | null;
  physical_exam_status_name?: string | null;
  physical_exam_id?: number | null;
  customer_name?: string | null;
  phone?: string | null;
  id_no?: string | null;
  family_doctor_name?: string | null;
  member_level?: string | null;
  is_vip?: number | null;
  package_code?: string | null;
  package_name?: string | null;
  add_item_flag?: number | null;
  add_item_count?: number | null;
  channel?: string | null;
  physical_exam_time?: string | null;
  physical_exam_complete_time?: string | null;
  customer_type?: number | null;
  is_register?: number | null;
  is_sign_in?: number | null;
  is_print?: number | null;
  appointment_remarks?: string | null;
  time_spent?: string | null;
}

/**
 * 体检客户列表接口返回
 */
export type PhysicalExamCustomerListResponse = CommonActionResult<OutputPhysicalExamCustomerListItem[]>;

/**
 * 体检进度详情入参
 */
export interface InputPhysicalExamProgressDetail {
  /** 体检ID */
  physical_exam_id: number;
}

/**
 * 体检进度信息
 */
export interface PhysicalExamProgressItem {
  department_id?: number | null;
  department_name?: string | null;
  project_id?: string | null;
  project_name?: string | null;
  /** 检查状态（1-已查 2-弃检 3-未查 4-延期） */
  exam_status?: number | null;
  exam_status_name?: string | null;
}

/**
 * 客户基本信息（进度、详情共用）
 */
export interface CustomerInfo {
  customer_name?: string | null;
  physical_exam_number?: string | null;
  is_vip?: number | null;
  phone?: string | null;
  id_no?: string | null;
  gender_code?: number | null;
  gender_name?: string | null;
  patient_marital_status?: number | null;
  patient_marital_status_name?: string | null;
  family_doctor_name?: string | null;
  customer_type?: number | null;
  age?: string | null;
  card_number?: string | null;
}

/**
 * 体检进度详情出参
 */
export interface OutputPhysicalExamProgressDetail {
  customerInfo?: CustomerInfo | null;
  examProgressesList?: PhysicalExamProgressItem[] | null;
}

/**
 * 体检进度详情接口返回
 */
export type PhysicalExamProgressDetailResponse = CommonActionResult<OutputPhysicalExamProgressDetail>;

/**
 * 体检进度入参
 */
export interface InputPhysicalExamProgress {
  /** 体检ID */
  physical_exam_id: number;
}

/**
 * 体检进度接口返回
 */
export type PhysicalExamProgressResponse = CommonActionResult<PhysicalExamProgressItem[]>;

/**
 * 客户详情入参
 */
export interface InputCustomerDetail {
  /** 体检ID */
  physical_exam_id: number;
}

/**
 * 客户预约信息
 */
export interface CustomerAppointmentInfo {
  appointment_time?: string | null;
  sign_in_time?: string | null;
  physical_exam_complete_time?: string | null;
  package_name?: string | null;
  /** 已消耗时长 */
  time_spent?: string | null;
}

/**
 * 客户体检加项
 */
export interface CustomerExamAddItem {
  dept_name?: string | null;
  combination_name?: string | null;
}

/**
 * 客户详情出参
 */
export interface OutputCustomerDetail {
  customerInfo?: CustomerInfo | null;
  appointmentInfo?: CustomerAppointmentInfo | null;
  addItemInfoList?: CustomerExamAddItem[] | null;
}

/**
 * 客户详情接口返回
 */
export type CustomerDetailResponse = CommonActionResult<OutputCustomerDetail>;

/**
 * 体检中心签到入参
 */
export interface InputMedicalExamCenterSignIn {
  /** 身份证件照片（格式：jpg） */
  id_no_pic: File | Blob;
}

/**
 * 体检中心签到出参
 */
export interface OutputPhysicalExamSignIn {
  /** 是否签到成功（0-成功 1-失败） */
  is_success?: number | null;
}

/**
 * 体检中心签到响应
 */
export type PhysicalExamSignInResponse = CommonActionResult<OutputPhysicalExamSignIn>;

/**
 * 获取体检知情同意书入参
 */
export interface InputTongyishuInfo {
  /** 体检ID */
  exam_id: number;
}

/**
 * 知情同意书文件信息
 */
export interface OutputTongyishuFileInfo {
  /** 组合代码 */
  combination_code?: number | null;
  /** 知情同意书文件名称 */
  pdf_name: string;
  /** 知情同意书PDF文件地址 */
  pdf_url: string;
}

/**
 * 获取体检知情同意书出参
 */
export interface OutputTongyishuInfo {
  /** 知情同意书PDF文件url */
  list_pdf_url?: OutputTongyishuFileInfo[] | null;
  /** 消息内容 */
  message?: string | null;
}

/**
 * 获取体检知情同意书响应
 */
export type TongyishuGetResponse = CommonActionResult<OutputTongyishuInfo>;

/**
 * 提交体检知情同意书签名入参
 */
export interface InputTongyishuSignSubmit {
  /** 体检ID */
  exam_id: number;
  /** PDF文件组合代码 */
  combination_code: number;
  /** 签名图片文件 */
  sign_file: File | Blob;
}

/**
 * 提交体检知情同意书签名出参
 */
export interface OutputTongyishuSignInfo {
  /** 知情同意书PDF文件列表 */
  list_pdf_url?: OutputTongyishuFileInfo[] | null;
  /** 消息内容 */
  message?: string | null;
}

/**
 * 提交体检知情同意书签名响应
 */
export type TongyishuSignSubmitResponse = CommonActionResult<OutputTongyishuSignInfo>;

/**
 * 获取体检导检单PDF入参
 */
export interface InputDaojiandanInfo {
  /** 体检ID */
  exam_id: number;
  /** 是否重新生成导检单 默认0（0-不重新生成 1-重新生成） */
  is_regen?: number;
}

/**
 * 获取体检导检单PDF出参
 */
export interface OutputDaojiandanInfo {
  /** 导检单文件名称 */
  pdf_name?: string | null;
  /** 导检单PDF文件地址 */
  pdf_url?: string | null;
  /** 提示信息 */
  message?: string | null;
}

/**
 * 获取体检导检单PDF响应
 */
export type DaojiandanGetResponse = CommonActionResult<OutputDaojiandanInfo>;

/**
 * 提交体检签名生成导检单PDF入参
 */
export interface InputDaojiandanSignSubmit {
  /** 体检ID */
  exam_id: number;
  /** 签名图片文件 */
  sign_file: File | Blob;
}

/**
 * 提交体检签名生成导检单PDF出参
 */
export interface OutputDaojiandanSignInfo {
  /** 导检单文件名称 */
  pdf_name?: string | null;
  /** PDF文件地址 */
  pdf_url?: string | null;
  /** 消息内容 */
  message?: string | null;
}

/**
 * 提交体检签名生成导检单PDF响应
 */
export type DaojiandanSignSubmitResponse = CommonActionResult<OutputDaojiandanSignInfo>;

/**
 * 获取体检加项单PDF入参
 */
export interface InputAddItemBillInfo {
  /** 体检ID */
  exam_id: number;
  /** 加项组合代码（多个加项项目，用逗号拼接，例如：123,456） */
  CombinationCode: string;
}

/**
 * 加项单PDF文件信息
 */
export interface OutputAddItemBillFileInfo {
  /** 加项单编号 */
  pdf_sort?: number | null;
  /** PDF文件名称 */
  pdf_name: string;
  /** 支付状态（1-未支付  2-已支付） */
  payment_status: string;
  /** 支付状态名称 (1-未支付 2-已支付) */
  payment_status_name: string;
  /** PDF文件地址 */
  pdf_url: string;
}

/**
 * 获取体检加项单PDF出参
 */
export interface OutputAddItemBillInfo {
  /** 加项单PDF信息列表 */
  listPdfInfo: OutputAddItemBillFileInfo[];
  /** 消息内容 */
  message?: string | null;
}

/**
 * 获取体检加项单PDF响应
 */
export type AddItemBillGetResponse = CommonActionResult<OutputAddItemBillInfo>;

/**
 * 提交体检加项单签名入参
 */
export interface InputAddItemBillSignSubmit {
  /** 体检ID */
  exam_id: number;
  /** PDF加项单序号 */
  pdf_sort: number;
  /** 加项组合代码（多个加项项目，用逗号拼接，例如：123,456） */
  combinationCode: string;
  /** 签名图片文件 */
  sign_file: File | Blob;
}

/**
 * 提交体检加项单签名出参
 */
export interface OutputAddItemBillSignInfo {
  /** 支付状态 (1-未支付 2-已支付) */
  payment_status?: string | null;
  /** 支付状态名称 (1-未支付 2-已支付) */
  payment_status_name?: string | null;
  /** 加项单文件名称 */
  pdf_name?: string | null;
  /** PDF文件地址 */
  pdf_url?: string | null;
  /** 消息内容 */
  message?: string | null;
}

/**
 * 提交体检加项单签名响应
 */
export type AddItemBillSignSubmitResponse = CommonActionResult<OutputAddItemBillSignInfo>;

/**
 * 体检导检单打印状态修改入参
 */
export interface InputDaojiandanPrintStatus {
  /** 体检ID */
  exam_id: number;
}

/**
 * 体检导检单打印状态修改出参
 */
export interface OutputDaojiandanPrintStatus {
  /** 是否成功（1-成功 0-失败） */
  is_success?: number | null;
}

/**
 * 体检导检单打印状态修改响应
 */
export type DaojiandanPrintStatusResponse = CommonActionResult<OutputDaojiandanPrintStatus>;

/**
 * 客户信息编辑入参
 */
export interface InputCustomerDetailEdit {
  /** 证件号（必填） */
  id_no: string;
  /** 婚姻状况（10-未婚 20-已婚） */
  marital_status?: number;
  /** 联系电话 */
  phone?: string;
}

/**
 * 客户信息编辑出参
 */
export interface OutputCustomerDetailEdit {
  // 空对象，无属性
}

/**
 * 客户信息编辑响应
 */
export type CustomerDetailEditResponse = CommonActionResult<OutputCustomerDetailEdit>;

/**
 * 体检加项列表信息入参（搜索体检加项）
 */
export interface InputPhysicalExamAddItem {
  /** 体检ID */
  physical_exam_id: number;
  /** 渠道ID */
  scrm_account_id?: string | null;
  /** 渠道名称 */
  scrm_account_name?: string | null;
  /** 项目名称（默认空值，传入项目名称过滤数据） */
  item_name?: string;
  /** 折扣率 */
  discount_rate?: number | null;
}

/**
 * 加项界面客户基本信息
 */
export interface PoAddItemCustomerInfo {
  /** 患者ID */
  patient_id: number;
  /** 客户姓名 */
  customer_name?: string | null;
  /** 体检编号 */
  exam_no?: string | null;
  /** 体检ID */
  physical_exam_id?: number | null;
  /** 渠道ID */
  scrm_account_id?: string | null;
  /** 渠道名称 */
  scrm_account_name?: string | null;
  /** 是否VIP（1是，0否） */
  is_vip?: number | null;
  /** 是否VIP名称（1是，0否） */
  is_vip_name?: string | null;
  /** 联系电话 */
  phone?: string | null;
  /** 是否到检（0-未到检 1-已到检） */
  is_sign_in?: number | null;
  /** 挂账公司ID */
  company_id?: number | null;
  /** 挂账公司名称 */
  company_name?: string | null;
}

/**
 * 体检加项列表项
 */
export interface PoPhysicalExamAddItem {
  /** 项目ID */
  item_id?: number | null;
  /** 项目名称 */
  item_name?: string | null;
  /** 实收金额 */
  actual_received_amount?: number | null;
  /** 原价 */
  original_price?: number | null;
  /** 折扣率（含折扣单位，如8.0折） */
  discount_rate?: string | null;
  /** 折扣比例 */
  discount_ratio?: number | null;
  /** 次数 */
  times?: number | null;
  /** 组合项目代码 */
  combination_item_code?: number | null;
  /** 是否享受折扣（1-是 0-否） */
  is_enjoy_discount?: number | null;
}

/**
 * 体检加项列表信息出参（每一项加项信息）
 */
export interface OutputPhysicalExamAddItem {
  /** 项目ID */
  item_id?: number | null;
  /** 项目名称 */
  item_name?: string | null;
  /** 实收金额 */
  actual_received_amount?: number | null;
  /** 原价 */
  original_price?: number | null;
  /** 折扣率（含折扣单位，如8.0折） */
  discount_rate?: string | null;
  /** 折扣比例 */
  discount_ratio?: number | null;
  /** 次数 */
  times?: number | null;
  /** 组合项目代码 */
  combination_item_code?: number | null;
  /** 是否享受折扣（1-是 0-否） */
  is_enjoy_discount?: number | null;
}

/**
 * 体检加项列表信息响应
 */
export type PhysicalExamAddItemListResponse = CommonActionResult<OutputPhysicalExamAddItem[]>;

/**
 * 获取体检加项客户信息入参
 */
export interface InputAddItemCustomerInfo {
  /** 体检ID */
  physical_exam_id: number;
}

/**
 * 体检渠道加项折扣比例信息列表出参
 */
export interface OutputTijianChannelDiscountInfo {
  /** 渠道ID */
  channel_id?: string | null;
  /** 渠道名称 */
  channel_name?: string | null;
  /** 折扣比例 */
  discount_rate?: number | null;
  /** 折扣名称 */
  discount_name?: string | null;
}

/**
 * 加项客户信息出参
 */
export interface OutputAddItemCustomerInfo {
  /** 客户基本信息 */
  customerInfo?: PoAddItemCustomerInfo | null;
  /** 渠道折扣信息列表 */
  listChannelDiscount?: OutputTijianChannelDiscountInfo[] | null;
}

/**
 * 获取体检加项客户信息响应
 */
export type AddItemCustomerInfoResponse = CommonActionResult<OutputAddItemCustomerInfo>;

/**
 * 获取挂账公司信息列表入参
 */
export interface InputChannelCompanyInfo {
  // 空对象，无属性
}

/**
 * 挂账公司信息列表出参
 */
export interface OutputChannelCompanyInfo {
  /** 公司ID */
  company_id: number;
  /** 公司名称 */
  company_name?: string | null;
  /** 拼音码 */
  pinyin?: string | null;
}

/**
 * 获取挂账公司信息列表响应
 */
export type ChannelCompanyInfoListResponse = CommonActionResult<OutputChannelCompanyInfo[]>;

/**
 * 体检加项支付记录入参（生成扫码支付二维码）
 */
export interface InputPhysicalExamAddOrder {
  /** 体检ID */
  physical_exam_id: number;
  /** 用户姓名 */
  userName: string;
  /** 用户手机号 */
  userPhone: string;
  /** 体检组合项目代码（addItemList.combination_item_code 多个加项逗号分隔） */
  combinationItemCodes: string;
  /** 订单总金额（元） */
  orderAmount: number;
}

/**
 * 生成扫码支付二维码响应
 */
export type PhysicalExamQrcodeCreateResponse = CommonActionResult<string>;

/**
 * 加项组合项目支付信息
 */
export interface InputAddItemCombinationInfo {
  /** 体检组合项目代码 */
  combination_item_code?: string | null;
  /** 体检组合项目价格 */
  combination_item_price?: number | null;
  /** 折扣比例 */
  discount_rate?: number | null;
}

/**
 * 体检支付结果查询入参（Native 查询支付是否成功）
 */
export interface InputOrderPaymentInfo {
  /** 体检ID */
  physical_exam_id: number;
  /** 患者ID */
  patient_id: number;
  /** 体检组合项目信息 */
  listAddItemCombination?: InputAddItemCombinationInfo[] | null;
  /** 支付方式（12-微信 13-挂账公司） */
  pay_type: number;
  /** 挂账公司ID（挂账公司传对应的ID，其他传0） */
  company_id: number;
  /** 订单总金额 */
  orderAmount: number;
}

/**
 * 体检支付结果查询响应
 */
export type PhysicalExamIsPaymentResponse = CommonActionResult<string>;

/**
 * 体检用餐登记列表入参
 */
export interface InputPhysicalExamDiningLog {
  /** 用餐类型（1-全部 2-已用餐 3-未用餐） */
  dining_type: number;
}

/**
 * 体检用餐登记列表项
 */
export interface PoPhysicalExamDiningLog {
  /** 客户姓名 */
  customer_name?: string | null;
  /** 体检ID */
  physical_exam_id?: number | null;
  /** 体检编号 */
  exam_no?: string | null;
  /** 体检状态 */
  physical_exam_status?: number | null;
  /** 体检状态名称 */
  physical_exam_status_name?: string | null;
  /** 是否用餐（1-已用餐 0-未用餐） */
  is_dining?: number | null;
}

/**
 * 体检用餐登记列表出参
 */
export interface OutputPhysicalExamDiningLog {
  /** 今日体检人数 */
  today_exam_count?: number | null;
  /** 已用餐人数 */
  dined_count?: number | null;
  /** 未用餐人数 */
  not_dined_count?: number | null;
  /** 用餐登记列表 */
  DiningList?: PoPhysicalExamDiningLog[] | null;
}

/**
 * 体检用餐登记列表响应
 */
export type PhysicalExamDiningLogResponse = CommonActionResult<OutputPhysicalExamDiningLog>;

/**
 * 体检用餐登记入参
 */
export interface InputTijianDiningLog {
  /** 体检ID */
  physical_exam_id: number;
  /** 体检编号 */
  exam_no: string;
  /** 客户姓名 */
  customer_name: string;
}

/**
 * 体检用餐登记出参
 */
export interface OutputTijianDiningLog {
  // 空对象，无属性
}

/**
 * 体检用餐登记响应
 */
export type TijianDiningLogResponse = CommonActionResult<OutputTijianDiningLog>;

/**
 * 获取操作员备注信息入参
 */
export interface InputOperatorRemarkInfo {
  /** 操作员ID */
  operator_id: string;
}

/**
 * 获取操作员备注信息出参
 */
export interface OutputOperatorRemarkInfo {
  /** 备注内容 */
  remark_content?: string | null;
}

/**
 * 获取操作员备注信息响应
 */
export type OperatorRemarkInfoResponse = CommonActionResult<OutputOperatorRemarkInfo>;

/**
 * 保存操作员备注信息入参
 */
export interface InputOperatorRemarkInfoAdd {
  /** 操作员ID */
  operator_id: string;
  /** 操作员姓名 */
  operator_name: string;
  /** 备注内容 */
  remark_content: string;
}

/**
 * 保存操作员备注信息出参
 */
export interface OutputOperatorRemarkInfoAdd {
  // 空对象，无属性
}

/**
 * 保存操作员备注信息响应
 */
export type OperatorRemarkInfoAddResponse = CommonActionResult<OutputOperatorRemarkInfoAdd>;

/**
 * 获取登录验证码（图片）入参
 */
export interface InputVerificationCodeImage {
  /** 应用ID */
  app_id: string;
}

/**
 * 获取登录验证码（图片）出参
 */
export interface OutputVerificationCodeImage {
  /** 验证码标识键 */
  verification_code_key: string;
  /** 验证码图片（Base64 或图片地址） */
  verification_code_image: string;
}

/**
 * 获取登录验证码（图片）响应
 */
export type VerificationCodeImageResponse = CommonActionResult<OutputVerificationCodeImage>;

/**
 * 登录（账号密码登录-图片验证码）入参
 */
export interface InputLoginByPassword {
  /** 登录账号 */
  username: string;
  /** 登录密码 */
  password: string;
  /** 图片验证码内容 */
  verification_code: string;
  /** 图片验证码 key */
  verification_code_key: string;
}

/**
 * 登录（账号密码登录-图片验证码）出参
 */
export interface OutputLoginByPassword {
  /** 用户ID */
  user_id: string;
  /** 用户姓名 */
  user_name: string;
  /** 角色集合（逗号分隔） */
  roles: string;
  /** 访问令牌 */
  access_token: string;
  /** 刷新令牌 */
  refresh_token: string;
}

/**
 * 登录（账号密码登录-图片验证码）响应
 */
export type LoginByPasswordResponse = CommonActionResult<OutputLoginByPassword>;

/**
 * 获取登录验证码（手机号）入参
 */
export interface InputVerificationCodePhone {
  /** 应用ID */
  app_id: string;
  /** 手机号 */
  phone: string;
}

/**
 * 获取登录验证码（手机号）出参
 */
export interface OutputVerificationCodePhone {
  /** 验证码标识键 */
  verification_code_key: string;
}

/**
 * 获取登录验证码（手机号）响应
 */
export type VerificationCodePhoneResponse = CommonActionResult<OutputVerificationCodePhone>;

/**
 * 菜单元数据
 */
export interface MenuMeta {
  /** 激活图标 */
  activeIcon?: string | null;
  /** 激活路径 */
  activePath?: string | null;
  /** 是否固定标签页 */
  affixTab: boolean;
  /** 固定标签页顺序 */
  affixTabOrder: number;
  /** 图标 */
  icon?: string | null;
  /** 排序 */
  order: number;
  /** 标题 */
  title: string;
  /** 是否保持活跃 */
  keepAlive: boolean;
  /** 是否在菜单中隐藏子项 */
  hideChildrenInMenu: boolean;
  /** 是否在菜单中隐藏 */
  hideInMenu: boolean;
  /** 是否在面包屑中隐藏 */
  hideInBreadcrumb: boolean;
  /** 是否在标签页中隐藏 */
  hideInTab: boolean;
  /** 徽章 */
  badge?: string | null;
  /** 徽章类型 */
  badgeType?: string | null;
  /** 徽章变体 */
  badgeVariants?: string | null;
  /** iframe 源 */
  iframeSrc?: string | null;
  /** 链接 */
  link?: string | null;
  /** 最大打开标签页数 */
  maxNumOfOpenTab: number;
  /** 是否不使用基础布局 */
  noBasicLayout: boolean;
  /** 是否在新窗口打开 */
  openInNewWindow: boolean;
  /** 查询参数 */
  query?: string | null;
}

/**
 * 菜单项
 */
export interface MenuItem {
  /** 菜单ID */
  id: string;
  /** 父菜单ID */
  pid?: string | null;
  /** 权限代码 */
  authCode?: string | null;
  /** 元数据 */
  meta: MenuMeta;
  /** 状态 */
  status: number;
  /** 类型 */
  type: string;
  /** 名称 */
  name: string;
  /** 路径 */
  path: string;
  /** 重定向路径 */
  redirect?: string | null;
  /** 组件 */
  component?: string | null;
  /** 子菜单 */
  children?: MenuItem[];
}

/**
 * 获取用户菜单权限入参
 */
export interface InputUserOwnedMenus {
  /** 应用ID */
  app_id: string;
}

/**
 * 获取用户菜单权限出参
 */
export interface OutputUserOwnedMenus {
  /** 菜单列表 */
  menus: MenuItem[];
}

/**
 * 获取用户菜单权限响应
 */
export type UserOwnedMenusResponse = CommonActionResult<OutputUserOwnedMenus>;

/**
 * B1服务点信息
 */
export interface B1ServiceInfo {
  /** 科室代码 */
  dept_code?: string | null;
  /** 科室名称 */
  dept_name?: string | null;
  /** 医生名称 */
  doctor_name?: string | null;
  /** 已完成客户数 */
  completed_customer_count?: number | null;
  /** 已检部位数 */
  exam_part_count?: number | null;
  /** 总时长（分钟） */
  total_duration_minutes?: number | null;
  /** 平均时长（分钟） */
  average_duration_minutes?: number | null;
}

/**
 * B1服务看板入参
 */
export interface InputB1ServiceBoard {
  // 空对象，无需参数
}

/**
 * B1服务看板出参
 */
export interface OutputB1ServiceBoard {
  /** 总客户数 */
  total_customer_count?: number | null;
  /** 等待体检客户数 */
  waiting_exam_count?: number | null;
  /** 体检中客户数 */
  in_exam_count?: number | null;
  /** B1服务点信息列表 */
  b1_service_info_list?: B1ServiceInfo[] | null;
}

/**
 * B1服务看板响应
 */
export type B1ServiceBoardResponse = CommonActionResult<OutputB1ServiceBoard>;

/**
 * 北3服务点信息
 */
export interface North3ServiceInfo {
  /** 家医名称 */
  family_doctor_name?: string | null;
  /** 面诊率 */
  face_to_face_rate: number;
  /** 分配客户数 */
  assigned_customer_count: number;
  /** 面诊数 */
  face_to_face_count: number;
}

/**
 * 北3服务看板入参
 */
export interface InputNorth3ServiceBoard {
  // 空对象，无需参数
}

/**
 * 北3服务看板出参
 */
export interface OutputNorth3ServiceBoard {
  /** 今日家医数 */
  today_family_doctor_count: number;
  /** 分配客户数 */
  assigned_customer_count: number;
  /** 面诊数 */
  face_to_face_count: number;
  /** 北3服务点信息列表 */
  north3_service_list: North3ServiceInfo[];
}

/**
 * 北3服务看板响应
 */
export type North3ServiceBoardResponse = CommonActionResult<OutputNorth3ServiceBoard>;

/**
 * 报告寄送登记二维码入参
 */
export interface InputReportSendQRcode {
  /** 预约ID */
  appointment_id: string;
}

/**
 * 报告寄送登记二维码出参
 */
export interface OutputReportSendQRcode {
  /** 二维码地址（Base64） */
  qrcode_url: string;
}

/**
 * 报告寄送登记二维码响应
 */
export type ReportSendQRcodeResponse = CommonActionResult<OutputReportSendQRcode>;

/**
 * 查看报告寄送地址入参
 */
export interface InputReportSendInfo {
  /** 预约ID */
  physical_exam_id: number;
}

/**
 * 查看报告寄送地址出参
 */
export interface OutputReportSendInfo {
  /** 收件人 */
  address_contact?: string | null;
  /** 联系电话 */
  address_mobile?: string | null;
  /** 省份名称 */
  province_name?: string | null;
  /** 城市名称 */
  city_name?: string | null;
  /** 区县名称 */
  country_name?: string | null;
  /** 寄送地址 */
  address_content?: string | null;
  /** 备注 */
  address_remark?: string | null;
}

/**
 * 查看报告寄送地址响应
 */
export type ReportSendInfoResponse = CommonActionResult<OutputReportSendInfo>;

/**
 * 保存体检客户报告邮寄地址入参
 */
export interface InputExpressContact {
  /** 体检ID */
  physical_exam_id: number;
  /** 收件人 */
  address_contact: string;
  /** 联系电话 */
  address_mobile: string;
  /** 省份名称（例如：上海市） */
  province_name: string;
  /** 城市名称（例如：上海市） */
  city_name: string;
  /** 区县名称（例如：浦东新区） */
  country_name: string;
  /** 寄送详细地址 */
  address_content: string;
  /** 备注 */
  address_remark: string;
}

/**
 * 保存体检客户报告邮寄地址出参
 */
export interface OutputExpressContact {
  /** 是否成功（1-成功 0-失败） */
  is_success?: number | null;
}

/**
 * 保存体检客户报告邮寄地址响应
 */
export type ReportSendAddressSaveResponse = CommonActionResult<OutputExpressContact>;

/**
 * 获取客户体检同意书PDF（导检单、知情同意书、加项单）入参
 */
export interface InputTijianPdfFileInfo {
  /** 体检ID */
  exam_id: number;
}

/**
 * 获取客户体检同意书PDF（导检单、知情同意书、加项单）出参
 */
export interface OutputTijianPdfFileInfo {
  /** pdf类型（1-导检单 2-知情同意书 3-加项单） */
  pdf_type?: number | null;
  /** pdf类型名称 */
  pdf_type_name?: string | null;
  /** PDF文件组合代码 */
  combination_code?: number | null;
  /** PDF文件名称 */
  pdf_name?: string | null;
  /** 原始PDF文件地址 */
  pdf_url?: string | null;
  /** 签名图片地址 */
  sign_pic_url?: string | null;
  /** 签名后的PDF文件地址 */
  sign_pdf_url?: string | null;
  /** 是否签名标识（1-已签名 0-未签名） */
  is_sign?: number | null;
  /** 签名标识名称 */
  is_sign_name?: string | null;
  /** 是否支付（1-未支付 2-已支付） */
  is_pay?: number | null;
  /** 是否支付名称 */
  is_pay_name?: string | null;
  /** pdf序号 */
  pdf_sort: number | null;
}

/**
 * 获取客户体检同意书PDF（导检单、知情同意书、加项单）响应
 */
export type TijianPdfFileGetResponse = CommonActionResult<OutputTijianPdfFileInfo[]>;

/**
 * 通过身份证号获取体检选项项目列表入参
 */
export interface InputExamOptionalItemList {
  /** 体检ID */
  physical_exam_id: number;
}

/**
 * 自助机体检套餐信息
 */
export interface PoPhysicalExamPackageInfo {
  /** 体检ID */
  physical_exam_id?: number | null;
  /** 是否可选套餐（1-是 0-否） */
  is_optional_package?: number | null;
  /** 是否可选套餐名称 */
  is_optional_package_name?: string | null;
  /** 套餐代码 */
  package_code?: number | null;
  /** 套餐名称 */
  package_name?: string | null;
  /** 登记时间 */
  registration_time?: string | null;
}

/**
 * 自助机体检可选项目列表出参
 */
export interface OutputPhysicalExamItemInfo {
  /** 组合名称 */
  combination_name?: string | null;
  /** 组合代码 */
  combination_code?: number | null;
  /** 套餐代码 */
  package_code?: number | null;
}

/**
 * 自助机体检项目列表出参
 */
export interface OutputOptionalItemInfoList {
  /** 套餐信息 */
  packageInfo?: PoPhysicalExamPackageInfo | null;
  /** 可选套餐项目列表 */
  listOptionalItem?: OutputPhysicalExamItemInfo[] | null;
}

/**
 * 通过身份证号获取体检选项项目列表响应
 */
export type OptionalItemInfoListResponse = CommonActionResult<OutputOptionalItemInfoList>;

/**
 * 移除弃选体检套餐选项入参
 */
export interface InputOptionalPackageRemove {
  /** 体检ID */
  physical_exam_id: number;
  /** 组合代码（多个项目以逗号分割，例如：123,456） */
  combination_code_ids: string;
}

/**
 * 移除弃选体检套餐选项出参
 */
export interface OutputOptionalPackageRemove {
  /** 是否成功（1-成功 0-失败） */
  is_success?: number | null;
}

/**
 * 移除弃选体检套餐选项响应
 */
export type OptionalPackageRemoveResponse = CommonActionResult<OutputOptionalPackageRemove>;

/**
 * 获取体检客户可选项操作记录信息入参
 */
export interface InputTijianOptionItemRecordList {
  /** 体检ID */
  exam_id?: number;
}

/**
 * 体检可选项记录列表出参
 */
export interface OutputTijianOptionItemRecordList {
  /** 体检ID */
  exam_id?: number;
  /** 组合代码 */
  combination_code?: string | null;
  /** 组合名称 */
  combination_name?: string | null;
  /** 套餐代码 */
  package_code?: string | null;
  /** 是否弃选 默认0（1-弃选 0-选中） */
  is_abandon?: number;
  /** 是否弃选名称 */
  is_abandon_name?: string | null;
}

/**
 * 获取体检客户可选项操作记录信息响应
 */
export type TijianOptionItemRecordListResponse = CommonActionResult<OutputTijianOptionItemRecordList[]>;

/**
 * 是否太平VIP认证入参
 */
export interface InputPhysicalExamTaipingInfo {
  /** 体检ID */
  physical_exam_id: number;
}

/**
 * 自助机太平vip客户信息出参
 */
export interface OutputSelfServiceTaipingInfo {
  /** 是否vip：0-非vip，1-vip */
  is_vip?: number;
}

/**
 * 获取太平VIP客户认证结果响应
 */
export type IsTaipingVipResponse = CommonActionResult<OutputSelfServiceTaipingInfo>;

/**
 * 体检加项自定义结算申请状态编辑入参
 */
export interface InputCustomSettlementApplyApprove {
  /** 体检ID */
  physical_exam_id?: number;
  /** 体检加项组合ID（多个逗号分隔，例如：123,456） */
  add_item_id?: string;
}

/**
 * 体检加项自定义结算申请-加项组合项
 */
export interface OutputCustomSettlementApplyApproveItem {
  combination_item_code?: string | null;
  combination_item_price?: number | null;
  discount_rate?: number | null;
}

/**
 * 体检加项自定义结算申请状态编辑出参
 */
export interface OutputCustomSettlementApplyApprove {
  /** 是否成功（1-成功 0-失败） */
  is_success?: number;
  /** 申请状态（1-审核中 2-取消申请 3-审核通过 4-审核不通过） */
  apply_status?: number;
  /** 申请状态名称 */
  apply_status_name?: string | null;
  /** 最终结算金额 */
  final_settlement_price?: number | null;
  /** 申请理由 */
  apply_reason?: string;
  /** 折扣 */
  discount_ratio?: number | null;
  /** 加项组合列表 */
  listAddItemCombination?: OutputCustomSettlementApplyApproveItem[] | null;
}

/**
 * 获取体检加项自定义结算申请审批状态响应
 */
export type CustomSettlementApproveStatusGetResponse = CommonActionResult<OutputCustomSettlementApplyApprove>;

/**
 * 加项项目明细信息
 */
export interface InputAddItemCustomSettlementDetail {
  /** 加项项目代码 */
  combination_item_code: string;
  /** 加项项目名称 */
  combination_item_name: string;
  /** 原价金额 */
  original_price: number;
  /** 结算金额 */
  settlement_price: number;
  /** 折扣率 */
  discount_ratio?: number | null;
}

/**
 * 体检加项自定义结算申请入参
 */
export interface InputCustomSettlementApply {
  /** 体检ID */
  physical_exam_id?: number;
  /** 加项项目明细信息列表 */
  listAddItemDetail?: InputAddItemCustomSettlementDetail[];
  /** 原结算价 */
  original_settlement_price?: number;
  /** 结算方式（1-按比例折扣  2-自定义结算价） */
  settlement_type?: number;
  /** 折扣比例（如'85'代表8.5折） */
  discount_ratio?: number;
  /** 最终结算价 */
  final_settlement_price?: number;
  /** 申请理由 */
  apply_reason?: string;
  /** 申请人 */
  apply_user: string;
}

/**
 * 体检加项自定义结算申请出参
 */
export interface OutputCustomSettlementApply {
  /** 申请唯一编码 */
  guid?: string | null;
}

/**
 * 体检加项自定义结算申请响应
 */
export type CustomSettlementApplyResponse = CommonActionResult<OutputCustomSettlementApply>;

/**
 * 体检加项自定义结算申请取消入参
 */
export interface InputCustomSettlementApplyCancel {
  /** 体检ID */
  physical_exam_id: number;
  /** 体检加项组合ID（多个逗号分隔，例如：123,456） */
  add_item_id: string;
  /** 申请人 */
  cancel_user: string;
}

/**
 * 体检加项自定义结算申请取消出参
 */
export interface OutputCustomSettlementApplyCancel {
  /** 是否成功（1-成功 0-失败） */
  is_success?: number;
}

/**
 * 体检加项自定义结算申请取消响应
 */
export type CustomSettlementApplyCancelResponse = CommonActionResult<OutputCustomSettlementApplyCancel>;
