package com.jeeplus.assess.invoice.domain.OMS;
import javax.validation.constraints.Size;

/**
 * 拖拉机和联合收割机信息子实体类
 * 仅在开具拖拉机和联合收割机特定要素的数电发票（specificFactor为13时）需要传入
 *
 * 业务规则：
 * 1. 当发票用于登记时：`engineCode`（发动机号码）和 `chassisCode`（底盘号/机架号）至少填写一个，且最多只能有一组；
 *    同时发票明细只能有一行（或一对折扣明细行）。
 * 2. 当发票不用于登记时：此模块必须为空，发票可以有多行明细。
 */
public class HarvesterInfo {

    /**
     * 发动机号码
     * 选填，最大40字符；用于登记时与底盘号至少填一个
     */
    @Size(max = 40, message = "发动机号码长度不能超过40字符")
    private String engineCode;

    /**
     * 底盘号/机架号
     * 选填，最大40字符；用于登记时与发动机号码至少填一个
     */
    @Size(max = 40, message = "底盘号长度不能超过40字符")
    private String chassisCode;

    public String getEngineCode() {
        return engineCode;
    }

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

    public String getChassisCode() {
        return chassisCode;
    }

    public void setChassisCode(String chassisCode) {
        this.chassisCode = chassisCode;
    }
}