/**
 * 设备列表查询请求
 */
export interface EquipmentListReq {
    /** 最低价格 */
    minPrice?: number
    /** 最高价格 */
    maxPrice?: number
    /** 设备名称 */
    equipmentName?: string
    /** 设备类型 */
    equipmentType?: string
    /** 设备状态 */
    equipmentStatus?: string
    /** 设备序列号 */
    equipmentSn?: string
    /** 资产编号 */
    assetCode?: string
    /** 品牌 */
    brand?: string
    /** 位置状态 */
    locationStatus?: string
    /** 健康状态 */
    healthStatus?: string
    /** 负责人 */
    responsiblePerson?: string
    /** 使用状态 */
    useStatus?: string
    /** 项目ID */
    projectId?: string
    /** 使用人ID */
    userId?: string
    /** 设备型号 */
    equipmentModel?: string
    /** 配置规格/参数 */
    specification?: string
    /** 设备当前物理位置 */
    physicalLocation?: string
    /** 供应商名称 */
    supplierName?: string
    /** 采购订单号 */
    purchaseOrder?: string
    /** 维护人员 */
    maintenancePerson?: string
    /** 次户号 */
    accountNumber?: string
    /** 数量 */
    quantity?: number
    /** 单价 */
    unitPrice?: number
    /** 总价 */
    totalPrice?: number
    /** 盘点依据 */
    inventoryBasis?: string
    /** 动态记录 */
    dynamicRecord?: string
    /** 资产备注 */
    assetRemark?: string
    /** 采购时间开始 */
    purchaseTimeStart?: string
    /** 采购时间结束 */
    purchaseTimeEnd?: string
    /** 入库时间开始 */
    inStockTimeStart?: string
    /** 入库时间结束 */
    inStockTimeEnd?: string
    /** 启用时间开始 */
    activationTimeStart?: string
    /** 启用时间结束 */
    activationTimeEnd?: string
    /** 当前页码 */
    pageNum?: number
    /** 每页大小 */
    pageSize?: number
    /** 排序字段 */
    orderBy?: string
    /** 排序方向 */
    orderDirection?: string
    /** 页码 */
    page?: number
    /** 库存条码 */
    inventoryBarcode?: string
}

/**
 * 分页响应格式
 */
export interface PageResult<T> {
    code: number
    msg: string
    rows: T[]
    total: number
}

/**
 * 设备信息响应
 */
export interface EquipmentResp {
    /** 设备ID */
    equipmentId: string
    /** 资产编号 */
    assetCode?: string
    /** 设备名称 */
    equipmentName?: string
    /** 设备类型 */
    equipmentType?: string
    /** 设备类型标签 */
    equipmentTypeLabel?: string
    /** 设备型号 */
    equipmentModel?: string
    /** 设备序列号 */
    equipmentSn?: string
    /** 品牌 */
    brand?: string
    /** 配置规格/参数 */
    specification?: string
    /** 设备状态 */
    equipmentStatus?: string
    /** 设备状态标签 */
    equipmentStatusLabel?: string
    /** 使用状态 */
    useStatus?: string
    /** 位置状态 */
    locationStatus?: string
    /** 位置状态标签 */
    locationStatusLabel?: string
    /** 设备当前物理位置 */
    physicalLocation?: string
    /** 负责人 */
    responsiblePerson?: string
    /** 健康状态 */
    healthStatus?: string
    /** 健康状态标签 */
    healthStatusLabel?: string
    /** 采购时间 */
    purchaseTime?: string
    /** 入库时间 */
    inStockTime?: string
    /** 启用时间 */
    activationTime?: string
    /** 预期报废时间 */
    expectedScrapTime?: string
    /** 实际报废时间 */
    actualScrapTime?: string
    /** 状态变更时间 */
    statusChangeTime?: string
    /** 采购订单号 */
    purchaseOrder?: string
    /** 供应商名称 */
    supplierName?: string
    /** 采购价格 */
    purchasePrice?: number
    /** 当前净值 */
    currentNetValue?: number
    /** 折旧方法 */
    depreciationMethod?: string
    /** 折旧年限 */
    depreciationYears?: number
    /** 残值 */
    salvageValue?: number
    /** 保修到期日期 */
    warrantyExpireDate?: string
    /** 最后维护日期 */
    lastMaintenanceDate?: string
    /** 下次维护日期 */
    nextMaintenanceDate?: string
    /** 维护人员 */
    maintenancePerson?: string
    /** 库存条码 */
    inventoryBarcode?: string
    /** 资产备注 */
    assetRemark?: string
    /** 项目ID */
    projectId?: string
    /** 项目名称 */
    projectName?: string
    /** 使用人ID */
    userId?: string
    /** 使用人姓名 */
    name?: string
    /** 创建时间 */
    createTime?: string
    /** 更新时间 */
    updateTime?: string
    /** 次户号 */
    accountNumber?: string
    /** 数量 */
    quantity?: number
    /** 单价 */
    unitPrice?: number
    /** 总价 */
    totalPrice?: number
    /** 盘点依据 */
    inventoryBasis?: string
    /** 动态记录 */
    dynamicRecord?: string
    /** 采购状态 */
    procurementStatus?: string
    /** 审批状态 */
    approvalStatus?: string
    /** 收货状态 */
    receiptStatus?: string
    /** 支付状态 */
    paymentStatus?: string
}

