package com.shkj.wms.bo;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;

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

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

    private static final long serialVersionUID=1L;



    /**
     * 客户ID
     */
    @NotBlank(message = "客户ID不得为空")
    private String companyNum;


    /**
     * 客户编号
     */
    @NotBlank(message = "客户编号不得为空")
    private String companyNo;


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


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


    /**
     * 客户分类：V/C/H/W  供应商：V,客户：C,供应商客户：W
     */
    @NotBlank(message = "客户分类：V/C/H/W  供应商：V,客户：C,供应商客户：W不得为空")
    private String type;


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


    /**
     * 是否两票制客户
     */
    @NotBlank(message = "是否两票制客户不得为空")
    private String specifications;


    /**
     * 是否打印随货同行单
     */
    @NotBlank(message = "是否打印随货同行单不得为空")
    private String storageConditions;


    /**
     * 是否打印发票
     */
    @NotBlank(message = "是否打印发票不得为空")
    private String storageClassify;


    /**
     * 仓ID
     */
    @NotNull(message = "仓ID不得为空")
    private Long branchId;


    /**
     * 扩展字段1
     */
    @NotBlank(message = "扩展字段1不得为空")
    private String extend1;


    /**
     * 扩展字段2
     */
    @NotBlank(message = "扩展字段2不得为空")
    private String extend2;


    /**
     * 扩展字段3
     */
    @NotBlank(message = "扩展字段3不得为空")
    private String extend3;


    /**
     * 扩展字段4
     */
    @NotBlank(message = "扩展字段4不得为空")
    private String extend4;


    /**
     * 扩展字段5
     */
    @NotBlank(message = "扩展字段5不得为空")
    private String extend5;


    /**
     * 扩展字段6
     */
    @NotBlank(message = "扩展字段6不得为空")
    private String extend6;


    /**
     * 扩展字段7
     */
    @NotBlank(message = "扩展字段7不得为空")
    private String extend7;


    /**
     * 扩展字段8
     */
    @NotBlank(message = "扩展字段8不得为空")
    private String extend8;


    /**
     * 扩展字段9
     */
    @NotBlank(message = "扩展字段9不得为空")
    private String extend9;


    /**
     * 扩展字段10
     */
    @NotBlank(message = "扩展字段10不得为空")
    private String extend10;


    /**
     * 备注
     */
    @NotBlank(message = "备注不得为空")
    private String remark;


    /**
     * 删除状态
     */
    @NotBlank(message = "删除状态不得为空")
    private String isDel;


    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+7")
    private Date createTime;


    /**
     * 创建人
     */
    @TableField(fill = FieldFill.INSERT)
    @NotBlank(message = "创建人不得为空")
    private String createBy;


    /**
     * 修改时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+7")
    private Date updateTime;


    /**
     * 修改人
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @NotBlank(message = "修改人不得为空")
    private String updateBy;

}
