package com.casic.missiles.dto.customer.Info;


import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.alibaba.excel.enums.poi.BorderStyleEnum;
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 java.io.Serializable;

@Data
@TableName("customer_info")
@ColumnWidth(30)
@HeadRowHeight(15)
@ContentRowHeight(20)
@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN)
@ExcelIgnoreUnannotated
public class CustomerInfoResponse implements Serializable {

    private static final long serialVersionUID = 1L;

    private Long id;

    @ApiModelProperty(value = "编号", dataType = "String")
    @ExcelProperty(value = "编号", order = 0)
    private String customerNo;

    @ApiModelProperty(value = "公司名称", dataType = "String")
    @ExcelProperty(value = "公司名称", order = 1)
    private String customerName;

    @ApiModelProperty(value = "公司简称", dataType = "String")
    @ExcelProperty(value = "公司简称", order = 2)
    private String briefName;

    @ApiModelProperty(value = "业务内容", dataType = "String")
    @ExcelProperty(value = "业务内容", order = 3)
    private String businessContent;

    @ApiModelProperty(value = "税号", dataType = "String")
    @ExcelProperty(value = "税号", order = 4)
    private String taxNumber;

    @ApiModelProperty(value = "银行账户名", dataType = "String")
    @ExcelProperty(value = "银行账户名", order = 5)
    private String bankAccount;

    @ApiModelProperty(value = "银行名称", dataType = "String")
    @ExcelProperty(value = "银行名称", order = 6)
    private String bankName;

    @ApiModelProperty(value = "银行账号", dataType = "String")
    @ExcelProperty(value = "银行账号", order = 7)
    private String bankAccountNumber;

    @ApiModelProperty(value = "邮编", dataType = "String")
    @ExcelProperty(value = "邮编", order = 8)
    private String postalCode;

    @ApiModelProperty(value = "负责人", dataType = "String")
    @ExcelProperty(value = "负责人", order = 9)
    private String director;

    @ApiModelProperty(value = "电话", dataType = "String")
    @ExcelProperty(value = "电话", order = 10)
    private String phone;

    @ApiModelProperty(value = "传真", dataType = "String")
    @ExcelProperty(value = "电话", order = 11)
    private String fax;

    @ApiModelProperty(value = "手机", dataType = "String")
    @ExcelProperty(value = "手机", order = 12)
    private String mobile;

    @ApiModelProperty(value = "邮箱", dataType = "String")
    @ExcelProperty(value = "邮箱", order = 13)
    private String email;

    @ApiModelProperty(value = "网址", dataType = "String")
    @ExcelProperty(value = "网址", order = 14)
    private String website;

    @ApiModelProperty(value = "履约评级id", dataType = "String")
    @DictCodeField(message = "履约评级描述不合法", cacheName = MeterDictCode.GRADE)
    private String grade;

    @TableField(exist = false)
    @ApiModelProperty(value = "履约评级", dataType = "String")
    @ExcelProperty(value = "履约评级", order = 15)
    private String gradeName;

    @ApiModelProperty(value = "公司规模", dataType = "String")
    @DictCodeField(message = "公司规模描述不合法", cacheName = MeterDictCode.COMPANY_SCALE)
    private String companySize;

    @TableField(exist = false)
    @ApiModelProperty(value = "公司规模", dataType = "String")
    private String companySizeName;

    @ApiModelProperty(value = "业务规模-字典", dataType = "String")
    @DictCodeField(message = "业务规模描述不合法", cacheName = MeterDictCode.BUSINESS_SCALE)
    private String businessSize;

    @TableField(exist = false)
    @ApiModelProperty(value = "公司规模名称", dataType = "String")
    private String businessSizeName;

    @ApiModelProperty(value = "整体评价", dataType = "String")
    @DictCodeField(message = "公司整体评价不合法", cacheName = MeterDictCode.EVALUATION)
    private String evaluation;

    @TableField(exist = false)
    @ApiModelProperty(value = "整体评价", dataType = "String")
    private String evaluationName;


    @ApiModelProperty(value = "公司国家地址", dataType = "String")
    @ExcelProperty(value = "公司国家地址", order = 16)
    private String addressCountryName;

    @ApiModelProperty(value = "公司省地址", dataType = "String")
    @ExcelProperty(value = "公司省地址", order = 16)
    private String addressProvinceName;

    @ApiModelProperty(value = "公司市地址", dataType = "String")
    @ExcelProperty(value = "公司市地址", order = 17)
    private String addressCityName;

    @ApiModelProperty(value = "公司市详细地址", dataType = "String")
    @ExcelProperty(value = "公司市详细地址", order = 18)
    private String fullAddress;

    @ApiModelProperty(value = "业务范围", dataType = "String")
    @ExcelProperty(value = "业务范围", order = 19)
    private String businessScope;

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

    @ApiModelProperty(value = "最后更新时间", dataType = "String")
    @ExcelProperty(value = "最后更新时间", order = 21)
    private String updateTime;

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

}
