/* Options: Date: 2025-12-06 13:08:05 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: StatDocByGroupRequest.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; enum DocumentSearchStage { All, AllProcessing, Draft, PendingApproval, IsRevisionRequested, PendingCompilation, PendingReport, Published, Active, InActive, } class SimpleSearchFilter implements IConvertible { String? title; int? groupId; int? subjectId; bool? isUrgent; DocumentSearchStage? documentSearchStage; bool? isInternal; DateTime? fromDate; DateTime? toDate; int? typeId; int? statusId; int? issuingAgencyId; bool? isParty; SimpleSearchFilter({this.title,this.groupId,this.subjectId,this.isUrgent,this.documentSearchStage,this.isInternal,this.fromDate,this.toDate,this.typeId,this.statusId,this.issuingAgencyId,this.isParty}); SimpleSearchFilter.fromJson(Map json) { fromMap(json); } fromMap(Map json) { title = json['title']; groupId = json['groupId']; subjectId = json['subjectId']; isUrgent = json['isUrgent']; documentSearchStage = JsonConverters.fromJson(json['documentSearchStage'],'DocumentSearchStage',context!); isInternal = json['isInternal']; fromDate = JsonConverters.fromJson(json['fromDate'],'DateTime',context!); toDate = JsonConverters.fromJson(json['toDate'],'DateTime',context!); typeId = json['typeId']; statusId = json['statusId']; issuingAgencyId = json['issuingAgencyId']; isParty = json['isParty']; return this; } Map toJson() => { 'title': title, 'groupId': groupId, 'subjectId': subjectId, 'isUrgent': isUrgent, 'documentSearchStage': JsonConverters.toJson(documentSearchStage,'DocumentSearchStage',context!), 'isInternal': isInternal, 'fromDate': JsonConverters.toJson(fromDate,'DateTime',context!), 'toDate': JsonConverters.toJson(toDate,'DateTime',context!), 'typeId': typeId, 'statusId': statusId, 'issuingAgencyId': issuingAgencyId, 'isParty': isParty }; getTypeName() => "SimpleSearchFilter"; TypeContext? context = _ctx; } abstract class IResponseRequest { int? code; String? message; } class DocumentSearchResultItem implements IConvertible { String? title; String? description; String? owner; int? documentPolicyId; int? updateDocumentId; DateTime? effectBeginDate; DateTime? effectEndDate; int? issuingAgencyId; int? subjectId; String? signBy; DateTime? signDate; DateTime? updatedAt; int? statusId; bool? isInternal; String? documentNumber; String? documentCode; bool? isUrgent; int? id; String? reasonReturn; int? accountId; int? approverId; // @StringLength(500) String? updatedBy; // @StringLength(500) String? createdBy; bool? isParty; bool? isRevisionRequested; bool? isPrivate; int? departmentId; DateTime? publicationDate; int? processStatusId; int? documentTypeId; int? documentGroupId; String? accountName; String? acceptAccountName; String? documentGroupText; String? processStatusText; String? documentTypeText; String? departmentText; String? statusText; String? issuingAgencyText; String? subjectText; String? comment; String? submitComment; String? fullFile; String? parthFile; bool? isActive; int? stepOrder; int? stepCount; DocumentSearchResultItem({this.title,this.description,this.owner,this.documentPolicyId,this.updateDocumentId,this.effectBeginDate,this.effectEndDate,this.issuingAgencyId,this.subjectId,this.signBy,this.signDate,this.updatedAt,this.statusId,this.isInternal,this.documentNumber,this.documentCode,this.isUrgent,this.id,this.reasonReturn,this.accountId,this.approverId,this.updatedBy,this.createdBy,this.isParty,this.isRevisionRequested,this.isPrivate,this.departmentId,this.publicationDate,this.processStatusId,this.documentTypeId,this.documentGroupId,this.accountName,this.acceptAccountName,this.documentGroupText,this.processStatusText,this.documentTypeText,this.departmentText,this.statusText,this.issuingAgencyText,this.subjectText,this.comment,this.submitComment,this.fullFile,this.parthFile,this.isActive,this.stepOrder,this.stepCount}); DocumentSearchResultItem.fromJson(Map json) { fromMap(json); } fromMap(Map json) { title = json['title']; description = json['description']; owner = json['owner']; documentPolicyId = json['documentPolicyId']; updateDocumentId = json['updateDocumentId']; effectBeginDate = JsonConverters.fromJson(json['effectBeginDate'],'DateTime',context!); effectEndDate = JsonConverters.fromJson(json['effectEndDate'],'DateTime',context!); issuingAgencyId = json['issuingAgencyId']; subjectId = json['subjectId']; signBy = json['signBy']; signDate = JsonConverters.fromJson(json['signDate'],'DateTime',context!); updatedAt = JsonConverters.fromJson(json['updatedAt'],'DateTime',context!); statusId = json['statusId']; isInternal = json['isInternal']; documentNumber = json['documentNumber']; documentCode = json['documentCode']; isUrgent = json['isUrgent']; id = json['id']; reasonReturn = json['reasonReturn']; accountId = json['accountId']; approverId = json['approverId']; updatedBy = json['updatedBy']; createdBy = json['createdBy']; isParty = json['isParty']; isRevisionRequested = json['isRevisionRequested']; isPrivate = json['isPrivate']; departmentId = json['departmentId']; publicationDate = JsonConverters.fromJson(json['publicationDate'],'DateTime',context!); processStatusId = json['processStatusId']; documentTypeId = json['documentTypeId']; documentGroupId = json['documentGroupId']; accountName = json['accountName']; acceptAccountName = json['acceptAccountName']; documentGroupText = json['documentGroupText']; processStatusText = json['processStatusText']; documentTypeText = json['documentTypeText']; departmentText = json['departmentText']; statusText = json['statusText']; issuingAgencyText = json['issuingAgencyText']; subjectText = json['subjectText']; comment = json['comment']; submitComment = json['submitComment']; fullFile = json['fullFile']; parthFile = json['parthFile']; isActive = json['isActive']; stepOrder = json['stepOrder']; stepCount = json['stepCount']; return this; } Map toJson() => { 'title': title, 'description': description, 'owner': owner, 'documentPolicyId': documentPolicyId, 'updateDocumentId': updateDocumentId, 'effectBeginDate': JsonConverters.toJson(effectBeginDate,'DateTime',context!), 'effectEndDate': JsonConverters.toJson(effectEndDate,'DateTime',context!), 'issuingAgencyId': issuingAgencyId, 'subjectId': subjectId, 'signBy': signBy, 'signDate': JsonConverters.toJson(signDate,'DateTime',context!), 'updatedAt': JsonConverters.toJson(updatedAt,'DateTime',context!), 'statusId': statusId, 'isInternal': isInternal, 'documentNumber': documentNumber, 'documentCode': documentCode, 'isUrgent': isUrgent, 'id': id, 'reasonReturn': reasonReturn, 'accountId': accountId, 'approverId': approverId, 'updatedBy': updatedBy, 'createdBy': createdBy, 'isParty': isParty, 'isRevisionRequested': isRevisionRequested, 'isPrivate': isPrivate, 'departmentId': departmentId, 'publicationDate': JsonConverters.toJson(publicationDate,'DateTime',context!), 'processStatusId': processStatusId, 'documentTypeId': documentTypeId, 'documentGroupId': documentGroupId, 'accountName': accountName, 'acceptAccountName': acceptAccountName, 'documentGroupText': documentGroupText, 'processStatusText': processStatusText, 'documentTypeText': documentTypeText, 'departmentText': departmentText, 'statusText': statusText, 'issuingAgencyText': issuingAgencyText, 'subjectText': subjectText, 'comment': comment, 'submitComment': submitComment, 'fullFile': fullFile, 'parthFile': parthFile, 'isActive': isActive, 'stepOrder': stepOrder, 'stepCount': stepCount }; getTypeName() => "DocumentSearchResultItem"; TypeContext? context = _ctx; } class SearchResponse implements IResponseRequest, IConvertible { int? totalCount; int? code; List? data; String? message; SearchResponse({this.totalCount,this.code,this.data,this.message}); SearchResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { totalCount = json['totalCount']; code = json['code']; data = JsonConverters.fromJson(json['data'],'List',context!); message = json['message']; return this; } Map toJson() => { 'totalCount': totalCount, 'code': code, 'data': JsonConverters.toJson(data,'List',context!), 'message': message }; getTypeName() => "SearchResponse"; TypeContext? context = _ctx; } // @Route("/document/stat-search-by-group", "POST") class StatDocByGroupRequest extends SimpleSearchFilter implements IReturn, IPost, IConvertible { StatDocByGroupRequest(); StatDocByGroupRequest.fromJson(Map json) : super.fromJson(json); fromMap(Map json) { super.fromMap(json); return this; } Map toJson() => super.toJson(); createResponse() => SearchResponse(); getResponseTypeName() => "SearchResponse"; getTypeName() => "StatDocByGroupRequest"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'etc_api.vsmlab.vn', types: { 'DocumentSearchStage': TypeInfo(TypeOf.Enum, enumValues:DocumentSearchStage.values), 'SimpleSearchFilter': TypeInfo(TypeOf.Class, create:() => SimpleSearchFilter()), 'IResponseRequest': TypeInfo(TypeOf.Interface), 'DocumentSearchResultItem': TypeInfo(TypeOf.Class, create:() => DocumentSearchResultItem()), 'SearchResponse': TypeInfo(TypeOf.Class, create:() => SearchResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'StatDocByGroupRequest': TypeInfo(TypeOf.Class, create:() => StatDocByGroupRequest()), });