/**
 * 设备请求
 */
export interface EquipmentReq {
    /** 设备名称 */
    equipmentName: string
    /** 设备型号 */
    equipmentModel: string
    /** 设备类型 */
    equipmentType: string
    /** 设备状态 */
    equipmentStatus: string
    /** 使用状态 */
    useStatus: string
    /** 设备序列号 */
    equipmentSn: string
    /** 资产编号 */
    assetCode?: string
    /** 品牌 */
    brand?: string
    /** 配置规格/参数 */
    specification?: string
    /** 位置状态 */
    locationStatus?: string
    /** 设备当前物理位置 */
    physicalLocation?: string
    /** 负责人 */
    responsiblePerson?: string
    /** 健康状态 */
    healthStatus?: string
    /** 采购时间 */
    purchaseTime?: string
    /** 入库时间 */
    inStockTime?: string
    /** 启用时间 */
    activationTime?: string
    /** 预计报废时间 */
    expectedScrapTime?: string
    /** 实际报废时间 */
    actualScrapTime?: string
    /** 采购订单 */
    purchaseOrder?: string
    /** 供应商名称 */
    supplierName?: string
    /** 采购价格 */
    purchasePrice?: number
    /** 当前净值 */
    currentNetValue?: number
    /** 折旧方法 */
    depreciationMethod?: string
    /** 折旧年限 */
    depreciationYears?: number
    /** 残值 */
    salvageValue?: number
    /** 保修截止日期 */
    warrantyExpireDate?: string
    /** 上次维护日期 */
    lastMaintenanceDate?: string
    /** 下次维护日期 */
    nextMaintenanceDate?: string
    /** 维护人员 */
    maintenancePerson?: string
    /** 库存条码 */
    inventoryBarcode?: string
    /** 资产备注 */
    assetRemark?: string
    /** 次户号 */
    accountNumber?: string
    /** 数量 */
    quantity?: number
    /** 单价 */
    unitPrice?: number
    /** 总价 */
    totalPrice?: number
    /** 盘点依据 */
    inventoryBasis?: string
    /** 动态记录 */
    dynamicRecord?: string
}

/**
 * 设备审批状态枚举
 */
export enum ApprovalStatus {
  PENDING = 'PENDING',
  APPROVED = 'APPROVED',
  REJECTED = 'REJECTED'
}

/**
 * 设备审批业务类型枚举
 */
export enum BusinessType {
  PROCUREMENT = 'PROCUREMENT',
  BORROW = 'BORROW',
  RETURN = 'RETURN'
}

/**
 * 设备采购状态枚举
 */
