tvpl.api

<back to all web services

UpdateDocumentRequest

Requires Authentication
The following routes are available for this service:
POST/document/update
import 'package:servicestack/servicestack.dart';

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<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'];
        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<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,
        '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;
}

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 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<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        id = json['id'];
        uploadedFile = json['uploadedFile'];
        subDocumentId = json['subDocumentId'];
        stepId = json['stepId'];
        code = json['code'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'id': id,
        'uploadedFile': uploadedFile,
        'subDocumentId': subDocumentId,
        'stepId': stepId,
        'code': code
    });

    getTypeName() => "UploadedFiles";
    TypeContext? context = _ctx;
}

class UpdateDocumentRequest extends BasicDocument implements IConvertible
{
    UploadedFiles? partUploadedFile;
    UploadedFiles? compactUploadedFile;
    UploadedFiles? analysisUploadedFile;
    UploadedFiles? fullUploadedFile;
    List<UploadedFiles>? attachFiles;
    List<int>? basisDocumentId;
    List<int>? referenceDocumentId;
    List<int>? replacedDocumentId;
    List<int>? expiredDocumentId;
    int? id;

    UpdateDocumentRequest({this.partUploadedFile,this.compactUploadedFile,this.analysisUploadedFile,this.fullUploadedFile,this.attachFiles,this.basisDocumentId,this.referenceDocumentId,this.replacedDocumentId,this.expiredDocumentId,this.id});
    UpdateDocumentRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        partUploadedFile = JsonConverters.fromJson(json['partUploadedFile'],'UploadedFiles',context!);
        compactUploadedFile = JsonConverters.fromJson(json['compactUploadedFile'],'UploadedFiles',context!);
        analysisUploadedFile = JsonConverters.fromJson(json['analysisUploadedFile'],'UploadedFiles',context!);
        fullUploadedFile = JsonConverters.fromJson(json['fullUploadedFile'],'UploadedFiles',context!);
        attachFiles = JsonConverters.fromJson(json['attachFiles'],'List<UploadedFiles>',context!);
        basisDocumentId = JsonConverters.fromJson(json['basisDocumentId'],'List<int>',context!);
        referenceDocumentId = JsonConverters.fromJson(json['referenceDocumentId'],'List<int>',context!);
        replacedDocumentId = JsonConverters.fromJson(json['replacedDocumentId'],'List<int>',context!);
        expiredDocumentId = JsonConverters.fromJson(json['expiredDocumentId'],'List<int>',context!);
        id = json['id'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'partUploadedFile': JsonConverters.toJson(partUploadedFile,'UploadedFiles',context!),
        'compactUploadedFile': JsonConverters.toJson(compactUploadedFile,'UploadedFiles',context!),
        'analysisUploadedFile': JsonConverters.toJson(analysisUploadedFile,'UploadedFiles',context!),
        'fullUploadedFile': JsonConverters.toJson(fullUploadedFile,'UploadedFiles',context!),
        'attachFiles': JsonConverters.toJson(attachFiles,'List<UploadedFiles>',context!),
        'basisDocumentId': JsonConverters.toJson(basisDocumentId,'List<int>',context!),
        'referenceDocumentId': JsonConverters.toJson(referenceDocumentId,'List<int>',context!),
        'replacedDocumentId': JsonConverters.toJson(replacedDocumentId,'List<int>',context!),
        'expiredDocumentId': JsonConverters.toJson(expiredDocumentId,'List<int>',context!),
        'id': id
    });

    getTypeName() => "UpdateDocumentRequest";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'etc_api.vsmlab.vn', types: <String, TypeInfo> {
    'BasicDocument': TypeInfo(TypeOf.Class, create:() => BasicDocument()),
    '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()),
    'UploadedFiles': TypeInfo(TypeOf.Class, create:() => UploadedFiles()),
    'UpdateDocumentRequest': TypeInfo(TypeOf.Class, create:() => UpdateDocumentRequest()),
    'List<UploadedFiles>': TypeInfo(TypeOf.Class, create:() => <UploadedFiles>[]),
});

Dart UpdateDocumentRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv

HTTP + CSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /document/update HTTP/1.1 
Host: etc-api.vsmlab.vn 
Accept: text/csv
Content-Type: text/csv
Content-Length: length

{"partUploadedFile":{"id":0,"uploadedFile":"String","subDocumentId":0,"stepId":0,"code":0,"fileName":"String","filekey":"String","fileUrl":"String","checksum":"String","eTag":"String","fileSize":0},"compactUploadedFile":{"id":0,"uploadedFile":"String","subDocumentId":0,"stepId":0,"code":0,"fileName":"String","filekey":"String","fileUrl":"String","checksum":"String","eTag":"String","fileSize":0},"analysisUploadedFile":{"id":0,"uploadedFile":"String","subDocumentId":0,"stepId":0,"code":0,"fileName":"String","filekey":"String","fileUrl":"String","checksum":"String","eTag":"String","fileSize":0},"fullUploadedFile":{"id":0,"uploadedFile":"String","subDocumentId":0,"stepId":0,"code":0,"fileName":"String","filekey":"String","fileUrl":"String","checksum":"String","eTag":"String","fileSize":0},"attachFiles":[{"id":0,"uploadedFile":"String","subDocumentId":0,"stepId":0,"code":0,"fileName":"String","filekey":"String","fileUrl":"String","checksum":"String","eTag":"String","fileSize":0}],"basisDocumentId":[0],"referenceDocumentId":[0],"replacedDocumentId":[0],"expiredDocumentId":[0],"id":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,"documentTypeId":0,"documentGroupId":0,"subjectId":0,"signBy":"String","signDate":"0001-01-01T00:00:00.0000000+07:06","statusId":0,"isInternal":false,"documentNumber":"String","documentCode":"String","isUrgent":false,"scopeType":0,"isActive":false}
HTTP/1.1 200 OK
Content-Type: text/csv
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"}