/* Options: Date: 2026-02-04 11:50:35 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: SearchTemplateRequest.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; class PagingRequest implements IConvertible { int? page; int? limit; PagingRequest({this.page,this.limit}); PagingRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { page = json['page']; limit = json['limit']; return this; } Map toJson() => { 'page': page, 'limit': limit }; getTypeName() => "PagingRequest"; TypeContext? context = _ctx; } class BasicDocument implements IConvertible { // @required() String? title; // @StringLength(4000) String? description; // @StringLength(500) String? owner; int? documentPolicyId; int? updateDocumentId; DateTime? effectBeginDate; DateTime? effectEndDate; int? issuingAgencyId; int? documentTypeId; int? documentGroupId; int? subjectId; // @StringLength(500) String? signBy; DateTime? signDate; int? statusId; bool? isInternal; String? documentNumber; String? documentCode; bool? isUrgent; int? scopeType; bool? isActive; BasicDocument({this.title,this.description,this.owner,this.documentPolicyId,this.updateDocumentId,this.effectBeginDate,this.effectEndDate,this.issuingAgencyId,this.documentTypeId,this.documentGroupId,this.subjectId,this.signBy,this.signDate,this.statusId,this.isInternal,this.documentNumber,this.documentCode,this.isUrgent,this.scopeType,this.isActive}); BasicDocument.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']; documentTypeId = json['documentTypeId']; documentGroupId = json['documentGroupId']; subjectId = json['subjectId']; signBy = json['signBy']; signDate = JsonConverters.fromJson(json['signDate'],'DateTime',context!); statusId = json['statusId']; isInternal = json['isInternal']; documentNumber = json['documentNumber']; documentCode = json['documentCode']; isUrgent = json['isUrgent']; scopeType = json['scopeType']; isActive = json['isActive']; 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, 'documentTypeId': documentTypeId, 'documentGroupId': documentGroupId, 'subjectId': subjectId, 'signBy': signBy, 'signDate': JsonConverters.toJson(signDate,'DateTime',context!), 'statusId': statusId, 'isInternal': isInternal, 'documentNumber': documentNumber, 'documentCode': documentCode, 'isUrgent': isUrgent, 'scopeType': scopeType, 'isActive': isActive }; getTypeName() => "BasicDocument"; TypeContext? context = _ctx; } abstract class IResponseRequest { int? code; String? message; } class Document extends BasicDocument implements IConvertible { int? id; // @StringLength(500) String? reasonReturn; int? accountId; DateTime? deletedAt; // @StringLength(500) String? deletedBy; // @StringLength(500) String? updatedBy; DateTime? createdAt; // @StringLength(500) String? createdBy; bool? isParty; bool? isRevisionRequested; DateTime? lastUpdatedAt; bool? isPrivate; int? departmentId; DateTime? publicationDate; int? processStatusId; String? fullTextSearchContent; Document({this.id,this.reasonReturn,this.accountId,this.deletedAt,this.deletedBy,this.updatedBy,this.createdAt,this.createdBy,this.isParty,this.isRevisionRequested,this.lastUpdatedAt,this.isPrivate,this.departmentId,this.publicationDate,this.processStatusId,this.fullTextSearchContent}); Document.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); id = json['id']; reasonReturn = json['reasonReturn']; accountId = json['accountId']; deletedAt = JsonConverters.fromJson(json['deletedAt'],'DateTime',context!); deletedBy = json['deletedBy']; updatedBy = json['updatedBy']; createdAt = JsonConverters.fromJson(json['createdAt'],'DateTime',context!); createdBy = json['createdBy']; isParty = json['isParty']; isRevisionRequested = json['isRevisionRequested']; lastUpdatedAt = JsonConverters.fromJson(json['lastUpdatedAt'],'DateTime',context!); isPrivate = json['isPrivate']; departmentId = json['departmentId']; publicationDate = JsonConverters.fromJson(json['publicationDate'],'DateTime',context!); processStatusId = json['processStatusId']; fullTextSearchContent = json['fullTextSearchContent']; return this; } Map toJson() => super.toJson()..addAll({ 'id': id, 'reasonReturn': reasonReturn, 'accountId': accountId, 'deletedAt': JsonConverters.toJson(deletedAt,'DateTime',context!), 'deletedBy': deletedBy, 'updatedBy': updatedBy, 'createdAt': JsonConverters.toJson(createdAt,'DateTime',context!), 'createdBy': createdBy, 'isParty': isParty, 'isRevisionRequested': isRevisionRequested, 'lastUpdatedAt': JsonConverters.toJson(lastUpdatedAt,'DateTime',context!), 'isPrivate': isPrivate, 'departmentId': departmentId, 'publicationDate': JsonConverters.toJson(publicationDate,'DateTime',context!), 'processStatusId': processStatusId, 'fullTextSearchContent': fullTextSearchContent }); getTypeName() => "Document"; TypeContext? context = _ctx; } class DocumentTemplate implements IConvertible { int? id; // @required() String? title; String? description; bool? isActive; // @ignore() List? documentIds; // @ignore() List? documents; DocumentTemplate({this.id,this.title,this.description,this.isActive,this.documentIds,this.documents}); DocumentTemplate.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id']; title = json['title']; description = json['description']; isActive = json['isActive']; documentIds = JsonConverters.fromJson(json['documentIds'],'List',context!); documents = JsonConverters.fromJson(json['documents'],'List',context!); return this; } Map toJson() => { 'id': id, 'title': title, 'description': description, 'isActive': isActive, 'documentIds': JsonConverters.toJson(documentIds,'List',context!), 'documents': JsonConverters.toJson(documents,'List',context!) }; getTypeName() => "DocumentTemplate"; TypeContext? context = _ctx; } class SearchDocumentTemplateResponse implements IResponseRequest, IConvertible { int? code; String? message; List? data; int? totalCount; SearchDocumentTemplateResponse({this.code,this.message,this.data,this.totalCount}); SearchDocumentTemplateResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { code = json['code']; message = json['message']; data = JsonConverters.fromJson(json['data'],'List',context!); totalCount = json['totalCount']; return this; } Map toJson() => { 'code': code, 'message': message, 'data': JsonConverters.toJson(data,'List',context!), 'totalCount': totalCount }; getTypeName() => "SearchDocumentTemplateResponse"; TypeContext? context = _ctx; } // @Route("/document-template/search", "GET") class SearchTemplateRequest extends PagingRequest implements IReturn, IConvertible, IGet { String? title; SearchTemplateRequest({this.title}); SearchTemplateRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); title = json['title']; return this; } Map toJson() => super.toJson()..addAll({ 'title': title }); createResponse() => SearchDocumentTemplateResponse(); getResponseTypeName() => "SearchDocumentTemplateResponse"; getTypeName() => "SearchTemplateRequest"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'etc_api.vsmlab.vn', types: { 'PagingRequest': TypeInfo(TypeOf.Class, create:() => PagingRequest()), 'BasicDocument': TypeInfo(TypeOf.Class, create:() => BasicDocument()), 'IResponseRequest': TypeInfo(TypeOf.Interface), 'Document': TypeInfo(TypeOf.Class, create:() => Document()), 'DocumentTemplate': TypeInfo(TypeOf.Class, create:() => DocumentTemplate()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'SearchDocumentTemplateResponse': TypeInfo(TypeOf.Class, create:() => SearchDocumentTemplateResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'SearchTemplateRequest': TypeInfo(TypeOf.Class, create:() => SearchTemplateRequest()), });