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

import javax.validation.constraints.Pattern;

/**
 * OMS红字确认单查询接口请求实体类
 * 对应业务场景：业务系统从OMS系统查询申请的红字确认单数据
 * 所有字段均采用 @Pattern 正则校验，规则：^$ 表示允许为空，| 分隔所有合法有效值
 */
public class OMSRedInvoiceConfirmQueryRequest {

    /**
     * 组织代码（必填）
     * 所属组织唯一标识，长度1-20位
     */
    @Pattern(regexp = "^[\\s\\S]{1,20}$", message = "组织代码deptCode为必填项，长度不能超过20位")
    private String deptCode;

    /**
     * 申请单号（非必填）
     * 申请单号、红字确认单id、红字确认信息单编号不可同时为空；长度1-50位
     */
    @Pattern(regexp = "^$|^[\\s\\S]{1,50}$", message = "申请单号applyNo只能传入：空 或 长度不超过50位的任意字符（需与redUuid/redNo至少一个同时传值）")
    private String applyNo;

    /**
     * 红字确认单id（非必填）
     * 申请单号、红字确认单id、红字确认信息单编号不可同时为空；长度1-32位
     */
    @Pattern(regexp = "^$|^[\\s\\S]{1,32}$", message = "红字确认单id redUuid只能传入：空 或 长度不超过32位的任意字符（需与applyNo/redNo至少一个同时传值）")
    private String redUuid;

    /**
     * 红字确认信息单编号（非必填）
     * 申请单号、红字确认单id、红字确认信息单编号不可同时为空；长度1-32位
     */
    @Pattern(regexp = "^$|^[\\s\\S]{1,32}$", message = "红字确认信息单编号redNo只能传入：空 或 长度不超过32位的任意字符（需与applyNo/redUuid至少一个同时传值）")
    private String redNo;

    /**
     * 请求方身份（必填）
     * 0:销方 1:购方
     */
    @Pattern(regexp = "0|1", message = "请求方身份applyIdentity为必填项，只能传入0（销方）或1（购方）")
    private String applyIdentity;

    public String getDeptCode() {
        return deptCode;
    }

    public void setDeptCode(String deptCode) {
        this.deptCode = deptCode;
    }

    public String getApplyNo() {
        return applyNo;
    }

    public void setApplyNo(String applyNo) {
        this.applyNo = applyNo;
    }

    public String getRedUuid() {
        return redUuid;
    }

    public void setRedUuid(String redUuid) {
        this.redUuid = redUuid;
    }

    public String getRedNo() {
        return redNo;
    }

    public void setRedNo(String redNo) {
        this.redNo = redNo;
    }

    public String getApplyIdentity() {
        return applyIdentity;
    }

    public void setApplyIdentity(String applyIdentity) {
        this.applyIdentity = applyIdentity;
    }
}
