tvpl.api

<back to all web services

GetWorkflowStepRequest

Requires Authentication
The following routes are available for this service:
GET/WorkflowStep/by-workflow
import java.math.*;
import java.util.*;
import net.servicestack.client.*;

public class dtos
{

    public static class GetWorkflowStepRequest
    {
        public Integer workflowId = null;
        
        public Integer getWorkflowId() { return workflowId; }
        public GetWorkflowStepRequest setWorkflowId(Integer value) { this.workflowId = value; return this; }
    }

    public static class GetWorkflowStepResponse implements IResponseRequest
    {
        public Integer code = null;
        public String message = null;
        public ArrayList<WorkflowStepDetail> data = null;
        
        public Integer getCode() { return code; }
        public GetWorkflowStepResponse setCode(Integer value) { this.code = value; return this; }
        public String getMessage() { return message; }
        public GetWorkflowStepResponse setMessage(String value) { this.message = value; return this; }
        public ArrayList<WorkflowStepDetail> getData() { return data; }
        public GetWorkflowStepResponse setData(ArrayList<WorkflowStepDetail> value) { this.data = value; return this; }
    }

    public static class WorkflowStepDetail extends WorkflowStep
    {
        public ArrayList<Category> departments = null;
        public ArrayList<Category> coDepartments = null;
        public ArrayList<SimpleDocumentRelation> basisDocuments = null;
        public ArrayList<SimpleDocumentRelation> referenceDocuments = null;
        public ArrayList<WorkFlowProfile> mainAssignees = null;
        public ArrayList<WorkFlowProfile> supportingAssignees = null;
        public String statusKey = null;
        public String statusText = null;
        @Ignore()
        public Boolean canRead = null;

        @Ignore()
        public Boolean canWrite = null;

        @Ignore()
        public Boolean canUpload = null;

        public String reasonReturn = null;
        public Date returnDate = null;
        
        public ArrayList<Category> getDepartments() { return departments; }
        public WorkflowStepDetail setDepartments(ArrayList<Category> value) { this.departments = value; return this; }
        public ArrayList<Category> getCoDepartments() { return coDepartments; }
        public WorkflowStepDetail setCoDepartments(ArrayList<Category> value) { this.coDepartments = value; return this; }
        public ArrayList<SimpleDocumentRelation> getBasisDocuments() { return basisDocuments; }
        public WorkflowStepDetail setBasisDocuments(ArrayList<SimpleDocumentRelation> value) { this.basisDocuments = value; return this; }
        public ArrayList<SimpleDocumentRelation> getReferenceDocuments() { return referenceDocuments; }
        public WorkflowStepDetail setReferenceDocuments(ArrayList<SimpleDocumentRelation> value) { this.referenceDocuments = value; return this; }
        public ArrayList<WorkFlowProfile> getMainAssignees() { return mainAssignees; }
        public WorkflowStepDetail setMainAssignees(ArrayList<WorkFlowProfile> value) { this.mainAssignees = value; return this; }
        public ArrayList<WorkFlowProfile> getSupportingAssignees() { return supportingAssignees; }
        public WorkflowStepDetail setSupportingAssignees(ArrayList<WorkFlowProfile> value) { this.supportingAssignees = value; return this; }
        public String getStatusKey() { return statusKey; }
        public WorkflowStepDetail setStatusKey(String value) { this.statusKey = value; return this; }
        public String getStatusText() { return statusText; }
        public WorkflowStepDetail setStatusText(String value) { this.statusText = value; return this; }
        public Boolean isCanRead() { return canRead; }
        public WorkflowStepDetail setCanRead(Boolean value) { this.canRead = value; return this; }
        public Boolean isCanWrite() { return canWrite; }
        public WorkflowStepDetail setCanWrite(Boolean value) { this.canWrite = value; return this; }
        public Boolean isCanUpload() { return canUpload; }
        public WorkflowStepDetail setCanUpload(Boolean value) { this.canUpload = value; return this; }
        public String getReasonReturn() { return reasonReturn; }
        public WorkflowStepDetail setReasonReturn(String value) { this.reasonReturn = value; return this; }
        public Date getReturnDate() { return returnDate; }
        public WorkflowStepDetail setReturnDate(Date value) { this.returnDate = value; return this; }
    }

