declare global {
  interface Product {
    id?: number; // 商品ID
    name: string; // 商品名称
    parentId?: string; // 商品分类
    group?: string; // 商品分组
    price: number; // 商品价格
    unit: string; // 计量单位
    image?: string; // 商品图片路径
    quantity: number; // 商品数量
    remark?: string; // 标注
  }

  interface RegisForm {
    id?: number;
    deceasedId?: number;
    name: string; // 逝者姓名
    idNumber: string; // 证件号码
    gender: string; // 性别
    age: number; // 年龄
    buyer: string; // 购买人
    purchaseDate: string; // 购买日期 (格式为 YYYY-MM-DD)
    handler: string; // 经办人 (数据库字段为 handler，不是 handler)
    salesAmount: number; // 销售金额
    guide: string; // 引导员
    familyName: string;
    familyPhone: string;
    services?: ServiceItemType[];
    retailState?: number;
    province?: string; // 所在省
    city?: string; // 所在市
    area?: string; // 所在区域
    address?: string; // 详细地址
    serviceItems: ServiceItemType[] | string; // 服务项目列表 (数据库字段为 service_items)
    type: number;
    retailId?: number;
    deceasedName?: string;
  }

  type RegistrationType =
    | "服务登记"
    | "零售登记"
    | "修改登记"
    | "零售结账"
    | "服务修改";

  interface PaymentForm {
    checkoutDate: string; // 结账日期
    handler: string; // 经办人
    settlementDate: string; // 结算日期
    cashAmount: number; // 现金金额
    unionPayAmount: number; // 银联支付金额
    cardAmount: number; // 刷卡金额
    publicTransferAmount: number; // 对公转账金额
    workshopPayment: NumberConstructor; // 车间支付
  }

  interface ServiceItemType {
    name: string; // 服务项目名称
    quantity: number; // 数量
    unit: string; // 单位
    price: number; // 售价
    remark: string; // 备注
    category: number; // 关联的分类信息
    createDate?: string; // 创建时间
    updateDate?: string; // 更新时间
  }

  export interface DeceasedRetail {
    /** 逝者ID */
    deceased: number;

    /** 购买人 */
    buyer: string;

    /** 购买日期（格式化为 YYYY-MM-DD HH:mm:ss） */
    purchaseDate: string;

    /** 经办人 */
    handler: string;

    /** 销售金额（精确到小数点后两位） */
    salesAmount: number;

    /** 引导员 */
    guide: string;

    /** 服务项目列表 */
    serviceItems: string[];

    /** 结账状态（0：未结账，1：已结账） */
    retailState: number;
  }

  interface guideOption {
    value: number;
    label: string;
  }
}

export {};
