export interface CabinetDetailDTO {
  /** 柜机ID */
  cabinetId: number
  /** 柜机名称 */
  cabinetName: string
  /** 锁控编号 */
  lockControlNo: number
  /** 格口列表 */
  cells: CellInfoDTO[]
}

/** 租用中的智能柜详情DTO */
export interface RentingCabinetDetailDTO {
  /** 柜机ID */
  cabinetId: number
  /** 柜机名称 */
  cabinetName: string
  /** 锁控编号 */
  lockControlNo: number
  /** 柜格列表 */
  cells: RentingCellEntity[]
}

export interface RentingCellEntity extends CabinetCellEntity {
  /** 订单ID */
  orderId: number;
  /** 订单商品ID */
  orderGoodsId: number;
}

/** 智能柜格口实体类 */
export interface CabinetCellEntity {
  /** 格口唯一ID */
  cellId: number
  /** 关联柜机ID */
  cabinetId: number
  /** 主板ID */
  mainboardId?: number
  /** 格口号 */
  cellNo: number
  /** 针脚序号 */
  pinNo: number
  /** 库存数量 */
  stock: number
  /** 格口价格 */
  cellPrice?: number
  /** 是否已租用：0-未租用，1-已租用 */
  isRented: number
  /** 格口类型（1小格 2中格 3大格 4超大格） */
  cellType: number
  /** 使用状态：1空闲 2已占用 */
  usageStatus: number
  /** 可用状态：1正常 2故障 */
  availableStatus: number
  /** 商品ID */
  goodsId?: number
  /** 密码 */
  password?: string
}

export interface CellInfoDTO {
  /** 格口唯一ID */
  cellId: number
  /** 格口号 */
  cellNo: number
  /** 针脚序号 */
  pinNo: number
  /** 库存数量 */
  stock: number
  /** 密码 */
  password?: string
  /** 商品信息 */
  product?: ProductInfoDTO
  /** 使用状态：1空闲 2已占用 */
  usageStatus: number
  /** 格口类型（1小格 2中格 3大格 4超大格） */
  cellType: number
}

export interface ProductInfoDTO {
  goodsId: number
  goodsName: string
  price: number
  coverImg: string
}

export type CabinetDetailResponse = ApiResponseData<CabinetDetailDTO[]>

/** 可用暂存格口DTO - 用于返回可使用的暂存柜格口列表 */
export interface AvailableStorageCellDTO {
  /** 格口ID */
  cellId: number
  /** 关联柜机ID */
  cabinetId: number
  /** 柜子名称 */
  cabinetName: string
  /** 关联主板ID */
  mainboardId: number
  /** 格口号 */
  cellNo: number
  /** 针脚序号 */
  pinNo: number
  /** 库存数量 */
  stock: number
  /** 格口租用价格 */
  cellPrice: number
  /** 是否已租用 */
  isRented: number
  /** 格口类型 */
  cellType: number
  /** 使用状态 */
  usageStatus: number
  /** 可用状态 */
  availableStatus: number
  /** 是否有密码 */
  hasPassword: boolean
  /** 关联商品ID */
  goodsId: number
  /** 商品名称 */
  goodsName: string
  /** 商品价格 */
  price: number
  /** 封面图URL */
  coverImg: string
}

/** 存入物品分配格口请求参数 */
export interface StoreItemToCellCommand {
  /** 店铺ID */
  shopId: number
  /** 格口类型（1小格 2中格 3大格 4超大格） */
  cellType: number
}

/** 根据密码开启格口请求参数 */
export interface OpenCellByPasswordCommand {
  /** 店铺ID */
  shopId: number
  /** 格口密码 */
  password: string
}

/** 重置格口状态请求参数 */
export interface ResetCellByPasswordCommand {
  /** 店铺ID */
  shopId: number
  /** 格口密码 */
  password: string
}