    public static class WorkflowStep
    {
        public Integer id = null;
        @References(Document.class)
        public Integer workflowId = null;

        public Integer stepOrder = null;
        public Integer statusId = null;
        @Required()
        @StringLength(255)
        public String stepName = null;

        @Required()
        public Boolean isRequired = null;

        public Integer slaLegalValue = null;
        public Boolean slaLegalIsByDay = null;
        public Integer slaInternalValue = null;
        public Boolean slaInternalIsByDay = null;
        public Boolean requireAttachment = null;
        public Boolean isUsingForm = null;
        @Required()
        public String description = null;

        public Integer createdBy = null;
        @Ignore()
        public ArrayList<Integer> departmentIds = null;

        @Ignore()
        public ArrayList<Integer> mainAssigneeIds = null;

        @Ignore()
        public ArrayList<Integer> coDepartmentIds = null;

        @Ignore()
        public ArrayList<Integer> supportingAssigneeIds = null;

        @Ignore()
        public ArrayList<Integer> stepBasisDocumentIds = null;

        @Ignore()
        public ArrayList<StepAttached> attachedDocuments = null;
        
        public Integer getId() { return id; }
        public WorkflowStep setId(Integer value) { this.id = value; return this; }
        public Integer getWorkflowId() { return workflowId; }
        public WorkflowStep setWorkflowId(Integer value) { this.workflowId = value; return this; }
        public Integer getStepOrder() { return stepOrder; }
        public WorkflowStep setStepOrder(Integer value) { this.stepOrder = value; return this; }
        public Integer getStatusId() { return statusId; }
        public WorkflowStep setStatusId(Integer value) { this.statusId = value; return this; }
        public String getStepName() { return stepName; }
        public WorkflowStep setStepName(String value) { this.stepName = value; return this; }
        public Boolean getIsRequired() { return isRequired; }
        public WorkflowStep setIsRequired(Boolean value) { this.isRequired = value; return this; }
        public Integer getSlaLegalValue() { return slaLegalValue; }
        public WorkflowStep setSlaLegalValue(Integer value) { this.slaLegalValue = value; return this; }
        public Boolean isSlaLegalIsByDay() { return slaLegalIsByDay; }
        public WorkflowStep setSlaLegalIsByDay(Boolean value) { this.slaLegalIsByDay = value; return this; }
        public Integer getSlaInternalValue() { return slaInternalValue; }
        public WorkflowStep setSlaInternalValue(Integer value) { this.slaInternalValue = value; return this; }
        public Boolean isSlaInternalIsByDay() { return slaInternalIsByDay; }
        public WorkflowStep setSlaInternalIsByDay(Boolean value) { this.slaInternalIsByDay = value; return this; }
        public Boolean isRequireAttachment() { return requireAttachment; }
        public WorkflowStep setRequireAttachment(Boolean value) { this.requireAttachment = value; return this; }
        public Boolean getIsUsingForm() { return isUsingForm; }
        public WorkflowStep setIsUsingForm(Boolean value) { this.isUsingForm = value; return this; }
        public String getDescription() { return description; }
        public WorkflowStep setDescription(String value) { this.description = value; return this; }
        public Integer getCreatedBy() { return createdBy; }
        public WorkflowStep setCreatedBy(Integer value) { this.createdBy = value; return this; }
        public ArrayList<Integer> getDepartmentIds() { return departmentIds; }
        public WorkflowStep setDepartmentIds(ArrayList<Integer> value) { this.departmentIds = value; return this; }
        public ArrayList<Integer> getMainAssigneeIds() { return mainAssigneeIds; }
        public WorkflowStep setMainAssigneeIds(ArrayList<Integer> value) { this.mainAssigneeIds = value; return this; }
        public ArrayList<Integer> getCoDepartmentIds() { return coDepartmentIds; }
        public WorkflowStep setCoDepartmentIds(ArrayList<Integer> value) { this.coDepartmentIds = value; return this; }
        public ArrayList<Integer> getSupportingAssigneeIds() { return supportingAssigneeIds; }
        public WorkflowStep setSupportingAssigneeIds(ArrayList<Integer> value) { this.supportingAssigneeIds = value; return this; }
        public ArrayList<Integer> getStepBasisDocumentIds() { return stepBasisDocumentIds; }
        public WorkflowStep setStepBasisDocumentIds(ArrayList<Integer> value) { this.stepBasisDocumentIds = value; return this; }
        public ArrayList<StepAttached> getAttachedDocuments() { return attachedDocuments; }
        public WorkflowStep setAttachedDocuments(ArrayList<StepAttached> value) { this.attachedDocuments = value; return this; }
    }

