| GET | /document/detail |
|---|
import 'package:servicestack/servicestack.dart';
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<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> 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<String, dynamic> 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 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<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
fileName = json['fileName'];
filekey = json['filekey'];
fileUrl = json['fileUrl'];
checksum = json['checksum'];
eTag = json['eTag'];
fileSize = json['fileSize'];
return this;
}
Map<String, dynamic> toJson() => {
'fileName': fileName,
'filekey': filekey,
'fileUrl': fileUrl,
'checksum': checksum,
'eTag': eTag,
'fileSize': fileSize
};
getTypeName() => "BasicUploadedFile";
TypeContext? context = _ctx;
}
enum AccessType
{
Public,
Restricted,
}
class UploadedFileModel extends BasicUploadedFile implements IConvertible
{
int? id;
AccessType? accessType;
int? createdBy;
DateTime? createdDate;
UploadedFileModel({this.id,this.accessType,this.createdBy,this.createdDate});
UploadedFileModel.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
id = json['id'];
accessType = JsonConverters.fromJson(json['accessType'],'AccessType',context!);
createdBy = json['createdBy'];
createdDate = JsonConverters.fromJson(json['createdDate'],'DateTime',context!);
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'id': id,
'accessType': JsonConverters.toJson(accessType,'AccessType',context!),
'createdBy': createdBy,
'createdDate': JsonConverters.toJson(createdDate,'DateTime',context!)
});
getTypeName() => "UploadedFileModel";
TypeContext? context = _ctx;
}
class UploadedFileAttach extends UploadedFileModel implements IConvertible
{
String? fileType;
int? subDocumentId;
int? stepId;
UploadedFileAttach({this.fileType,this.subDocumentId,this.stepId});
UploadedFileAttach.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
fileType = json['fileType'];
subDocumentId = json['subDocumentId'];
stepId = json['stepId'];
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'fileType': fileType,
'subDocumentId': subDocumentId,
'stepId': stepId
});
getTypeName() => "UploadedFileAttach";
TypeContext? context = _ctx;
}
class UserLogin implements IConvertible
{
// @required()
String? name;
UserLogin({this.name});
UserLogin.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
name = json['name'];
return this;
}
Map<String, dynamic> toJson() => {
'name': name
};
getTypeName() => "UserLogin";
TypeContext? context = _ctx;
}
class UserProfile extends UserLogin implements IConvertible
{
int? id;
String? fullName;
String? email;
int? departmentId;
int? partyGroupId;
String? avatar;
String? telephone;
DateTime? birthday;
DateTime? createdAt;
DateTime? updatedAt;
int? failedLoginCount;
// @ignore()
List<int>? roles;
DateTime? lastLoginDate;
UserProfile({this.id,this.fullName,this.email,this.departmentId,this.partyGroupId,this.avatar,this.telephone,this.birthday,this.createdAt,this.updatedAt,this.failedLoginCount,this.roles,this.lastLoginDate});
UserProfile.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
id = json['id'];
fullName = json['fullName'];
email = json['email'];
departmentId = json['departmentId'];
partyGroupId = json['partyGroupId'];
avatar = json['avatar'];
telephone = json['telephone'];
birthday = JsonConverters.fromJson(json['birthday'],'DateTime',context!);
createdAt = JsonConverters.fromJson(json['createdAt'],'DateTime',context!);
updatedAt = JsonConverters.fromJson(json['updatedAt'],'DateTime',context!);
failedLoginCount = json['failedLoginCount'];
roles = JsonConverters.fromJson(json['roles'],'List<int>',context!);
lastLoginDate = JsonConverters.fromJson(json['lastLoginDate'],'DateTime',context!);
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'id': id,
'fullName': fullName,
'email': email,
'departmentId': departmentId,
'partyGroupId': partyGroupId,
'avatar': avatar,
'telephone': telephone,
'birthday': JsonConverters.toJson(birthday,'DateTime',context!),
'createdAt': JsonConverters.toJson(createdAt,'DateTime',context!),
'updatedAt': JsonConverters.toJson(updatedAt,'DateTime',context!),
'failedLoginCount': failedLoginCount,
'roles': JsonConverters.toJson(roles,'List<int>',context!),
'lastLoginDate': JsonConverters.toJson(lastLoginDate,'DateTime',context!)
});
getTypeName() => "UserProfile";
TypeContext? context = _ctx;
}
class ApproversProfile implements IConvertible
{
List<UserProfile>? userProfiles;
int? processStatusId;
String? processTitle;
String? actionButtonLabel;
String? processDescription;
bool? isApprovalRequired;
bool? isFinalStep;
int? stepOrder;
ApproversProfile({this.userProfiles,this.processStatusId,this.processTitle,this.actionButtonLabel,this.processDescription,this.isApprovalRequired,this.isFinalStep,this.stepOrder});
ApproversProfile.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
userProfiles = JsonConverters.fromJson(json['userProfiles'],'List<UserProfile>',context!);
processStatusId = json['processStatusId'];
processTitle = json['processTitle'];
actionButtonLabel = json['actionButtonLabel'];
processDescription = json['processDescription'];
isApprovalRequired = json['isApprovalRequired'];
isFinalStep = json['isFinalStep'];
stepOrder = json['stepOrder'];
return this;
}
Map<String, dynamic> toJson() => {
'userProfiles': JsonConverters.toJson(userProfiles,'List<UserProfile>',context!),
'processStatusId': processStatusId,
'processTitle': processTitle,
'actionButtonLabel': actionButtonLabel,
'processDescription': processDescription,
'isApprovalRequired': isApprovalRequired,
'isFinalStep': isFinalStep,
'stepOrder': stepOrder
};
getTypeName() => "ApproversProfile";
TypeContext? context = _ctx;
}
class CurrentApprover implements IConvertible
{
int? approverId;
String? status;
int? processStatusId;
String? processTitle;
String? actionButtonLabel;
String? processDescription;
bool? isApprovalRequired;
bool? isFinalStep;
int? stepOrder;
CurrentApprover({this.approverId,this.status,this.processStatusId,this.processTitle,this.actionButtonLabel,this.processDescription,this.isApprovalRequired,this.isFinalStep,this.stepOrder});
CurrentApprover.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
approverId = json['approverId'];
status = json['status'];
processStatusId = json['processStatusId'];
processTitle = json['processTitle'];
actionButtonLabel = json['actionButtonLabel'];
processDescription = json['processDescription'];
isApprovalRequired = json['isApprovalRequired'];
isFinalStep = json['isFinalStep'];
stepOrder = json['stepOrder'];
return this;
}
Map<String, dynamic> toJson() => {
'approverId': approverId,
'status': status,
'processStatusId': processStatusId,
'processTitle': processTitle,
'actionButtonLabel': actionButtonLabel,
'processDescription': processDescription,
'isApprovalRequired': isApprovalRequired,
'isFinalStep': isFinalStep,
'stepOrder': stepOrder
};
getTypeName() => "CurrentApprover";
TypeContext? context = _ctx;
}
class SimpleDocumentRelation implements IConvertible
{
int? id;
String? title;
String? documentCode;
DateTime? publicationDate;
SimpleDocumentRelation({this.id,this.title,this.documentCode,this.publicationDate});
SimpleDocumentRelation.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
title = json['title'];
documentCode = json['documentCode'];
publicationDate = JsonConverters.fromJson(json['publicationDate'],'DateTime',context!);
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'title': title,
'documentCode': documentCode,
'publicationDate': JsonConverters.toJson(publicationDate,'DateTime',context!)
};
getTypeName() => "SimpleDocumentRelation";
TypeContext? context = _ctx;
}
class DocumentDetail extends DocumentSearchResultItem implements IConvertible
{
UploadedFileAttach? partUploadedFile;
UploadedFileAttach? compactUploadedFile;
UploadedFileAttach? analysisUploadedFile;
UploadedFileAttach? fullUploadedFile;
DateTime? createdAt;
ApproversProfile? nextApprover;
CurrentApprover? currentApprover;
List<UploadedFileAttach>? attachFiles;
bool? hasReadPermission;
bool? canGrantReadPermission;
List<SimpleDocumentRelation>? basisDocument;
List<SimpleDocumentRelation>? basisForDocument;
SimpleDocumentRelation? mainDocument;
List<SimpleDocumentRelation>? referenceDocument;
List<SimpleDocumentRelation>? referencedByDocument;
List<SimpleDocumentRelation>? replacedDocument;
List<SimpleDocumentRelation>? replacedByDocument;
List<SimpleDocumentRelation>? expiredDocument;
List<SimpleDocumentRelation>? expiredByDocument;
SimpleDocumentRelation? updateForDocument;
int? scopeType;
int? stepOrder;
DocumentDetail({this.partUploadedFile,this.compactUploadedFile,this.analysisUploadedFile,this.fullUploadedFile,this.createdAt,this.nextApprover,this.currentApprover,this.attachFiles,this.hasReadPermission,this.canGrantReadPermission,this.basisDocument,this.basisForDocument,this.mainDocument,this.referenceDocument,this.referencedByDocument,this.replacedDocument,this.replacedByDocument,this.expiredDocument,this.expiredByDocument,this.updateForDocument,this.scopeType,this.stepOrder});
DocumentDetail.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
partUploadedFile = JsonConverters.fromJson(json['partUploadedFile'],'UploadedFileAttach',context!);
compactUploadedFile = JsonConverters.fromJson(json['compactUploadedFile'],'UploadedFileAttach',context!);
analysisUploadedFile = JsonConverters.fromJson(json['analysisUploadedFile'],'UploadedFileAttach',context!);
fullUploadedFile = JsonConverters.fromJson(json['fullUploadedFile'],'UploadedFileAttach',context!);
createdAt = JsonConverters.fromJson(json['createdAt'],'DateTime',context!);
nextApprover = JsonConverters.fromJson(json['nextApprover'],'ApproversProfile',context!);
currentApprover = JsonConverters.fromJson(json['currentApprover'],'CurrentApprover',context!);
attachFiles = JsonConverters.fromJson(json['attachFiles'],'List<UploadedFileAttach>',context!);
hasReadPermission = json['hasReadPermission'];
canGrantReadPermission = json['canGrantReadPermission'];
basisDocument = JsonConverters.fromJson(json['basisDocument'],'List<SimpleDocumentRelation>',context!);
basisForDocument = JsonConverters.fromJson(json['basisForDocument'],'List<SimpleDocumentRelation>',context!);
mainDocument = JsonConverters.fromJson(json['mainDocument'],'SimpleDocumentRelation',context!);
referenceDocument = JsonConverters.fromJson(json['referenceDocument'],'List<SimpleDocumentRelation>',context!);
referencedByDocument = JsonConverters.fromJson(json['referencedByDocument'],'List<SimpleDocumentRelation>',context!);
replacedDocument = JsonConverters.fromJson(json['replacedDocument'],'List<SimpleDocumentRelation>',context!);
replacedByDocument = JsonConverters.fromJson(json['replacedByDocument'],'List<SimpleDocumentRelation>',context!);
expiredDocument = JsonConverters.fromJson(json['expiredDocument'],'List<SimpleDocumentRelation>',context!);
expiredByDocument = JsonConverters.fromJson(json['expiredByDocument'],'List<SimpleDocumentRelation>',context!);
updateForDocument = JsonConverters.fromJson(json['updateForDocument'],'SimpleDocumentRelation',context!);
scopeType = json['scopeType'];
stepOrder = json['stepOrder'];
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'partUploadedFile': JsonConverters.toJson(partUploadedFile,'UploadedFileAttach',context!),
'compactUploadedFile': JsonConverters.toJson(compactUploadedFile,'UploadedFileAttach',context!),
'analysisUploadedFile': JsonConverters.toJson(analysisUploadedFile,'UploadedFileAttach',context!),
'fullUploadedFile': JsonConverters.toJson(fullUploadedFile,'UploadedFileAttach',context!),
'createdAt': JsonConverters.toJson(createdAt,'DateTime',context!),
'nextApprover': JsonConverters.toJson(nextApprover,'ApproversProfile',context!),
'currentApprover': JsonConverters.toJson(currentApprover,'CurrentApprover',context!),
'attachFiles': JsonConverters.toJson(attachFiles,'List<UploadedFileAttach>',context!),
'hasReadPermission': hasReadPermission,
'canGrantReadPermission': canGrantReadPermission,
'basisDocument': JsonConverters.toJson(basisDocument,'List<SimpleDocumentRelation>',context!),
'basisForDocument': JsonConverters.toJson(basisForDocument,'List<SimpleDocumentRelation>',context!),
'mainDocument': JsonConverters.toJson(mainDocument,'SimpleDocumentRelation',context!),
'referenceDocument': JsonConverters.toJson(referenceDocument,'List<SimpleDocumentRelation>',context!),
'referencedByDocument': JsonConverters.toJson(referencedByDocument,'List<SimpleDocumentRelation>',context!),
'replacedDocument': JsonConverters.toJson(replacedDocument,'List<SimpleDocumentRelation>',context!),
'replacedByDocument': JsonConverters.toJson(replacedByDocument,'List<SimpleDocumentRelation>',context!),
'expiredDocument': JsonConverters.toJson(expiredDocument,'List<SimpleDocumentRelation>',context!),
'expiredByDocument': JsonConverters.toJson(expiredByDocument,'List<SimpleDocumentRelation>',context!),
'updateForDocument': JsonConverters.toJson(updateForDocument,'SimpleDocumentRelation',context!),
'scopeType': scopeType,
'stepOrder': stepOrder
});
getTypeName() => "DocumentDetail";
TypeContext? context = _ctx;
}
class DocumentDetailResponse implements IResponseRequest, IConvertible
{
DocumentDetail? data;
int? code;
String? message;
DocumentDetailResponse({this.data,this.code,this.message});
DocumentDetailResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
data = JsonConverters.fromJson(json['data'],'DocumentDetail',context!);
code = json['code'];
message = json['message'];
return this;
}
Map<String, dynamic> toJson() => {
'data': JsonConverters.toJson(data,'DocumentDetail',context!),
'code': code,
'message': message
};
getTypeName() => "DocumentDetailResponse";
TypeContext? context = _ctx;
}
class DocumentDetailRequest implements IConvertible
{
int? id;
DocumentDetailRequest({this.id});
DocumentDetailRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
return this;
}
Map<String, dynamic> toJson() => {
'id': id
};
getTypeName() => "DocumentDetailRequest";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'etc_api.vsmlab.vn', types: <String, TypeInfo> {
'DocumentSearchResultItem': TypeInfo(TypeOf.Class, create:() => DocumentSearchResultItem()),
'BasicUploadedFile': TypeInfo(TypeOf.Class, create:() => BasicUploadedFile()),
'AccessType': TypeInfo(TypeOf.Enum, enumValues:AccessType.values),
'UploadedFileModel': TypeInfo(TypeOf.Class, create:() => UploadedFileModel()),
'UploadedFileAttach': TypeInfo(TypeOf.Class, create:() => UploadedFileAttach()),
'UserLogin': TypeInfo(TypeOf.Class, create:() => UserLogin()),
'UserProfile': TypeInfo(TypeOf.Class, create:() => UserProfile()),
'ApproversProfile': TypeInfo(TypeOf.Class, create:() => ApproversProfile()),
'List<UserProfile>': TypeInfo(TypeOf.Class, create:() => <UserProfile>[]),
'CurrentApprover': TypeInfo(TypeOf.Class, create:() => CurrentApprover()),
'SimpleDocumentRelation': TypeInfo(TypeOf.Class, create:() => SimpleDocumentRelation()),
'DocumentDetail': TypeInfo(TypeOf.Class, create:() => DocumentDetail()),
'List<UploadedFileAttach>': TypeInfo(TypeOf.Class, create:() => <UploadedFileAttach>[]),
'List<SimpleDocumentRelation>': TypeInfo(TypeOf.Class, create:() => <SimpleDocumentRelation>[]),
'DocumentDetailResponse': TypeInfo(TypeOf.Class, create:() => DocumentDetailResponse()),
'DocumentDetailRequest': TypeInfo(TypeOf.Class, create:() => DocumentDetailRequest()),
});
Dart DocumentDetailRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /document/detail HTTP/1.1 Host: etc-api.vsmlab.vn Accept: text/jsonl
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length
{"data":{"partUploadedFile":{"fileType":"String","subDocumentId":0,"stepId":0,"id":0,"accessType":"Public","createdBy":0,"createdDate":"0001-01-01T00:00:00.0000000+07:06","fileName":"String","filekey":"String","fileUrl":"String","checksum":"String","eTag":"String","fileSize":0},"compactUploadedFile":{"fileType":"String","subDocumentId":0,"stepId":0,"id":0,"accessType":"Public","createdBy":0,"createdDate":"0001-01-01T00:00:00.0000000+07:06","fileName":"String","filekey":"String","fileUrl":"String","checksum":"String","eTag":"String","fileSize":0},"analysisUploadedFile":{"fileType":"String","subDocumentId":0,"stepId":0,"id":0,"accessType":"Public","createdBy":0,"createdDate":"0001-01-01T00:00:00.0000000+07:06","fileName":"String","filekey":"String","fileUrl":"String","checksum":"String","eTag":"String","fileSize":0},"fullUploadedFile":{"fileType":"String","subDocumentId":0,"stepId":0,"id":0,"accessType":"Public","createdBy":0,"createdDate":"0001-01-01T00:00:00.0000000+07:06","fileName":"String","filekey":"String","fileUrl":"String","checksum":"String","eTag":"String","fileSize":0},"createdAt":"0001-01-01T00:00:00.0000000+07:06","nextApprover":{"userProfiles":[{"id":0,"fullName":"String","email":"String","departmentId":0,"partyGroupId":0,"avatar":"String","telephone":"String","birthday":"0001-01-01T00:00:00.0000000+07:06","createdAt":"0001-01-01T00:00:00.0000000+07:06","updatedAt":"0001-01-01T00:00:00.0000000+07:06","failedLoginCount":0,"roles":[0],"lastLoginDate":"0001-01-01T00:00:00.0000000+07:06","name":"String"}],"processStatusId":0,"processTitle":"String","actionButtonLabel":"String","processDescription":"String","isApprovalRequired":false,"isFinalStep":false,"stepOrder":0},"currentApprover":{"approverId":0,"status":"String","processStatusId":0,"processTitle":"String","actionButtonLabel":"String","processDescription":"String","isApprovalRequired":false,"isFinalStep":false,"stepOrder":0},"attachFiles":[{"fileType":"String","subDocumentId":0,"stepId":0,"id":0,"accessType":"Public","createdBy":0,"createdDate":"0001-01-01T00:00:00.0000000+07:06","fileName":"String","filekey":"String","fileUrl":"String","checksum":"String","eTag":"String","fileSize":0}],"hasReadPermission":false,"canGrantReadPermission":false,"basisDocument":[{"id":0,"title":"String","documentCode":"String","publicationDate":"0001-01-01T00:00:00.0000000+07:06"}],"basisForDocument":[{"id":0,"title":"String","documentCode":"String","publicationDate":"0001-01-01T00:00:00.0000000+07:06"}],"mainDocument":{"id":0,"title":"String","documentCode":"String","publicationDate":"0001-01-01T00:00:00.0000000+07:06"},"referenceDocument":[{"id":0,"title":"String","documentCode":"String","publicationDate":"0001-01-01T00:00:00.0000000+07:06"}],"referencedByDocument":[{"id":0,"title":"String","documentCode":"String","publicationDate":"0001-01-01T00:00:00.0000000+07:06"}],"replacedDocument":[{"id":0,"title":"String","documentCode":"String","publicationDate":"0001-01-01T00:00:00.0000000+07:06"}],"replacedByDocument":[{"id":0,"title":"String","documentCode":"String","publicationDate":"0001-01-01T00:00:00.0000000+07:06"}],"expiredDocument":[{"id":0,"title":"String","documentCode":"String","publicationDate":"0001-01-01T00:00:00.0000000+07:06"}],"expiredByDocument":[{"id":0,"title":"String","documentCode":"String","publicationDate":"0001-01-01T00:00:00.0000000+07:06"}],"updateForDocument":{"id":0,"title":"String","documentCode":"String","publicationDate":"0001-01-01T00:00:00.0000000+07:06"},"scopeType":0,"stepOrder":0,"title":"String","description":"String","owner":"String","documentPolicyId":0,"updateDocumentId":0,"effectBeginDate":"0001-01-01T00:00:00.0000000+07:06","effectEndDate":"0001-01-01T00:00:00.0000000+07:06","issuingAgencyId":0,"subjectId":0,"signBy":"String","signDate":"0001-01-01T00:00:00.0000000+07:06","updatedAt":"0001-01-01T00:00:00.0000000+07:06","statusId":0,"isInternal":false,"documentNumber":"String","documentCode":"String","isUrgent":false,"id":0,"reasonReturn":"String","accountId":0,"approverId":0,"updatedBy":"String","createdBy":"String","isParty":false,"isRevisionRequested":false,"isPrivate":false,"departmentId":0,"publicationDate":"0001-01-01T00:00:00.0000000+07:06","processStatusId":0,"documentTypeId":0,"documentGroupId":0,"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":"String","isActive":false,"stepOrder":0,"stepCount":0},"code":0,"message":"String"}