using System;
using System.Collections.Generic;
using Quadarax.Foundation.Core.Data.Interface.Entity;

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

    public class WorkspaceBaseDto : BoDto
    {
        public string Name { get; set; }
        public string Apipassword { get; set; }
        public string BillingPlanCode { get; set; }
    }

    #endregion

    #region *** Workspace - Create ***

    public class WorkspaceCDto : Dto, ICreateDto
    {
        public string AssignedUserName { get; set; }
        public string Name { get; set; }
        public string Apipassword { get; set; }
        public string BillingPlanCode { get; set; }
    }

    #endregion

    #region *** Workspace - Update ***

    public class WorkspaceUDto : WorkspaceBaseDto, IUpdateDto
    {
        public bool IsGold { get; set; }
    }

    #endregion

    #region *** Workspace - Read ***

    public class WorkspaceRDto : WorkspaceBaseDto, IReadDto
    {
        public Guid Apikey { get; set; }
        public decimal CreditAmount { get; set; }
        public IEnumerable<BillingInfoRDto> BillingInfos { get; set; }
        public int DocumentsCount { get; set; }
        public BoAuditDto Audit { get; set; }
        public IEnumerable<StructureRDto> Structures { get; set; }

        public string ApiKeyNormalized => Apikey.ToString("D");
    }

    #endregion

    #region *** Workspace - Delete ***

    internal class WorkspaceDDto : BoDto, IDeleteDto
    {
    }

    #endregion
}