    public static class StepAttached
    {
        public Integer id = null;
        public String documentCode = null;
        public String title = null;
        public Boolean isSequentialSigning = null;
        public UploadedFiles pendingSignFile = null;
        public UploadedFiles originalFile = null;
        public ArrayList<SignerConfigDetail> signerConfigs = null;
        
        public Integer getId() { return id; }
        public StepAttached setId(Integer value) { this.id = value; return this; }
        public String getDocumentCode() { return documentCode; }
        public StepAttached setDocumentCode(String value) { this.documentCode = value; return this; }
        public String getTitle() { return title; }
        public StepAttached setTitle(String value) { this.title = value; return this; }
        public Boolean getIsSequentialSigning() { return isSequentialSigning; }
        public StepAttached setIsSequentialSigning(Boolean value) { this.isSequentialSigning = value; return this; }
        public UploadedFiles getPendingSignFile() { return pendingSignFile; }
        public StepAttached setPendingSignFile(UploadedFiles value) { this.pendingSignFile = value; return this; }
        public UploadedFiles getOriginalFile() { return originalFile; }
        public StepAttached setOriginalFile(UploadedFiles value) { this.originalFile = value; return this; }
        public ArrayList<SignerConfigDetail> getSignerConfigs() { return signerConfigs; }
        public StepAttached setSignerConfigs(ArrayList<SignerConfigDetail> value) { this.signerConfigs = value; return this; }
    }

    public static class UploadedFiles extends BasicUploadedFile
    {
        public Long id = null;
        public String uploadedFile = null;
        public Integer subDocumentId = null;
        public Integer stepId = null;
        public Integer code = null;
        
        public Long getId() { return id; }
        public UploadedFiles setId(Long value) { this.id = value; return this; }
        public String getUploadedFile() { return uploadedFile; }
        public UploadedFiles setUploadedFile(String value) { this.uploadedFile = value; return this; }
        public Integer getSubDocumentId() { return subDocumentId; }
        public UploadedFiles setSubDocumentId(Integer value) { this.subDocumentId = value; return this; }
        public Integer getStepId() { return stepId; }
        public UploadedFiles setStepId(Integer value) { this.stepId = value; return this; }
        public Integer getCode() { return code; }
        public UploadedFiles setCode(Integer value) { this.code = value; return this; }
    }

    public static class BasicUploadedFile
    {
        public String fileName = null;
        public String filekey = null;
        public String fileUrl = null;
        public String checksum = null;
        public String eTag = null;
        public Long fileSize = null;
        
        public String getFileName() { return fileName; }
        public BasicUploadedFile setFileName(String value) { this.fileName = value; return this; }
        public String getFilekey() { return filekey; }
        public BasicUploadedFile setFilekey(String value) { this.filekey = value; return this; }
        public String getFileUrl() { return fileUrl; }
        public BasicUploadedFile setFileUrl(String value) { this.fileUrl = value; return this; }
        public String getChecksum() { return checksum; }
        public BasicUploadedFile setChecksum(String value) { this.checksum = value; return this; }
        public String getETag() { return eTag; }
        public BasicUploadedFile setETag(String value) { this.eTag = value; return this; }
        public Long getFileSize() { return fileSize; }
        public BasicUploadedFile setFileSize(Long value) { this.fileSize = value; return this; }
    }

