// Code generated by go-swagger; DO NOT EDIT.

// All Code Copyright(c) 2018-2020 by Taxnexus, Inc.
// All rights reserved worldwide.
// Proprietary product; unlicensed use is not allowed

package workflow_models

// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command

import (
	"github.com/go-openapi/strfmt"
	"github.com/go-openapi/swag"
)

// Document Taxnexus Document
//
// swagger:model Document
type Document struct {

	// archived by ID
	ArchivedByID string `json:"ArchivedByID,omitempty"`

	// archived date
	ArchivedDate string `json:"ArchivedDate,omitempty"`

	// author ID
	AuthorID string `json:"AuthorID,omitempty"`

	// body
	// Format: byte
	Body strfmt.Base64 `json:"Body,omitempty"`

	// body length
	BodyLength int64 `json:"BodyLength,omitempty"`

	// comment count
	CommentCount int64 `json:"CommentCount,omitempty"`

	// connection ID
	ConnectionID string `json:"ConnectionID,omitempty"`

	// content asset ID
	ContentAssetID string `json:"ContentAssetID,omitempty"`

	// content modification date
	ContentModificationDate string `json:"ContentModificationDate,omitempty"`

	// content size
	ContentSize int64 `json:"ContentSize,omitempty"`

	// content type
	ContentType string `json:"ContentType,omitempty"`

	// content version document ID
	ContentVersionDocumentID string `json:"ContentVersionDocumentID,omitempty"`

	// contnet document ID
	ContnetDocumentID string `json:"ContnetDocumentID,omitempty"`

	// created by ID
	CreatedByID string `json:"CreatedByID,omitempty"`

	// created date
	CreatedDate string `json:"CreatedDate,omitempty"`

	// d date
	DDate string `json:"DDate,omitempty"`

	// description
	Description string `json:"Description,omitempty"`

	// developer name
	DeveloperName string `json:"DeveloperName,omitempty"`

	// discount
	Discount float64 `json:"Discount,omitempty"`

	// document
	// Format: byte
	Document strfmt.Base64 `json:"Document,omitempty"`

	// document ID
	DocumentID string `json:"DocumentID,omitempty"`

	// document sequence
	DocumentSequence int64 `json:"DocumentSequence,omitempty"`

	// field
	Field string `json:"Field,omitempty"`

	// file extension
	FileExtension string `json:"FileExtension,omitempty"`

	// file type
	FileType string `json:"FileType,omitempty"`

	// folder ID
	FolderID string `json:"FolderID,omitempty"`

	// grand total
	GrandTotal string `json:"GrandTotal,omitempty"`

	// ID
	ID string `json:"ID,omitempty"`

	// inserted by ID
	InsertedByID string `json:"InsertedByID,omitempty"`

	// is archived
	IsArchived bool `json:"IsArchived,omitempty"`

	// is body searchable
	IsBodySearchable bool `json:"IsBodySearchable,omitempty"`

	// is comment sub
	IsCommentSub bool `json:"IsCommentSub,omitempty"`

	// is document sub
	IsDocumentSub bool `json:"IsDocumentSub,omitempty"`

	// is internal use only
	IsInternalUseOnly bool `json:"IsInternalUseOnly,omitempty"`

	// is public
	IsPublic bool `json:"IsPublic,omitempty"`

	// is rich text
	IsRichText bool `json:"IsRichText,omitempty"`

	// keywords
	Keywords string `json:"Keywords,omitempty"`

	// last modified by ID
	LastModifiedByID string `json:"LastModifiedByID,omitempty"`

	// last modified date
	LastModifiedDate string `json:"LastModifiedDate,omitempty"`

	// last viewed date
	LastViewedDate string `json:"LastViewedDate,omitempty"`

	// latst published version ID
	LatstPublishedVersionID string `json:"LatstPublishedVersionID,omitempty"`

	// like count
	LikeCount int64 `json:"LikeCount,omitempty"`

	// link URL
	LinkURL string `json:"LinkURL,omitempty"`

	// linked entity ID
	LinkedEntityID string `json:"LinkedEntityID,omitempty"`

	// name
	Name string `json:"Name,omitempty"`

	// namespace prefix
	NamespacePrefix string `json:"NamespacePrefix,omitempty"`

	// network scope
	NetworkScope string `json:"NetworkScope,omitempty"`

	// owner ID
	OwnerID string `json:"OwnerID,omitempty"`

	// parent ID
	ParentID string `json:"ParentID,omitempty"`

	// publishstatus
	Publishstatus string `json:"Publishstatus,omitempty"`

	// quote ID
	QuoteID string `json:"QuoteID,omitempty"`

	// related record ID
	RelatedRecordID string `json:"RelatedRecordID,omitempty"`

	// share type
	ShareType string `json:"ShareType,omitempty"`

	// sharing option
	SharingOption string `json:"SharingOption,omitempty"`

	// sharing privacy
	SharingPrivacy string `json:"SharingPrivacy,omitempty"`

	// title
	Title string `json:"Title,omitempty"`

	// type
	Type string `json:"Type,omitempty"`

	// URL
	URL string `json:"URL,omitempty"`

	// user ID
	UserID string `json:"UserID,omitempty"`

	// visibility
	Visibility string `json:"Visibility,omitempty"`
}

// Validate validates this document
func (m *Document) Validate(formats strfmt.Registry) error {
	return nil
}

// MarshalBinary interface implementation
func (m *Document) MarshalBinary() ([]byte, error) {
	if m == nil {
		return nil, nil
	}
	return swag.WriteJSON(m)
}

// UnmarshalBinary interface implementation
func (m *Document) UnmarshalBinary(b []byte) error {
	var res Document
	if err := swag.ReadJSON(b, &res); err != nil {
		return err
	}
	*m = res
	return nil
}
