package com.jeeplus.assess.invoice.domain.OMS.InvoiceDown;

import org.hibernate.validator.constraints.NotBlank;

import javax.validation.constraints.Pattern;
import java.math.BigDecimal;

/**
 * 机动车销售统一发票信息实体类
 * 用于发票中机动车销售相关的特定信息
 */
public class OMSDownVehicle {
    /**
     * 车架号码
     * 必填，17个字节
     */
    @NotBlank(message = "车架号码frameNo不能为空")
    private String frameNo;

    /**
     * 产地
     * 非必填，10个字节
     */
    private String origin;

    /**
     * 进口证明书号
     * 非必填，16个字节
     */
    private String importCertificateNo;

    /**
     * 商检单号
     * 非必填，60个字节
     */
    private String inspectionNo;

    /**
     * 吨位
     * 非必填，10个字节
     */
    private BigDecimal tonnage;

    /**
     * 限乘人数
     * 非必填，11个字节
     */
    private Integer limitNum;

    /**
     * 完税凭证号码
     * 非必填，100个字节
     */
    private String taxPaymentReceiptNo;

    /**
     * 厂牌型号
     * 非必填，100个字节
     */
    private String brandModel;

    /**
     * 合格证号
     * 非必填，100个字节
     */
    private String passCertificate;

    /**
     * 发动机号码
     * 非必填，100个字节
     */
    private String engineCode;

    /**
     * 生产企业名称
     * 非必填，300个字节
     */
    private String productionCompanyName;

    /**
     * 制造或进口日期
     * 非必填，10个字节，格式为yyyy-MM-dd
     */
    @Pattern(regexp = "^\\d{4}-\\d{2}-\\d{2}$", message = "制造或进口日期格式必须为yyyy-MM-dd")
    private String vehicleProdDate;

    public String getFrameNo() {
        return frameNo;
    }

    public void setFrameNo(String frameNo) {
        this.frameNo = frameNo;
    }

    public String getOrigin() {
        return origin;
    }

    public void setOrigin(String origin) {
        this.origin = origin;
    }

    public String getImportCertificateNo() {
        return importCertificateNo;
    }

    public void setImportCertificateNo(String importCertificateNo) {
        this.importCertificateNo = importCertificateNo;
    }

    public String getInspectionNo() {
        return inspectionNo;
    }

    public void setInspectionNo(String inspectionNo) {
        this.inspectionNo = inspectionNo;
    }

    public BigDecimal getTonnage() {
        return tonnage;
    }

    public void setTonnage(BigDecimal tonnage) {
        this.tonnage = tonnage;
    }

    public Integer getLimitNum() {
        return limitNum;
    }

    public void setLimitNum(Integer limitNum) {
        this.limitNum = limitNum;
    }

    public String getTaxPaymentReceiptNo() {
        return taxPaymentReceiptNo;
    }

    public void setTaxPaymentReceiptNo(String taxPaymentReceiptNo) {
        this.taxPaymentReceiptNo = taxPaymentReceiptNo;
    }

    public String getBrandModel() {
        return brandModel;
    }

    public void setBrandModel(String brandModel) {
        this.brandModel = brandModel;
    }

    public String getPassCertificate() {
        return passCertificate;
    }

    public void setPassCertificate(String passCertificate) {
        this.passCertificate = passCertificate;
    }

    public String getEngineCode() {
        return engineCode;
    }

    public void setEngineCode(String engineCode) {
        this.engineCode = engineCode;
    }

    public String getProductionCompanyName() {
        return productionCompanyName;
    }

    public void setProductionCompanyName(String productionCompanyName) {
        this.productionCompanyName = productionCompanyName;
    }

    public String getVehicleProdDate() {
        return vehicleProdDate;
    }

    public void setVehicleProdDate(String vehicleProdDate) {
        this.vehicleProdDate = vehicleProdDate;
    }
}