    public static class SignerConfigDetail extends SignerConfig
    {
        public WorkFlowProfile profile = null;
        public Roles role = null;
        
        public WorkFlowProfile getProfile() { return profile; }
        public SignerConfigDetail setProfile(WorkFlowProfile value) { this.profile = value; return this; }
        public Roles getRole() { return role; }
        public SignerConfigDetail setRole(Roles value) { this.role = value; return this; }
    }

    public static class SignerConfig extends BasicSignerConfig
    {
        public Integer id = null;
        public Integer documentId = null;
        public Integer stepId = null;
        
        public Integer getId() { return id; }
        public SignerConfig setId(Integer value) { this.id = value; return this; }
        public Integer getDocumentId() { return documentId; }
        public SignerConfig setDocumentId(Integer value) { this.documentId = value; return this; }
        public Integer getStepId() { return stepId; }
        public SignerConfig setStepId(Integer value) { this.stepId = value; return this; }
    }

    public static class BasicSignerConfig
    {
        public Integer subDocumentId = null;
        public Integer departmentId = null;
        public Short signerType = null;
        public Integer signerRefId = null;
        @Ignore()
        public String signerRefText = null;

        public Short actionType = null;
        public Integer orderIndex = null;
        
        public Integer getSubDocumentId() { return subDocumentId; }
        public BasicSignerConfig setSubDocumentId(Integer value) { this.subDocumentId = value; return this; }
        public Integer getDepartmentId() { return departmentId; }
        public BasicSignerConfig setDepartmentId(Integer value) { this.departmentId = value; return this; }
        public Short getSignerType() { return signerType; }
        public BasicSignerConfig setSignerType(Short value) { this.signerType = value; return this; }
        public Integer getSignerRefId() { return signerRefId; }
        public BasicSignerConfig setSignerRefId(Integer value) { this.signerRefId = value; return this; }
        public String getSignerRefText() { return signerRefText; }
        public BasicSignerConfig setSignerRefText(String value) { this.signerRefText = value; return this; }
        public Short getActionType() { return actionType; }
        public BasicSignerConfig setActionType(Short value) { this.actionType = value; return this; }
        public Integer getOrderIndex() { return orderIndex; }
        public BasicSignerConfig setOrderIndex(Integer value) { this.orderIndex = value; return this; }
    }

    public static class WorkFlowProfile
    {
        public Integer id = null;
        public String name = null;
        public String fullName = null;
        public String email = null;
        public Integer departmentId = null;
        public String avatar = null;
        public String telephone = null;
        public Date birthday = null;
        public Integer confirmStatus = null;
        public String confirmStatusText = null;
        public Date signAt = null;
        public Long signedFileId = null;
        public Integer originalFileId = null;
        public String signedFileName = null;
        public Boolean isSigned = null;
        public String signStatusText = null;
        
        public Integer getId() { return id; }
        public WorkFlowProfile setId(Integer value) { this.id = value; return this; }
        public String getName() { return name; }
        public WorkFlowProfile setName(String value) { this.name = value; return this; }
        public String getFullName() { return fullName; }
        public WorkFlowProfile setFullName(String value) { this.fullName = value; return this; }
        public String getEmail() { return email; }
        public WorkFlowProfile setEmail(String value) { this.email = value; return this; }
        public Integer getDepartmentId() { return departmentId; }
        public WorkFlowProfile setDepartmentId(Integer value) { this.departmentId = value; return this; }
        public String getAvatar() { return avatar; }
        public WorkFlowProfile setAvatar(String value) { this.avatar = value; return this; }
        public String getTelephone() { return telephone; }
        public WorkFlowProfile setTelephone(String value) { this.telephone = value; return this; }
        public Date getBirthday() { return birthday; }
        public WorkFlowProfile setBirthday(Date value) { this.birthday = value; return this; }
        public Integer getConfirmStatus() { return confirmStatus; }
        public WorkFlowProfile setConfirmStatus(Integer value) { this.confirmStatus = value; return this; }
        public String getConfirmStatusText() { return confirmStatusText; }
        public WorkFlowProfile setConfirmStatusText(String value) { this.confirmStatusText = value; return this; }
        public Date getSignAt() { return signAt; }
        public WorkFlowProfile setSignAt(Date value) { this.signAt = value; return this; }
        public Long getSignedFileId() { return signedFileId; }
        public WorkFlowProfile setSignedFileId(Long value) { this.signedFileId = value; return this; }
        public Integer getOriginalFileId() { return originalFileId; }
        public WorkFlowProfile setOriginalFileId(Integer value) { this.originalFileId = value; return this; }
        public String getSignedFileName() { return signedFileName; }
        public WorkFlowProfile setSignedFileName(String value) { this.signedFileName = value; return this; }
        public Boolean getIsSigned() { return isSigned; }
        public WorkFlowProfile setIsSigned(Boolean value) { this.isSigned = value; return this; }
        public String getSignStatusText() { return signStatusText; }
        public WorkFlowProfile setSignStatusText(String value) { this.signStatusText = value; return this; }
    }

