package com.shkj.wms.bo;

import com.shkj.wms.constants.DictConstants;
import com.shkj.wms.validator.Dict;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.List;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 客商资料对象
 *
 * @author lch
 * @date 2022-04-09
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
public class BaseCompanySaveOrUpdateBo implements Serializable {

private static final long serialVersionUID=1L;

    /**
     * 客户数据唯一自增id
     */
    private Long id;

    /**
     * 业主ID
     */
    @NotNull(message = "业主编号不得为空")
    private Long consignorId;

    /**
     * 客户名称
     */
    @NotBlank(message = "客户名称不得为空")
    private String companyName;

    /**
     * 助记码
     */
    @NotBlank(message = "助记码不得为空")
    private String mnemonic;

    /**
     * 是否两票制客户
     */
    @Dict(type= DictConstants.DictKey.base_company_specifications,message="是否两票制客户与数据字典值不匹配")
    private String specifications;

    /**
     * 客户类型：V/C/H/W  供应商：V,客户：C,供应商客户：W
     */
    @NotBlank(message = "客户分类：V/C/H/W  供应商：V,客户：C,供应商客户：W不得为空")
    @Dict(type= DictConstants.DictKey.base_company_type,message="客户类型与数据字典值不匹配")
    private String type;

    /**
     * 是否打印发票客户
     */
    @Dict(type= DictConstants.DictKey.base_company_print_invoice,message="是否打印发票客户与数据字典值不匹配")
    private String storageClassify;

    /**
     * 是否打印随货同行单
     */
    @Dict(type= DictConstants.DictKey.base_company_print_goodBills,message="是否打印随货同行单与数据字典值不匹配")
    private String storageConditions;

    /**
     * 备注
     */
    private String remark;

    /**
     * 客商对应的需要添加或者修改的地址信息，id大于0就修改 小于0或者null则位新增
     */
    private List<BaseAddressSaveOrUpdateBo> list;
}
