package tech.easyflow.approval.entity.vo;

import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 审批实例详情。
 */
public class ApprovalInstanceDetailVo {

    private BigInteger id;

    private BigInteger flowId;

    private Integer flowVersion;

    private String resourceType;

    private BigInteger resourceId;

    private String actionType;

    private String status;

    private Integer currentStepNo;

    private String summary;

    private BigInteger applicantId;

    private String applicantName;

    private String applicantAccount;

    private Date submittedAt;

    private Date finishedAt;

    private Map<String, Object> snapshotJson;

    private boolean canApprove;

    private boolean canReject;

    private boolean canRevoke;

    private List<ApprovalTaskVo> tasks = new ArrayList<>();

    private List<ApprovalLogVo> logs = new ArrayList<>();

    public BigInteger getId() {
        return id;
    }

    public void setId(BigInteger id) {
        this.id = id;
    }

    public BigInteger getFlowId() {
        return flowId;
    }

    public void setFlowId(BigInteger flowId) {
        this.flowId = flowId;
    }

    public Integer getFlowVersion() {
        return flowVersion;
    }

    public void setFlowVersion(Integer flowVersion) {
        this.flowVersion = flowVersion;
    }

    public String getResourceType() {
        return resourceType;
    }

    public void setResourceType(String resourceType) {
        this.resourceType = resourceType;
    }

    public BigInteger getResourceId() {
        return resourceId;
    }

    public void setResourceId(BigInteger resourceId) {
        this.resourceId = resourceId;
    }

    public String getActionType() {
        return actionType;
    }

    public void setActionType(String actionType) {
        this.actionType = actionType;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Integer getCurrentStepNo() {
        return currentStepNo;
    }

    public void setCurrentStepNo(Integer currentStepNo) {
        this.currentStepNo = currentStepNo;
    }

    public String getSummary() {
        return summary;
    }

    public void setSummary(String summary) {
        this.summary = summary;
    }

    public BigInteger getApplicantId() {
        return applicantId;
    }

    public void setApplicantId(BigInteger applicantId) {
        this.applicantId = applicantId;
    }

    public String getApplicantName() {
        return applicantName;
    }

    public void setApplicantName(String applicantName) {
        this.applicantName = applicantName;
    }

    public String getApplicantAccount() {
        return applicantAccount;
    }

    public void setApplicantAccount(String applicantAccount) {
        this.applicantAccount = applicantAccount;
    }

    public Date getSubmittedAt() {
        return submittedAt;
    }

    public void setSubmittedAt(Date submittedAt) {
        this.submittedAt = submittedAt;
    }

    public Date getFinishedAt() {
        return finishedAt;
    }

    public void setFinishedAt(Date finishedAt) {
        this.finishedAt = finishedAt;
    }

    public Map<String, Object> getSnapshotJson() {
        return snapshotJson;
    }

    public void setSnapshotJson(Map<String, Object> snapshotJson) {
        this.snapshotJson = snapshotJson;
    }

    public boolean isCanApprove() {
        return canApprove;
    }

    public void setCanApprove(boolean canApprove) {
        this.canApprove = canApprove;
    }

    public boolean isCanReject() {
        return canReject;
    }

    public void setCanReject(boolean canReject) {
        this.canReject = canReject;
    }

    public boolean isCanRevoke() {
        return canRevoke;
    }

    public void setCanRevoke(boolean canRevoke) {
        this.canRevoke = canRevoke;
    }

    public List<ApprovalTaskVo> getTasks() {
        return tasks;
    }

    public void setTasks(List<ApprovalTaskVo> tasks) {
        this.tasks = tasks;
    }

    public List<ApprovalLogVo> getLogs() {
        return logs;
    }

    public void setLogs(List<ApprovalLogVo> logs) {
        this.logs = logs;
    }
}