    public static class Roles
    {
        public Integer id = null;
        @StringLength(50)
        public String name = null;

        public Date createdAt = null;
        public Date deletedAt = null;
        public Date updatedAt = null;
        public Integer updatedBy = null;
        public Integer deletedBy = null;
        public Integer createdBy = null;
        @Ignore()
        public ArrayList<String> permission = null;
        
        public Integer getId() { return id; }
        public Roles setId(Integer value) { this.id = value; return this; }
        public String getName() { return name; }
        public Roles setName(String value) { this.name = value; return this; }
        public Date getCreatedAt() { return createdAt; }
        public Roles setCreatedAt(Date value) { this.createdAt = value; return this; }
        public Date getDeletedAt() { return deletedAt; }
        public Roles setDeletedAt(Date value) { this.deletedAt = value; return this; }
        public Date getUpdatedAt() { return updatedAt; }
        public Roles setUpdatedAt(Date value) { this.updatedAt = value; return this; }
        public Integer getUpdatedBy() { return updatedBy; }
        public Roles setUpdatedBy(Integer value) { this.updatedBy = value; return this; }
        public Integer getDeletedBy() { return deletedBy; }
        public Roles setDeletedBy(Integer value) { this.deletedBy = value; return this; }
        public Integer getCreatedBy() { return createdBy; }
        public Roles setCreatedBy(Integer value) { this.createdBy = value; return this; }
        public ArrayList<String> getPermission() { return permission; }
        public Roles setPermission(ArrayList<String> value) { this.permission = value; return this; }
    }

    public static class Category extends CreateCategoryModel
    {
        public Integer id = null;
        public Integer level = null;
        public String key = null;
        public Integer sortOrder = null;
        public Date lastUpdate = null;
        @Ignore()
        public ArrayList<Category> children = null;
        
        public Integer getId() { return id; }
        public Category setId(Integer value) { this.id = value; return this; }
        public Integer getLevel() { return level; }
        public Category setLevel(Integer value) { this.level = value; return this; }
        public String getKey() { return key; }
        public Category setKey(String value) { this.key = value; return this; }
        public Integer getSortOrder() { return sortOrder; }
        public Category setSortOrder(Integer value) { this.sortOrder = value; return this; }
        public Date getLastUpdate() { return lastUpdate; }
        public Category setLastUpdate(Date value) { this.lastUpdate = value; return this; }
        public ArrayList<Category> getChildren() { return children; }
        public Category setChildren(ArrayList<Category> value) { this.children = value; return this; }
    }

    public static class CreateCategoryModel
    {
        public String name = null;
        public String description = null;
        public CategoryTypes type = null;
        public Boolean isParty = null;
        @Ignore()
        public ArrayList<Integer> childList = null;
        
        public String getName() { return name; }
        public CreateCategoryModel setName(String value) { this.name = value; return this; }
        public String getDescription() { return description; }
        public CreateCategoryModel setDescription(String value) { this.description = value; return this; }
        public CategoryTypes getType() { return type; }
        public CreateCategoryModel setType(CategoryTypes value) { this.type = value; return this; }
        public Boolean getIsParty() { return isParty; }
        public CreateCategoryModel setIsParty(Boolean value) { this.isParty = value; return this; }
        public ArrayList<Integer> getChildList() { return childList; }
        public CreateCategoryModel setChildList(ArrayList<Integer> value) { this.childList = value; return this; }
    }

