package com.casic.missiles.model.business;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.casic.missiles.model.customer.CustomerSampleInfo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * 业务管理-委托书
 * </p>
 *
 * @author wangpeng
 * @since 2023-02-02
 */
@NoArgsConstructor
@Data
@TableName("business_order")
@ApiModel
public class BusinessOrder implements Serializable {

    private static final long serialVersionUID = 1L;

    private Long id;

    @ApiModelProperty(value = "委托书编号", dataType = "String")
    private String orderCode;

    @ApiModelProperty(value = "委托日期", dataType = "String")
    private String orderTime;

    @TableField("deliverer_id")
    @ApiModelProperty(value = "送样人/送检人门户网站登录id（门户网站新建委托书时必传）", dataType = "String")
    private Long delivererId;

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

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

    @ApiModelProperty(value = "送检时间", dataType = "String")
    private String deliverTime;

    @ApiModelProperty(value = "预约送达时间", dataType = "String")
    private String planDeliverTime;

    @ApiModelProperty(value = "要求检完时间", dataType = "String")
    private String requireOverTime;

    @ApiModelProperty(value = "委托方id（客户id）", dataType = "Long")
    @TableField("customer_id")
    private Long customerId;

    @ApiModelProperty(value = "证书单位名称", dataType = "String")
    @TableField("certification_company")
    private String certificationCompany;

    @ApiModelProperty(value = "证书单位地址", dataType = "String")
    @TableField("certification_company_address")
    private String certificationCompanyAddress;

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

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

    @ApiModelProperty(value = "委托方联系方式（固话）", dataType = "String")
    private String customerPhone;

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

    @ApiModelProperty(value = "接收状态（字典code）", dataType = "String")
    private String status;

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

    @ApiModelProperty(value = "附件，minio存储文件名", dataType = "String")
    private String minioFileName;

    @ApiModelProperty(value = "证书类别，多个逗号分割（字典code）", dataType = "String")
    private String certifications;

    @ApiModelProperty(value = "是否加急", dataType = "Integer")
    private Integer isUrgent;

    private Integer isDel;

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

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

    private String createTime;

    private String updateTime;

    @TableField(exist = false)
    private List<CustomerSampleInfo> customerSampleInfoList = new ArrayList<>();

}
