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

import com.xunhong.erp.turbo.api.biz.dto.enums.DealerTypeEnum;
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 OrderDealer extends Command {

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

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

	/**
	 * 经销商ID
	 */
	@Schema(title = "经销商ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED)
	private Long dealerId;

	/**
	 * 经销商简称
	 */
	@Schema(title = "经销商简称", requiredMode = Schema.RequiredMode.REQUIRED)
	private String shortName;

	/**
	 * 经销商类型：1_市场；2_超市；
	 */
	@Schema(title = "经销商类型：1_市场；2_超市；", requiredMode = Schema.RequiredMode.REQUIRED)
	private DealerTypeEnum dealerType;

	/**
	 * 是否开启分成
	 */
	@Schema(title = "是否开启分成")
	private Boolean enableShare;

	/**
	 * 分成比例
	 */
	@Schema(title = "分成比例")
	private BigDecimal shareRatio;

	/**
	 * 运费是否作为成本
	 */
	@Schema(title = "运费是否作为成本")
	private Boolean freightCostFlag;

	/**
	 * 草帘是否作为成本
	 */
	@Schema(title = "草帘是否作为成本")
	private Boolean strawMatCostFlag;

	/**
	 * 发货单合计金额是否含包装费
	 */
	@Schema(title = "发货单合计金额是否含包装费")
	private Boolean includePackingFlag;

	/**
	 * 发货单合计金额是否含包运费
	 */
	@Schema(title = "发货单合计金额是否含包运费")
	private Boolean includeFreightFlag;

	/**
	 * 是否开启计提税金
	 */
	@Schema(title = "是否开启计提税金")
	private Boolean enableAccrualTax;

	/**
	 * 计提税金比例
	 */
	@Schema(title = "计提税金比例")
	private BigDecimal accrualTaxRatio;

	/**
	 * 是否开启公司返点
	 */
	@Schema(title = "是否开启公司返点")
	private Boolean enableCompanyRebate;

	/**
	 * 公司返点比例
	 */
	@Schema(title = "公司返点比例")
	private BigDecimal companyRebateRatio;

	/**
	 * 是否可调整比例
	 */
	@Schema(title = "是否可调整比例")
	private Boolean shareAdjusted;

	/**
	 * 税费补贴
	 */
	@Schema(title = "税费补贴")
	private BigDecimal taxSubsidy;

	/**
	 * 计提税金
	 */
	@Schema(title = "计提税金")
	private BigDecimal taxProvision;

	/**
	 * 成本差异
	 */
	@Schema(title = "成本差异")
	private BigDecimal costDifference;

	/**
	 * 利润分成
	 */
	@Schema(title = "利润分成")
	private BigDecimal profitSharing;

	/**
	 * 是否开启损耗
	 */
	@Schema(title = "是否开启损耗")
	private Boolean enableLoss;

	/**
	 * 损耗金额
	 */
	@Schema(title = "损耗金额")
	private BigDecimal lossAmount;
}
