package com.casic.missiles.model.customer;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.casic.missiles.annotation.DictCodeField;
import com.casic.missiles.constants.MeterDictCode;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

@NoArgsConstructor
@Data
@TableName("customer_sample_info")
public class CustomerSampleInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    private Long id;

    @TableField(exist = false)
    @ApiModelProperty(value = "委托书id", dataType = "Long")
    private Long orderId;

    @ApiModelProperty(value = "委托方id", dataType = "Long")
    private Long customerId;

    @ApiModelProperty(value = "委托方代码", dataType = "String")
    private String customerNo;

    @ApiModelProperty(value = "委托方名称", dataType = "String")
    private String customerName;

    @ApiModelProperty(value = "样品编号", dataType = "String")
    private String sampleNo;

    @ApiModelProperty(value = "样品所属", dataType = "String")
    @DictCodeField(message = "样品所属描述不合法", cacheName = MeterDictCode.SAMPLE_BELONG)
    private String sampleBelong;

    @TableField(exist = false)
    @ApiModelProperty(value = "样品所属名称", dataType = "String")
    private String sampleBelongName;

    @ApiModelProperty(value = "样品名称", dataType = "String")
    private String sampleName;

    @ApiModelProperty(value = "样品型号", dataType = "String")
    private String sampleModel;

    @ApiModelProperty(value = "出厂编号-判重依据", dataType = "String")
    private String manufacturingNo;

    @ApiModelProperty(value = "生产厂家", dataType = "String")
    private String manufacturer;

    @ApiModelProperty(value = "厂家国别", dataType = "String")
    private String manufacturerCountry;

    @ApiModelProperty(value = "出厂年月", dataType = "String")
    private String manufacturingDate;

    @ApiModelProperty(value = "ABC", dataType = "String")
    private String abc;

    @ApiModelProperty(value = " 电源电压", dataType = "String")
    private String powerVoltage;

    @ApiModelProperty(value = " 附件及数量", dataType = "String")
    private String appendix;

    @ApiModelProperty(value = " 附件说明", dataType = "String")
    private String appendixDescn;

    @ApiModelProperty(value = " 客户特殊要求", dataType = "String")
    private String specialRequire;


    @ApiModelProperty(value = " 检定方式", dataType = "String")
    @DictCodeField(message = "检定方式不合法", cacheName = MeterDictCode.MEASURE_TYPE)
    private String measureType;

    @ApiModelProperty(value = " 检定方式名称", dataType = "String")
    @TableField(exist = false)
    private String measureTypeName;

    @ApiModelProperty(value = " 检校类别", dataType = "String")
    @DictCodeField(message = "检校类别不合法", cacheName = MeterDictCode.MEASURE_CATEGORY)
    private String measureCategory;

    @ApiModelProperty(value = " 检校类别名称", dataType = "String")
    @TableField(exist = false)
    private String measureCategoryName;

    @ApiModelProperty(value = "检定项目", dataType = "String")
    private String measureContent;

    @ApiModelProperty(value = "检定周期(月)", dataType = "String")
    private String measurePeriod;

    @ApiModelProperty(value = "检定日期", dataType = "String")
    private String measureLastTime;

    @ApiModelProperty(value = "有效期限", dataType = "String")
    private String validDeadline;

    @ApiModelProperty(value = "备注", dataType = "String")
    private String remark;

    @ApiModelProperty(value = "说明书", dataType = "String")
    private String minioFileName;

    @ApiModelProperty(value = "标签绑定", dataType = "String")
    private String labelBind;

    @ApiModelProperty(value = "删除标记", dataType = "Integer")
    private Integer isDel;

    @ApiModelProperty(value = "创建人", dataType = "String")
    private Long createUser;

    @ApiModelProperty(value = "更新人", dataType = "String")
    private Long updateUser;

    @ApiModelProperty(value = "创建时间", dataType = "String")
    private String createTime;

    @ApiModelProperty(value = "更新时间", dataType = "String")
    private String updateTime;

    @ApiModelProperty(value = "送检人", dataType = "String")
    private String deliverer;

    @ApiModelProperty(value = "送检人联系方式", dataType = "String")
    private String delivererTel;

    @TableField(exist = false)
    @ApiModelProperty(value = "委托方地址", dataType = "String")
    private String customerAddress;

    @TableField(exist = false)
    @ApiModelProperty(value = "委托方电话", dataType = "String")
    private String phone;

    @TableField(exist = false)
    @ApiModelProperty(value = "委托方邮编", dataType = "String")
    private String postalCode;

    @TableField(exist = false)
    @ApiModelProperty(value = "是否存在样品库（0-不存在,1-存在）", dataType = "String")
    private String sampleStatus;

    @TableField(exist = false)
    @ApiModelProperty(value = "是否存在样品库（0-不存在,1-存在）", dataType = "String")
    private String isExistSample;

    @TableField(exist = false)
    @ApiModelProperty(value = "委托书样品关联表id", dataType = "Long")
    private Long relationId;
}