export enum ProcurementStatus {
  NOT_STARTED = 'NOT_STARTED',
  PENDING_APPROVAL = 'PENDING_APPROVAL',
  APPROVED = 'APPROVED',
  REJECTED = 'REJECTED',
  COMPLETED = 'COMPLETED'
}

/**
 * 设备审批列表查询请求
 */
export interface EquipmentApprovalListReq {
  /** 设备名称 */
  equipmentName?: string
  /** 申请人 */
  applicantName?: string
  /** 审批状态 */
  approvalStatus?: ApprovalStatus
  /** 业务类型 */
  businessType?: BusinessType
  /** 申请时间开始 */
  applyTimeStart?: string
  /** 申请时间结束 */
  applyTimeEnd?: string
  /** 审批时间开始 */
  approvalTimeStart?: string
  /** 审批时间结束 */
  approvalTimeEnd?: string
  /** 当前页码 */
  page?: number
  /** 页码（后端可能期望的字段名） */
  pageNum?: number
  /** 每页大小 */
  pageSize?: number
  /** 排序字段 */
  orderBy?: string
  /** 排序方向 */
  orderDirection?: string
}

/**
 * 设备审批请求
 */
export interface EquipmentApprovalReq {
  /** 审批意见 */
  approvalComment?: string
  /** 审批结果 */
  approvalResult: 'APPROVED' | 'REJECTED'
  /** 审批人 */
  approverName?: string
  /** 审批人ID */
  approverId?: string
}

/**
 * 设备审批响应
 */
export interface EquipmentApprovalResp {
  /** 审批ID */
  approvalId: string
  /** 设备ID */
  equipmentId: string
  /** 设备名称 */
  equipmentName: string
  /** 设备类型 */
  equipmentType: string
  /** 设备型号 */
  equipmentModel: string
  /** 品牌 */
  brand?: string
  /** 供应商名称 */
  supplierName?: string
  /** 采购价格 */
  purchasePrice?: number
  /** 总价 */
  totalPrice?: number
  /** 数量 */
  quantity?: number
  /** 申请人 */
  applicantName: string
  /** 申请人ID */
  applicantId: string
  /** 申请时间 */
  applyTime: string
  /** 申请原因 */
  applyReason?: string
  /** 业务类型 */
  businessType: BusinessType
  /** 审批状态 */
  approvalStatus: ApprovalStatus
  /** 审批人 */
  approverName?: string
  /** 审批人ID */
  approverId?: string
  /** 审批时间 */
  approvalTime?: string
  /** 审批意见 */
  approvalComment?: string
  /** 创建时间 */
  createTime: string
  /** 更新时间 */
  updateTime: string
}

/**
 * 收货请求参数（扩展版，包含完整设备信息）
 */
export interface ReceiptRequest {
    // 收货特有信息
    receiptTime: string
    receiptPerson: string
    receiptQuantity: number
    receiptRemark?: string
    appearanceCheck: string
    functionTest: string
    packageIntegrity: string
    accessoryIntegrity: string
    checkResult: 'PASS' | 'FAIL' | 'CONDITIONAL'
    checkRemark?: string
    storageLocation: string
    storageManager: string
    
    // 设备基本信息（从采购数据继承）
    equipmentName?: string
    equipmentModel?: string
    equipmentType?: string
    equipmentSn?: string
    brand?: string
    specification?: string
    assetCode?: string
    
    // 采购信息（从采购数据继承）
    purchaseOrder?: string
    supplierName?: string
    purchasePrice?: number
    purchaseTime?: string
    quantity?: number
    unitPrice?: number
    totalPrice?: number
    
    // 入库信息
    inStockTime?: string
    physicalLocation?: string
    locationStatus?: string
    responsiblePerson?: string
    inventoryBarcode?: string
    
    // 状态信息
    equipmentStatus?: string
    useStatus?: string
    healthStatus?: string
    receiptStatus?: string
    paymentStatus?: string
    
