using System;
using System.Collections.Generic;
using BO.AppServer.Metadata.Enums;
using Quadarax.Foundation.Core.Data.Interface.Entity;

namespace BO.AppServer.Metadata.Dto
{
    #region *** Document - Base ***

    public class DocumentBaseDto : BoDto
    {
        public string Name { get; set; }
        public DocumentStatusEnum Status { get; set; }
    }

    #endregion

    #region *** Document - Create ***

    public class DocumentCDto : Dto, ICreateDto
    {
        public string Name { get; set; }

        public DocumentCDto(){}
        public DocumentCDto(string name)
        {
            Name = name;
        }
    }

    #endregion

    #region *** Document - Update ***

    internal class DocumentUDto : DocumentBaseDto, IUpdateDto
    {
    }

    #endregion

    #region *** Document - Read ***

    public class DocumentRDto : DocumentBaseDto, IReadDto
    {
        public DateTime? LastDownloaded { get; set; }
        public BoAuditDto Audit { get; set;}

        public int PresetCreditCost { get; set;}
        public bool PresetWatermark { get; set;}
        public int PresetQuality { get; set;}
        public string PresetProcessProfile { get; set;}
        public bool PresetTest { get; set;}

        public IEnumerable<ArtifactRDto> Artifacts { get; set;}
        public IEnumerable<DocumentStatusHistoryRDto> History { get; set;}
    }

    #endregion

    #region *** Document - Delete ***

    internal class DocumentDDto : BoDto, IDeleteDto
    {
    }

    #endregion
}
