tvpl.api

<back to all web services

DocumentDetailRequest

Requires Authentication
The following routes are available for this service:
GET/document/detail
namespace tvpl.api.ServiceModel

open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    [<AllowNullLiteral>]
    type DocumentSearchResultItem() = 
        member val Title:String = null with get,set
        member val Description:String = null with get,set
        member val Owner:String = null with get,set
        member val DocumentPolicyId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val UpdateDocumentId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val EffectBeginDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val EffectEndDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val IssuingAgencyId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val SubjectId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val SignBy:String = null with get,set
        member val SignDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val UpdatedAt:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val StatusId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val IsInternal:Boolean = new Boolean() with get,set
        member val DocumentNumber:String = null with get,set
        member val DocumentCode:String = null with get,set
        member val IsUrgent:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val Id:Int32 = new Int32() with get,set
        member val ReasonReturn:String = null with get,set
        member val AccountId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val ApproverId:Nullable<Int32> = new Nullable<Int32>() with get,set
        [<StringLength(500)>]
        member val UpdatedBy:String = null with get,set

        [<StringLength(500)>]
        member val CreatedBy:String = null with get,set

        member val IsParty:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val IsRevisionRequested:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val IsPrivate:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val DepartmentId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val PublicationDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val ProcessStatusId:Int32 = new Int32() with get,set
        member val DocumentTypeId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val DocumentGroupId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val AccountName:String = null with get,set
        member val AcceptAccountName:String = null with get,set
        member val DocumentGroupText:String = null with get,set
        member val ProcessStatusText:String = null with get,set
        member val DocumentTypeText:String = null with get,set
        member val DepartmentText:String = null with get,set
        member val StatusText:String = null with get,set
        member val IssuingAgencyText:String = null with get,set
        member val SubjectText:String = null with get,set
        member val Comment:String = null with get,set
        member val SubmitComment:String = null with get,set
        member val FullFile:String = null with get,set
        member val ParthFile:String = null with get,set
        member val IsActive:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val StepOrder:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val StepCount:Nullable<Int32> = new Nullable<Int32>() with get,set

    [<AllowNullLiteral>]
    type BasicUploadedFile() = 
        member val FileName:String = null with get,set
        member val Filekey:String = null with get,set
        member val FileUrl:String = null with get,set
        member val Checksum:String = null with get,set
        member val ETag:String = null with get,set
        member val FileSize:Int64 = new Int64() with get,set

    type AccessType =
        | Public = 0
        | Restricted = 1

    [<AllowNullLiteral>]
    type UploadedFileModel() = 
        inherit BasicUploadedFile()
        member val Id:Int64 = new Int64() with get,set
        member val AccessType:AccessType = new AccessType() with get,set
        member val CreatedBy:Int32 = new Int32() with get,set
        member val CreatedDate:DateTime = new DateTime() with get,set

    [<AllowNullLiteral>]
    type UploadedFileAttach() = 
        inherit UploadedFileModel()
        member val FileType:String = null with get,set
        member val SubDocumentId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val StepId:Nullable<Int32> = new Nullable<Int32>() with get,set

    [<AllowNullLiteral>]
    type UserLogin() = 
        [<Required>]
        member val Name:String = null with get,set

    [<AllowNullLiteral>]
    type UserProfile() = 
        inherit UserLogin()
        member val Id:Int32 = new Int32() with get,set
        member val FullName:String = null with get,set
        member val Email:String = null with get,set
        member val DepartmentId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val PartyGroupId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val Avatar:String = null with get,set
        member val Telephone:String = null with get,set
        member val Birthday:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val CreatedAt:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val UpdatedAt:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val FailedLoginCount:Int32 = new Int32() with get,set
        [<Ignore>]
        member val Roles:ResizeArray<Int32> = new ResizeArray<Int32>() with get,set

        member val LastLoginDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set

    [<AllowNullLiteral>]
    type ApproversProfile() = 
        member val UserProfiles:ResizeArray<UserProfile> = new ResizeArray<UserProfile>() with get,set
        member val ProcessStatusId:Int32 = new Int32() with get,set
        member val ProcessTitle:String = null with get,set
        member val ActionButtonLabel:String = null with get,set
        member val ProcessDescription:String = null with get,set
        member val IsApprovalRequired:Boolean = new Boolean() with get,set
        member val IsFinalStep:Boolean = new Boolean() with get,set
        member val StepOrder:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type CurrentApprover() = 
        member val ApproverId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val Status:String = null with get,set
        member val ProcessStatusId:Int32 = new Int32() with get,set
        member val ProcessTitle:String = null with get,set
        member val ActionButtonLabel:String = null with get,set
        member val ProcessDescription:String = null with get,set
        member val IsApprovalRequired:Boolean = new Boolean() with get,set
        member val IsFinalStep:Boolean = new Boolean() with get,set
        member val StepOrder:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type SimpleDocumentRelation() = 
        member val Id:Int32 = new Int32() with get,set
        member val Title:String = null with get,set
        member val DocumentCode:String = null with get,set
        member val PublicationDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set

    [<AllowNullLiteral>]
    type DocumentDetail() = 
        inherit DocumentSearchResultItem()
        member val PartUploadedFile:UploadedFileAttach = null with get,set
        member val CompactUploadedFile:UploadedFileAttach = null with get,set
        member val AnalysisUploadedFile:UploadedFileAttach = null with get,set
        member val FullUploadedFile:UploadedFileAttach = null with get,set
        member val CreatedAt:DateTime = new DateTime() with get,set
        member val NextApprover:ApproversProfile = null with get,set
        member val CurrentApprover:CurrentApprover = null with get,set
        member val AttachFiles:ResizeArray<UploadedFileAttach> = new ResizeArray<UploadedFileAttach>() with get,set
        member val HasReadPermission:Boolean = new Boolean() with get,set
        member val CanGrantReadPermission:Boolean = new Boolean() with get,set
        member val BasisDocument:ResizeArray<SimpleDocumentRelation> = new ResizeArray<SimpleDocumentRelation>() with get,set
        member val BasisForDocument:ResizeArray<SimpleDocumentRelation> = new ResizeArray<SimpleDocumentRelation>() with get,set
        member val MainDocument:SimpleDocumentRelation = null with get,set
        member val ReferenceDocument:ResizeArray<SimpleDocumentRelation> = new ResizeArray<SimpleDocumentRelation>() with get,set
        member val ReferencedByDocument:ResizeArray<SimpleDocumentRelation> = new ResizeArray<SimpleDocumentRelation>() with get,set
        member val ReplacedDocument:ResizeArray<SimpleDocumentRelation> = new ResizeArray<SimpleDocumentRelation>() with get,set
        member val ReplacedByDocument:ResizeArray<SimpleDocumentRelation> = new ResizeArray<SimpleDocumentRelation>() with get,set
        member val ExpiredDocument:ResizeArray<SimpleDocumentRelation> = new ResizeArray<SimpleDocumentRelation>() with get,set
        member val ExpiredByDocument:ResizeArray<SimpleDocumentRelation> = new ResizeArray<SimpleDocumentRelation>() with get,set
        member val UpdateForDocument:SimpleDocumentRelation = null with get,set
        member val ScopeType:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val StepOrder:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type DocumentDetailResponse() = 
        member val Data:DocumentDetail = null with get,set
        member val Code:Int32 = new Int32() with get,set
        member val Message:String = null with get,set

    [<AllowNullLiteral>]
    type DocumentDetailRequest() = 
        member val Id:Int32 = new Int32() with get,set

F# DocumentDetailRequest DTOs

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

HTTP + JSV

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/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	data: 
	{
		partUploadedFile: 
		{
			fileType: String,
			subDocumentId: 0,
			stepId: 0,
			id: 0,
			accessType: Public,
			createdBy: 0,
			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,
			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,
			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,
			fileName: String,
			filekey: String,
			fileUrl: String,
			checksum: String,
			eTag: String,
			fileSize: 0
		},
		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,
				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
}