    // 其他管理信息
    depreciationMethod?: string
    depreciationYears?: number
    salvageValue?: number
    currentNetValue?: number
    
    // 系统字段
    createTime?: string
    updateTime?: string
}

/**
 * 收货详情响应
 */
export interface ReceiptDetail {
    /** 设备ID */
    equipmentId: string
    /** 设备名称 */
    equipmentName: string
    /** 设备类型 */
    equipmentType: string
    /** 设备型号 */
    equipmentModel: string
    /** 品牌 */
    brand: string
    /** 供应商 */
    supplierName: string
    /** 采购订单 */
    purchaseOrder: string
    /** 收货状态 */
    receiptStatus: string
    /** 收货时间 */
    receiptTime: string
    /** 收货人 */
    receiptPerson: string
    /** 收货数量 */
    receiptQuantity: number
    /** 收货备注 */
    receiptRemark?: string
    /** 外观检查 */
    appearanceCheck: string
    /** 功能测试 */
    functionTest: string
    /** 包装完整性 */
    packageIntegrity: string
    /** 配件完整性 */
    accessoryIntegrity: string
    /** 检查结果 */
    checkResult: string
    /** 检查备注 */
    checkRemark?: string
    /** 入库状态 */
    storageStatus: string
    /** 入库时间 */
    storageTime: string
    /** 入库位置 */
    storageLocation: string
    /** 库管员 */
    storageManager: string
}

/**
 * 支付请求参数
 */
export interface PaymentRequest {
    /** 支付方式 */
    paymentMethod: string
    /** 支付金额 */
    paymentAmount: number
    /** 支付时间 */
    paymentTime: string
    /** 支付人 */
    paymentPerson: string
    /** 支付备注 */
    paymentRemark?: string
    /** 发票类型 */
    invoiceType: string
    /** 发票号码 */
    invoiceNumber: string
    /** 开票日期 */
    invoiceDate: string
    /** 发票金额 */
    invoiceAmount: number
    /** 税率 */
    taxRate: number
    /** 税额 */
    taxAmount: number
    /** 不含税金额 */
    amountWithoutTax: number
    /** 合同编号 */
    contractNumber: string
    /** 合同金额 */
    contractAmount: number
    /** 签订日期 */
    contractDate: string
    /** 付款条件 */
    paymentTerms: string
    /** 付款期限 */
    paymentDeadline: string
}

/**
 * 支付详情响应
 */
export interface PaymentDetail {
    /** 设备ID */
    equipmentId: string
    /** 设备名称 */
    equipmentName: string
    /** 设备类型 */
    equipmentType: string
    /** 设备型号 */
    equipmentModel: string
    /** 品牌 */
    brand: string
    /** 供应商 */
    supplierName: string
    /** 采购订单 */
    purchaseOrder: string
    /** 采购价格 */
    purchasePrice: number
    /** 采购数量 */
    quantity: number
    /** 总金额 */
    totalPrice: number
    /** 采购日期 */
    purchaseTime: string
    /** 支付状态 */
    paymentStatus: string
    /** 支付方式 */
    paymentMethod: string
    /** 支付金额 */
    paymentAmount: number
    /** 支付时间 */
    paymentTime: string
    /** 支付人 */
    paymentPerson: string
    /** 支付备注 */
    paymentRemark?: string
    /** 发票状态 */
    invoiceStatus: string
    /** 发票类型 */
    invoiceType: string
    /** 发票号码 */
    invoiceNumber: string
    /** 开票日期 */
    invoiceDate: string
    /** 发票金额 */
    invoiceAmount: number
    /** 税率 */
    taxRate: number
    /** 税额 */
    taxAmount: number
    /** 不含税金额 */
    amountWithoutTax: number
    /** 合同编号 */
    contractNumber: string
    /** 合同状态 */
    contractStatus: string
    /** 合同金额 */
    contractAmount: number
    /** 签订日期 */
    contractDate: string
    /** 付款条件 */
    paymentTerms: string
    /** 付款期限 */
    paymentDeadline: string
}