    public static enum CategoryTypes
    {
        Department,
        PartyGroup,
        DocGroup,
        DocType,
        IssuingAgency,
        Status,
        Subjects,
        Workflow,
        WorkStatus,
        StepStatus,
        SignStatus;
    }

    public static class SimpleDocumentRelation
    {
        public Integer id = null;
        public String title = null;
        public String documentCode = null;
        public Date publicationDate = null;
        public Boolean isSequentialSigning = null;
        public String statusText = null;
        public Integer documentTypeId = null;
        
        public Integer getId() { return id; }
        public SimpleDocumentRelation setId(Integer value) { this.id = value; return this; }
        public String getTitle() { return title; }
        public SimpleDocumentRelation setTitle(String value) { this.title = value; return this; }
        public String getDocumentCode() { return documentCode; }
        public SimpleDocumentRelation setDocumentCode(String value) { this.documentCode = value; return this; }
        public Date getPublicationDate() { return publicationDate; }
        public SimpleDocumentRelation setPublicationDate(Date value) { this.publicationDate = value; return this; }
        public Boolean getIsSequentialSigning() { return isSequentialSigning; }
        public SimpleDocumentRelation setIsSequentialSigning(Boolean value) { this.isSequentialSigning = value; return this; }
        public String getStatusText() { return statusText; }
        public SimpleDocumentRelation setStatusText(String value) { this.statusText = value; return this; }
        public Integer getDocumentTypeId() { return documentTypeId; }
        public SimpleDocumentRelation setDocumentTypeId(Integer value) { this.documentTypeId = value; return this; }
    }

}

