/**
 * BoldSign API
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 1
 * 
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

import { RequestFile } from './models';
import { DocumentCcDetails } from './documentCcDetails';
import { DocumentSenderDetail } from './documentSenderDetail';
import { DocumentSignerDetails } from './documentSignerDetails';

export class Document {
    'documentId'?: string | null;
    'senderDetail'?: DocumentSenderDetail;
    'ccDetails'?: Array<DocumentCcDetails> | null;
    'createdDate'?: number;
    'activityDate'?: number;
    'activityBy'?: string | null;
    'messageTitle'?: string | null;
    'status'?: Document.StatusEnum;
    'signerDetails'?: Array<DocumentSignerDetails> | null;
    'expiryDate'?: number;
    'enableSigningOrder'?: boolean;
    'isDeleted'?: boolean;
    'labels'?: Array<string> | null;
    'cursor'?: number;
    'brandId'?: string | null;
    'scheduledSendTime'?: number | null;
    'inEditingMode'?: boolean;
    'displayStatus'?: string | null;

    static discriminator: string | undefined = undefined;

    static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
        {
            "name": "documentId",
            "baseName": "documentId",
            "type": "string"
        },
        {
            "name": "senderDetail",
            "baseName": "senderDetail",
            "type": "DocumentSenderDetail"
        },
        {
            "name": "ccDetails",
            "baseName": "ccDetails",
            "type": "Array<DocumentCcDetails>"
        },
        {
            "name": "createdDate",
            "baseName": "createdDate",
            "type": "number"
        },
        {
            "name": "activityDate",
            "baseName": "activityDate",
            "type": "number"
        },
        {
            "name": "activityBy",
            "baseName": "activityBy",
            "type": "string"
        },
        {
            "name": "messageTitle",
            "baseName": "messageTitle",
            "type": "string"
        },
        {
            "name": "status",
            "baseName": "status",
            "type": "Document.StatusEnum"
        },
        {
            "name": "signerDetails",
            "baseName": "signerDetails",
            "type": "Array<DocumentSignerDetails>"
        },
        {
            "name": "expiryDate",
            "baseName": "expiryDate",
            "type": "number"
        },
        {
            "name": "enableSigningOrder",
            "baseName": "enableSigningOrder",
            "type": "boolean"
        },
        {
            "name": "isDeleted",
            "baseName": "isDeleted",
            "type": "boolean"
        },
        {
            "name": "labels",
            "baseName": "labels",
            "type": "Array<string>"
        },
        {
            "name": "cursor",
            "baseName": "cursor",
            "type": "number"
        },
        {
            "name": "brandId",
            "baseName": "brandId",
            "type": "string"
        },
        {
            "name": "scheduledSendTime",
            "baseName": "scheduledSendTime",
            "type": "number"
        },
        {
            "name": "inEditingMode",
            "baseName": "inEditingMode",
            "type": "boolean"
        },
        {
            "name": "displayStatus",
            "baseName": "displayStatus",
            "type": "string"
        }    ];

    static getAttributeTypeMap() {
        return Document.attributeTypeMap;
    }
}

export namespace Document {
    export enum StatusEnum {
        InProgress = <any> 'InProgress',
        Completed = <any> 'Completed',
        Declined = <any> 'Declined',
        Expired = <any> 'Expired',
        Revoked = <any> 'Revoked',
        Draft = <any> 'Draft',
        Scheduled = <any> 'Scheduled'
    }
}
