/* Options: Date: 2026-02-04 10:25:57 Version: 6.110 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://etc-api.vsmlab.vn //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: SignatureRequest.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; class BasicUploadedFile implements IConvertible { String? fileName; String? filekey; String? fileUrl; String? checksum; String? eTag; int? fileSize; BasicUploadedFile({this.fileName,this.filekey,this.fileUrl,this.checksum,this.eTag,this.fileSize}); BasicUploadedFile.fromJson(Map json) { fromMap(json); } fromMap(Map json) { fileName = json['fileName']; filekey = json['filekey']; fileUrl = json['fileUrl']; checksum = json['checksum']; eTag = json['eTag']; fileSize = json['fileSize']; return this; } Map toJson() => { 'fileName': fileName, 'filekey': filekey, 'fileUrl': fileUrl, 'checksum': checksum, 'eTag': eTag, 'fileSize': fileSize }; getTypeName() => "BasicUploadedFile"; TypeContext? context = _ctx; } class UploadedFiles extends BasicUploadedFile implements IConvertible { int? id; String? uploadedFile; int? subDocumentId; int? stepId; int? code; UploadedFiles({this.id,this.uploadedFile,this.subDocumentId,this.stepId,this.code}); UploadedFiles.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); id = json['id']; uploadedFile = json['uploadedFile']; subDocumentId = json['subDocumentId']; stepId = json['stepId']; code = json['code']; return this; } Map toJson() => super.toJson()..addAll({ 'id': id, 'uploadedFile': uploadedFile, 'subDocumentId': subDocumentId, 'stepId': stepId, 'code': code }); getTypeName() => "UploadedFiles"; TypeContext? context = _ctx; } abstract class IResponseRequest { int? code; String? message; } class DocumentSignLog implements IConvertible { int? id; int? documentId; int? subDocumentId; int? stepId; int? fileId; // @StringLength(50) String? signProvider; // @StringLength(100) String? certSerial; bool? isSuccess; // @StringLength(500) String? signMessage; int? signBy; DateTime? signAt; String? requestId; int? originalFileId; DateTime? effectBeginDate; DateTime? effectEndDate; DocumentSignLog({this.id,this.documentId,this.subDocumentId,this.stepId,this.fileId,this.signProvider,this.certSerial,this.isSuccess,this.signMessage,this.signBy,this.signAt,this.requestId,this.originalFileId,this.effectBeginDate,this.effectEndDate}); DocumentSignLog.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id']; documentId = json['documentId']; subDocumentId = json['subDocumentId']; stepId = json['stepId']; fileId = json['fileId']; signProvider = json['signProvider']; certSerial = json['certSerial']; isSuccess = json['isSuccess']; signMessage = json['signMessage']; signBy = json['signBy']; signAt = JsonConverters.fromJson(json['signAt'],'DateTime',context!); requestId = json['requestId']; originalFileId = json['originalFileId']; effectBeginDate = JsonConverters.fromJson(json['effectBeginDate'],'DateTime',context!); effectEndDate = JsonConverters.fromJson(json['effectEndDate'],'DateTime',context!); return this; } Map toJson() => { 'id': id, 'documentId': documentId, 'subDocumentId': subDocumentId, 'stepId': stepId, 'fileId': fileId, 'signProvider': signProvider, 'certSerial': certSerial, 'isSuccess': isSuccess, 'signMessage': signMessage, 'signBy': signBy, 'signAt': JsonConverters.toJson(signAt,'DateTime',context!), 'requestId': requestId, 'originalFileId': originalFileId, 'effectBeginDate': JsonConverters.toJson(effectBeginDate,'DateTime',context!), 'effectEndDate': JsonConverters.toJson(effectEndDate,'DateTime',context!) }; getTypeName() => "DocumentSignLog"; TypeContext? context = _ctx; } class SignatureResponse implements IResponseRequest, IConvertible { int? code; String? message; UploadedFiles? signedFile; DocumentSignLog? signLog; SignatureResponse({this.code,this.message,this.signedFile,this.signLog}); SignatureResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { code = json['code']; message = json['message']; signedFile = JsonConverters.fromJson(json['signedFile'],'UploadedFiles',context!); signLog = JsonConverters.fromJson(json['signLog'],'DocumentSignLog',context!); return this; } Map toJson() => { 'code': code, 'message': message, 'signedFile': JsonConverters.toJson(signedFile,'UploadedFiles',context!), 'signLog': JsonConverters.toJson(signLog,'DocumentSignLog',context!) }; getTypeName() => "SignatureResponse"; TypeContext? context = _ctx; } // @Route("/Signature", "POST") class SignatureRequest implements IReturn, IConvertible, IPost { int? fileId; int? originalFileId; int? workflowId; int? stepId; int? subDocumentId; SignatureRequest({this.fileId,this.originalFileId,this.workflowId,this.stepId,this.subDocumentId}); SignatureRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { fileId = json['fileId']; originalFileId = json['originalFileId']; workflowId = json['workflowId']; stepId = json['stepId']; subDocumentId = json['subDocumentId']; return this; } Map toJson() => { 'fileId': fileId, 'originalFileId': originalFileId, 'workflowId': workflowId, 'stepId': stepId, 'subDocumentId': subDocumentId }; createResponse() => SignatureResponse(); getResponseTypeName() => "SignatureResponse"; getTypeName() => "SignatureRequest"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'etc_api.vsmlab.vn', types: { 'BasicUploadedFile': TypeInfo(TypeOf.Class, create:() => BasicUploadedFile()), 'UploadedFiles': TypeInfo(TypeOf.Class, create:() => UploadedFiles()), 'IResponseRequest': TypeInfo(TypeOf.Interface), 'DocumentSignLog': TypeInfo(TypeOf.Class, create:() => DocumentSignLog()), 'SignatureResponse': TypeInfo(TypeOf.Class, create:() => SignatureResponse()), 'SignatureRequest': TypeInfo(TypeOf.Class, create:() => SignatureRequest()), });