/* Options: Date: 2026-02-04 10:28:56 Version: 6.110 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://etc-api.vsmlab.vn //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: GetWorkflowStepRequest.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export enum CategoryTypes { Department = 'Department', PartyGroup = 'PartyGroup', DocGroup = 'DocGroup', DocType = 'DocType', IssuingAgency = 'IssuingAgency', Status = 'Status', Subjects = 'Subjects', Workflow = 'Workflow', WorkStatus = 'WorkStatus', StepStatus = 'StepStatus', SignStatus = 'SignStatus', } export class CreateCategoryModel { public name: string; public description: string; public type: CategoryTypes; public isParty: boolean; // @Ignore() public childList?: number[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class BasicUploadedFile { public fileName: string; public filekey: string; public fileUrl: string; public checksum: string; public eTag: string; public fileSize: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class UploadedFiles extends BasicUploadedFile { public id?: number; public uploadedFile: string; public subDocumentId?: number; public stepId?: number; public code: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class SimpleDocumentRelation { public id: number; public title: string; public documentCode: string; public publicationDate?: string; public isSequentialSigning?: boolean; public statusText?: string; public documentTypeId?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class BasicDocument { // @Required() public title: string; // @StringLength(4000) public description: string; // @StringLength(500) public owner?: string; public documentPolicyId?: number; public updateDocumentId?: number; public effectBeginDate?: string; public effectEndDate?: string; public issuingAgencyId?: number; public documentTypeId?: number; public documentGroupId?: number; public subjectId?: number; // @StringLength(500) public signBy?: string; public signDate?: string; public statusId?: number; public isInternal: boolean; public documentNumber?: string; public documentCode?: string; public isUrgent?: boolean; public scopeType?: number; public isActive?: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class BasicSignerConfig { public subDocumentId?: number; public departmentId?: number; public signerType: number; public signerRefId: number; // @Ignore() public signerRefText?: string; public actionType: number; public orderIndex: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class SignerConfig extends BasicSignerConfig { public id: number; public documentId: number; public stepId?: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class WorkFlowProfile { public id: number; public name?: string; public fullName?: string; public email?: string; public departmentId?: number; public avatar?: string; public telephone?: string; public birthday?: string; public confirmStatus?: number; public confirmStatusText?: string; public signAt?: string; public signedFileId?: number; public originalFileId?: number; public signedFileName?: string; public isSigned: boolean; public signStatusText?: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Roles { public id: number; // @StringLength(50) public name: string; public createdAt?: string; public deletedAt?: string; public updatedAt?: string; public updatedBy?: number; public deletedBy?: number; public createdBy?: number; // @Ignore() public permission?: string[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class SignerConfigDetail extends SignerConfig { public profile?: WorkFlowProfile; public role?: Roles; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class StepAttached { public id: number; public documentCode?: string; public title?: string; public isSequentialSigning?: boolean; public pendingSignFile?: UploadedFiles; public originalFile?: UploadedFiles; public signerConfigs?: SignerConfigDetail[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class WorkflowStep { public id: number; // @References("typeof(tvpl.data.Models.Document)") public workflowId: number; public stepOrder?: number; public statusId?: number; // @Required() // @StringLength(255) public stepName: string; // @Required() public isRequired: boolean; public slaLegalValue?: number; public slaLegalIsByDay?: boolean; public slaInternalValue?: number; public slaInternalIsByDay?: boolean; public requireAttachment: boolean; public isUsingForm?: boolean; // @Required() public description: string; public createdBy: number; // @Ignore() public departmentIds?: number[]; // @Ignore() public mainAssigneeIds?: number[]; // @Ignore() public coDepartmentIds?: number[]; // @Ignore() public supportingAssigneeIds?: number[]; // @Ignore() public stepBasisDocumentIds?: number[]; // @Ignore() public attachedDocuments?: StepAttached[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export interface IResponseRequest { code: number; message: string; } export class Category extends CreateCategoryModel { public id: number; public level: number; public key?: string; public sortOrder: number; public lastUpdate?: string; // @Ignore() public children: Category[]; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class WorkflowStepDetail extends WorkflowStep { public departments?: Category[]; public coDepartments?: Category[]; public basisDocuments?: SimpleDocumentRelation[]; public referenceDocuments?: SimpleDocumentRelation[]; public mainAssignees?: WorkFlowProfile[]; public supportingAssignees?: WorkFlowProfile[]; public statusKey?: string; public statusText?: string; // @Ignore() public canRead?: boolean; // @Ignore() public canWrite?: boolean; // @Ignore() public canUpload?: boolean; public reasonReturn?: string; public returnDate?: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class Document extends BasicDocument { public id: number; // @StringLength(500) public reasonReturn?: string; public accountId?: number; public deletedAt?: string; // @StringLength(500) public deletedBy?: string; // @StringLength(500) public updatedBy?: string; public createdAt?: string; // @StringLength(500) public createdBy?: string; public isParty?: boolean; public isRevisionRequested: boolean; public lastUpdatedAt?: string; public isPrivate?: boolean; public departmentId?: number; public publicationDate?: string; public processStatusId?: number; public fullTextSearchContent?: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class GetWorkflowStepResponse implements IResponseRequest { public code: number; public message: string; public data?: WorkflowStepDetail[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/WorkflowStep/by-workflow", "Get") export class GetWorkflowStepRequest implements IReturn { public workflowId: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'GetWorkflowStepRequest'; } public getMethod() { return 'GET'; } public createResponse() { return new GetWorkflowStepResponse(); } }