/* Options: Date: 2025-12-06 13:03:52 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: AdvanceCreateDocument.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } 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 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 enum AccessType { Public = 'Public', Restricted = 'Restricted', } export interface IResponseRequest { code: number; message: string; } export class DocumentSearchResultItem { public title?: string; public description: string; public owner?: string; public documentPolicyId?: number; public updateDocumentId?: number; public effectBeginDate?: string; public effectEndDate?: string; public issuingAgencyId?: number; public subjectId?: number; public signBy?: string; public signDate?: string; public updatedAt?: string; public statusId?: number; public isInternal: boolean; public documentNumber?: string; public documentCode?: string; public isUrgent?: boolean; public id: number; public reasonReturn?: string; public accountId?: number; public approverId?: number; // @StringLength(500) public updatedBy?: string; // @StringLength(500) public createdBy?: string; public isParty?: boolean; public isRevisionRequested?: boolean; public isPrivate?: boolean; public departmentId?: number; public publicationDate?: string; public processStatusId: number; public documentTypeId?: number; public documentGroupId?: number; public accountName?: string; public acceptAccountName?: string; public documentGroupText?: string; public processStatusText?: string; public documentTypeText?: string; public departmentText?: string; public statusText?: string; public issuingAgencyText?: string; public subjectText?: string; public comment?: string; public submitComment?: string; public fullFile?: string; public parthFile?: string; public isActive?: boolean; public stepOrder?: number; public stepCount?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class UploadedFileModel extends BasicUploadedFile { public id: number; public accessType: AccessType; public createdBy: number; public createdDate: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class UploadedFileAttach extends UploadedFileModel { public fileType: string; public subDocumentId?: number; public stepId?: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class UserLogin { // @Required() public name: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class UserProfile extends UserLogin { public id: number; public fullName?: string; public email?: string; public departmentId?: number; public partyGroupId?: number; public avatar?: string; public telephone?: string; public birthday?: string; public createdAt?: string; public updatedAt?: string; public failedLoginCount: number; // @Ignore() public roles: number[]; public lastLoginDate?: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class ApproversProfile { public userProfiles?: UserProfile[]; public processStatusId: number; public processTitle: string; public actionButtonLabel?: string; public processDescription: string; public isApprovalRequired: boolean; public isFinalStep: boolean; public stepOrder: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class CurrentApprover { public approverId?: number; public status?: string; public processStatusId: number; public processTitle: string; public actionButtonLabel?: string; public processDescription: string; public isApprovalRequired: boolean; public isFinalStep: boolean; public stepOrder: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class SimpleDocumentRelation { public id: number; public title: string; public documentCode: string; public publicationDate?: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class DocumentDetail extends DocumentSearchResultItem { public partUploadedFile?: UploadedFileAttach; public compactUploadedFile?: UploadedFileAttach; public analysisUploadedFile?: UploadedFileAttach; public fullUploadedFile?: UploadedFileAttach; public createdAt: string; public nextApprover?: ApproversProfile; public currentApprover?: CurrentApprover; public attachFiles?: UploadedFileAttach[]; public hasReadPermission: boolean; public canGrantReadPermission: boolean; public basisDocument?: SimpleDocumentRelation[]; public basisForDocument?: SimpleDocumentRelation[]; public mainDocument?: SimpleDocumentRelation; public referenceDocument?: SimpleDocumentRelation[]; public referencedByDocument?: SimpleDocumentRelation[]; public replacedDocument?: SimpleDocumentRelation[]; public replacedByDocument?: SimpleDocumentRelation[]; public expiredDocument?: SimpleDocumentRelation[]; public expiredByDocument?: SimpleDocumentRelation[]; public updateForDocument?: SimpleDocumentRelation; public scopeType?: number; public stepOrder: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class DocumentDetailResponse implements IResponseRequest { public data: DocumentDetail; public code: number; public message: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/document/advance-create", "POST") export class AdvanceCreateDocument extends BasicDocument implements IReturn { public partUploadedFile?: UploadedFiles; public compactUploadedFile?: UploadedFiles; public analysisUploadedFile?: UploadedFiles; public fullUploadedFile?: UploadedFiles; public attachFiles?: UploadedFiles[]; public basisDocumentId?: number[]; public referenceDocumentId?: number[]; public replacedDocumentId?: number[]; public expiredDocumentId?: number[]; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } public getTypeName() { return 'AdvanceCreateDocument'; } public getMethod() { return 'POST'; } public createResponse() { return new DocumentDetailResponse(); } }