package com.prolog.rdc.tms.model.entity;

import com.prolog.framework.core.annotation.Column;
import com.prolog.framework.core.annotation.Id;
import com.prolog.framework.core.annotation.Table;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 业务规则策略条件表
 *
 * @author zhangsj
 * @since 2022-07-16 09:32:12
 */
@Data
@Table("tms_strategy_business_rule_cnt")
public class TmsStrategyBusinessCntModel implements Serializable {
    private static final long serialVersionUID = -68464081548099497L;

    @Id
    @ApiModelProperty(value = "主键")
    @Column(value = "id")
    private Long id;

    @ApiModelProperty(value = "业务规则策略ID")
    @Column(value = "strategy_id")
    private Long strategyId;

    @ApiModelProperty(value = "业务规则策略条件类型 数据字典 BUSINESS_CONDITION_TYPE 1配送方式 2发货方类型 3收货方类型 4订单类型 5订单业务类型 " +
            "6运输模式 7温度要求 8货主 9部门 10商品 11商品品类 12 商品件数 13 商品重量 14商品总件数  15商品总重量 16 发货方省市区 17 收货方省市区")
    @Column(value = "strategy_condition_type")
    private Integer strategyConditionType;

    @ApiModelProperty(value = "业务规则策略条件对应的值" +
            "策略条件是订单类型 1普通 2紧急 3加急" +
            "策略条件是订单业务类型 1销售订单-直送 2销售订单-供应商配送 3采购订单-供应商配送 4采购订单-自提" +
            "策略条件是配送方式 ：1配送 2自提 " +
            "策略条件是运输模式：1整车 2零担")
    @Column(value = "strategy_condition_value")
    private String strategyConditionValue;

    @ApiModelProperty(value = "单位ID  单位ID1,单位ID2")
    @Column(value = "unit_id")
    private String unitId;

    @ApiModelProperty(value = "单位编码  单位编码1,单位编码2")
    @Column(value = "unit_code")
    private String unitCode;

    @ApiModelProperty(value = "单位名称  单位名称1,单位名称2")
    @Column(value = "unit_name")
    private String unitName;

    @ApiModelProperty(value = "下限值")
    @Column(value = "lower_limit_value")
    private BigDecimal lowerLimitValue;

    @ApiModelProperty(value = "上限值")
    @Column(value = "upper_limit_value")
    private BigDecimal upperLimitValue;

    @ApiModelProperty(value = "上限值比较符号 数据字典 CMP_SYMBOL 1大于 2大于等于 3小于 4小于等于")
    @Column(value = "upper_limit_symbol")
    private Integer upperLimitSymbol;

    @ApiModelProperty(value = "下限值比较符号 数据字典 CMP_SYMBOL 1大于 2大于等于 3小于 4小于等于")
    @Column(value = "lower_limit_symbol")
    private Integer lowerLimitSymbol;

    @ApiModelProperty(value = "发货方省编码")
    @Column(value = "shipper_province")
    private String shipperProvince;

    @ApiModelProperty(value = "发货方市编码")
    @Column(value = "shipper_city")
    private String shipperCity;

    @ApiModelProperty(value = "发货方区/县编码")
    @Column(value = "shipper_district")
    private String shipperDistrict;

    @ApiModelProperty(value = "收货方省编码")
    @Column(value = "consignee_province")
    private String consigneeProvince;

    @ApiModelProperty(value = "收货方市编码")
    @Column(value = "consignee_city")
    private String consigneeCity;

    @ApiModelProperty(value = "收货方区/县编码")
    @Column(value = "consignee_district")
    private String consigneeDistrict;

    @ApiModelProperty(value = "企业ID")
    @Column(value = "enterprise_id")
    private Long enterpriseId;

    @ApiModelProperty(value = "企业名称")
    @Column(value = "enterprise_name")
    private String enterpriseName;

    @ApiModelProperty(value = "创建时间")
    @Column(value = "createtime")
    private Date createtime;

    @ApiModelProperty(value = "创建人")
    @Column(value = "createperson")
    private String createperson;

    @ApiModelProperty(value = "修改时间")
    @Column(value = "updatetime")
    private Date updatetime;

    @ApiModelProperty(value = "修改人")
    @Column(value = "updateperson")
    private String updateperson;
}
