package com.malk.zhiwei.entity;

import com.fasterxml.jackson.annotation.JsonProperty;

import java.util.List;

/**
 * 单据操作请求实体类
 * 用于处理单据相关的操作请求参数
 */
public class PreBaseDataOne {
    
    /**
     * 创建者组织内码
     * 非必录字段
     */
    @JsonProperty("CreateOrgId")
    private String createOrgId;
    
    /**
     * 单据编码集合
     * 数组类型，格式：[No1,No2,...]
     * 使用编码时必录
     */
    @JsonProperty("Numbers")
    private List<String> numbers;
    
    /**
     * 单据内码集合
     * 字符串类型，格式："Id1,Id2,..."
     * 使用内码时必录
     */
    @JsonProperty("Ids")
    private String ids;
    
    /**
     * 工作流发起员工岗位内码
     * 整型，非必录
     * 注：员工身兼多岗时不传参默认取第一个岗位
     */
    @JsonProperty("SelectedPostId")
    private Integer selectedPostId;
    
    /**
     * 是否启用网控
     * 布尔类型，默认false
     * 非必录
     */
    @JsonProperty("NetworkCtrl")
    private Boolean networkCtrl = false;
    
    /**
     * 是否允许忽略交互
     * 布尔类型，默认true
     * 非必录
     */
    @JsonProperty("IgnoreInterationFlag")
    private Boolean ignoreInterationFlag = true;
    
    // 无参构造函数
    public PreBaseDataOne() {
    }
    
    // 全参构造函数
    public PreBaseDataOne(String createOrgId, List<String> numbers,
                                   String ids, Integer selectedPostId, 
                                   Boolean networkCtrl, Boolean ignoreInterationFlag) {
        this.createOrgId = createOrgId;
        this.numbers = numbers;
        this.ids = ids;
        this.selectedPostId = selectedPostId;
        this.networkCtrl = networkCtrl;
        this.ignoreInterationFlag = ignoreInterationFlag;
    }
    
    // Getter和Setter方法
    
    public String getCreateOrgId() {
        return createOrgId;
    }
    
    public void setCreateOrgId(String createOrgId) {
        this.createOrgId = createOrgId;
    }
    
    public List<String> getNumbers() {
        return numbers;
    }
    
    public void setNumbers(List<String> numbers) {
        this.numbers = numbers;
    }
    
    public String getIds() {
        return ids;
    }
    
    public void setIds(String ids) {
        this.ids = ids;
    }
    
    public Integer getSelectedPostId() {
        return selectedPostId;
    }
    
    public void setSelectedPostId(Integer selectedPostId) {
        this.selectedPostId = selectedPostId;
    }
    
    public Boolean getNetworkCtrl() {
        return networkCtrl;
    }
    
    public void setNetworkCtrl(Boolean networkCtrl) {
        this.networkCtrl = networkCtrl;
    }
    
    public Boolean getIgnoreInterationFlag() {
        return ignoreInterationFlag;
    }
    
    public void setIgnoreInterationFlag(Boolean ignoreInterationFlag) {
        this.ignoreInterationFlag = ignoreInterationFlag;
    }
    
    @Override
    public String toString() {
        return "DocumentOperationRequest{" +
                "createOrgId='" + createOrgId + '\'' +
                ", numbers=" + numbers +
                ", ids='" + ids + '\'' +
                ", selectedPostId=" + selectedPostId +
                ", networkCtrl=" + networkCtrl +
                ", ignoreInterationFlag=" + ignoreInterationFlag +
                '}';
    }
}