Java GetWorkflowStepRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /WorkflowStep/by-workflow HTTP/1.1 
Host: etc-api.vsmlab.vn 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	code: 0,
	message: String,
	data: 
	[
		{
			departments: 
			[
				{
					id: 0,
					level: 0,
					key: String,
					sortOrder: 0,
					lastUpdate: "0001-01-01T00:00:00.0000000+07:06",
					children: 
					[
						{
							id: 0,
							level: 0,
							key: String,
							sortOrder: 0,
							lastUpdate: "0001-01-01T00:00:00.0000000+07:06",
							children: 
							[
								{
									id: 0,
									level: 0,
									key: String,
									sortOrder: 0,
									lastUpdate: "0001-01-01T00:00:00.0000000+07:06",
									name: String,
									description: String,
									type: Department,
									isParty: False,
									childList: 
									[
										0
									]
								}
							],
							name: String,
							description: String,
							type: Department,
							isParty: False,
							childList: 
							[
								0
							]
						}
					],
					name: String,
					description: String,
					type: Department,
					isParty: False,
					childList: 
					[
						0
					]
				}
			],
			coDepartments: 
			[
				{
					id: 0,
					level: 0,
					key: String,
					sortOrder: 0,
					lastUpdate: "0001-01-01T00:00:00.0000000+07:06",
					children: 
					[
						{
							id: 0,
							level: 0,
							key: String,
							sortOrder: 0,
							lastUpdate: "0001-01-01T00:00:00.0000000+07:06",
							children: 
							[
								{
									id: 0,
									level: 0,
									key: String,
									sortOrder: 0,
									lastUpdate: "0001-01-01T00:00:00.0000000+07:06",
									name: String,
									description: String,
									type: Department,
									isParty: False,
									childList: 
									[
										0
									]
								}
							],
							name: String,
							description: String,
							type: Department,
							isParty: False,
							childList: 
							[
								0
							]
						}
					],
					name: String,
					description: String,
					type: Department,
					isParty: False,
					childList: 
					[
						0
					]
				}
			],
			basisDocuments: 
			[
				{
					id: 0,
					title: String,
					documentCode: String,
					publicationDate: "0001-01-01T00:00:00.0000000+07:06",
					isSequentialSigning: False,
					statusText: String,
					documentTypeId: 0
				}
			],
			referenceDocuments: 
			[
				{
					id: 0,
					title: String,
					documentCode: String,
					publicationDate: "0001-01-01T00:00:00.0000000+07:06",
					isSequentialSigning: False,
					statusText: String,
					documentTypeId: 0
				}
			],
			mainAssignees: 
			[
				{
					id: 0,
					name: String,
					fullName: String,
					email: String,
					departmentId: 0,
					avatar: String,
					telephone: String,
					birthday: "0001-01-01T00:00:00.0000000+07:06",
					confirmStatus: 0,
					confirmStatusText: String,
					signAt: "0001-01-01T00:00:00.0000000+07:06",
					signedFileId: 0,
					originalFileId: 0,
					signedFileName: String,
					isSigned: False,
					signStatusText: String
				}
			],
			supportingAssignees: 
			[
				{
					id: 0,
					name: String,
					fullName: String,
					email: String,
					departmentId: 0,
					avatar: String,
					telephone: String,
					birthday: "0001-01-01T00:00:00.0000000+07:06",
					confirmStatus: 0,
					confirmStatusText: String,
					signAt: "0001-01-01T00:00:00.0000000+07:06",
					signedFileId: 0,
					originalFileId: 0,
					signedFileName: String,
					isSigned: False,
					signStatusText: String
				}
			],
			statusKey: String,
			statusText: String,
			canRead: False,
			canWrite: False,
			canUpload: False,
			reasonReturn: String,
			returnDate: "0001-01-01T00:00:00.0000000+07:06",
			id: 0,
			workflowId: 0,
			stepOrder: 0,
			statusId: 0,
			stepName: String,
			isRequired: False,
			slaLegalValue: 0,
			slaLegalIsByDay: False,
			slaInternalValue: 0,
			slaInternalIsByDay: False,
			requireAttachment: False,
			isUsingForm: False,
			description: String,
			createdBy: 0,
			departmentIds: 
			[
				0
			],
			mainAssigneeIds: 
			[
				0
			],
			coDepartmentIds: 
			[
				0
			],
			supportingAssigneeIds: 
			[
				0
			],
			stepBasisDocumentIds: 
			[
				0
			],
			attachedDocuments: 
			[
				{
					id: 0,
					documentCode: String,
					title: String,
					isSequentialSigning: False,
					pendingSignFile: 
					{
						id: 0,
						uploadedFile: String,
						subDocumentId: 0,
						stepId: 0,
						code: 0,
						fileName: String,
						filekey: String,
						fileUrl: String,
						checksum: String,
						eTag: String,
						fileSize: 0
					},
					originalFile: 
					{
						id: 0,
						uploadedFile: String,
						subDocumentId: 0,
						stepId: 0,
						code: 0,
						fileName: String,
						filekey: String,
						fileUrl: String,
						checksum: String,
						eTag: String,
						fileSize: 0
					},
					signerConfigs: 
					[
						{
							profile: 
							{
								id: 0,
								name: String,
								fullName: String,
								email: String,
								departmentId: 0,
								avatar: String,
								telephone: String,
								birthday: "0001-01-01T00:00:00.0000000+07:06",
								confirmStatus: 0,
								confirmStatusText: String,
								signAt: "0001-01-01T00:00:00.0000000+07:06",
								signedFileId: 0,
								originalFileId: 0,
								signedFileName: String,
								isSigned: False,
								signStatusText: String
							},
							role: 
							{
								id: 0,
								name: String,
								createdAt: "0001-01-01T00:00:00.0000000+07:06",
								deletedAt: "0001-01-01T00:00:00.0000000+07:06",
								updatedAt: "0001-01-01T00:00:00.0000000+07:06",
								updatedBy: 0,
								deletedBy: 0,
								createdBy: 0,
								permission: 
								[
									String
								]
							},
							id: 0,
							documentId: 0,
							stepId: 0,
							subDocumentId: 0,
							departmentId: 0,
							signerType: 0,
							signerRefId: 0,
							signerRefText: String,
							actionType: 0,
							orderIndex: 0
						}
					]
				}
			]
		}
	]
}