package com.xunhong.erp.turbo.api.biz.dto.common;

import com.xunhong.erp.turbo.api.biz.dto.enums.BoxBrandTypeEnum;
import com.xunhong.erp.turbo.api.biz.dto.enums.OrderPackageBoxTypeEnum;
import com.xunhong.erp.turbo.base.dto.Command;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;

/**
 * @author shenyifei
 */
@Data
@Schema(title = "采购订单包装箱信息创建")
@EqualsAndHashCode(callSuper = true)
public class OrderPackage extends Command {

	/**
	 * 记录ID
	 */
	@Schema(title = "记录ID", type = "string")
	private Long orderPackageId;

	/**
	 * 采购订单记录ID
	 */
	@Schema(title = "采购订单记录ID", type = "string")
	private Long orderId;

	/**
	 * 供应商记录ID
	 */
	@Schema(title = "供应商记录ID", type = "string")
	private Long orderSupplierId;

	/**
	 * 箱子品牌ID
	 */
	@Schema(title = "箱子品牌ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED)
	private Long boxBrandId;

	/**
	 * 箱子品牌名称
	 */
	@Schema(title = "箱子品牌名称", requiredMode = Schema.RequiredMode.REQUIRED)
	private String boxBrandName;

	/**
	 * 箱子品牌图片
	 */
	@Schema(title = "箱子品牌图片")
	private String boxBrandImage;

	/**
	 * 箱子品牌类型：1_我方纸箱；2_瓜农纸箱；3_第三方纸箱；4_礼盒；
	 */
	@Schema(title = "箱子品牌类型：1_我方纸箱；2_瓜农纸箱；3_第三方纸箱；4_礼盒；", requiredMode = Schema.RequiredMode.REQUIRED)
	private BoxBrandTypeEnum boxBrandType;

	/**
	 * 箱子规格ID
	 */
	@Schema(title = "箱子规格ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED)
	private Long boxSpecId;

	/**
	 * 箱子规格名称
	 */
	@Schema(title = "箱子规格名称", requiredMode = Schema.RequiredMode.REQUIRED)
	private String boxSpecName;

	/**
	 * 箱子产品ID
	 */
	@Schema(title = "箱子产品ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED)
	private Long boxProductId;

	/**
	 * 箱子产品名称
	 */
	@Schema(title = "箱子产品名称", requiredMode = Schema.RequiredMode.REQUIRED)
	private String boxProductName;

	/**
	 * 单个箱子重量(kg)
	 */
	@Schema(title = "单个箱子重量(kg)", requiredMode = Schema.RequiredMode.REQUIRED)
	private BigDecimal boxProductWeight;

	/**
	 * 箱子数量
	 */
	@Schema(title = "箱子数量", requiredMode = Schema.RequiredMode.REQUIRED)
	private Integer boxCount;

	/**
	 * 成本单价(元/个)
	 */
	@Schema(title = "成本单价(元/个)")
	private BigDecimal boxCostPrice;

	/**
	 * 销售单价(元/个)
	 */
	@Schema(title = "销售单价(元/个)")
	private BigDecimal boxSalePrice;

	/**
	 * 箱子类型:1_本次使用；2_额外运输；3_已使用额外运输；4_车上剩余；5_瓜农纸箱；6_空箱；
	 */
	@Schema(title = "箱子类型:1_本次使用；2_额外运输；3_已使用额外运输；4_车上剩余；5_瓜农纸箱；6_空箱；", requiredMode = Schema.RequiredMode.REQUIRED)
	private OrderPackageBoxTypeEnum boxType;

}
