using Quadarax.Foundation.Core.Data.Interface.Entity;

namespace BO.AppServer.Metadata.Dto
{
    #region *** BillingPlan - Create ***

    public class BillingPlanBaseDto : BoDto
    {
        public string Name { get; set; }
        public string Code { get; set; }
        public string Description { get; set; }
        public int PstinitialCredits { get; set; }
        public int PstcreditsPerItem { get; set; }
        public bool Pstwatermark { get; set; }
        public int Pstquality { get; set; }
        public string PstprocessProfile { get; set; }
        public bool Psttest { get; set; }
        public decimal Price { get; set; }
        public string Currency { get; set; }
        public bool IsCustom { get; set; }
        public bool IsHidden { get; set; }
        public bool IsEnabled { get; set; }
    }

    #endregion

    #region *** BillingPlan - Create ***

    public class BillingPlanCDto : Dto, ICreateDto
    {
        public string Name { get; set; }
        public string Code { get; set; }
        public string Description { get; set; }
        public int PstinitialCredits { get; set; }
        public int PstcreditsPerItem { get; set; }
        public bool Pstwatermark { get; set; }
        public int Pstquality { get; set; }
        public string PstprocessProfile { get; set; }
        public bool Psttest { get; set; }
        public decimal Price { get; set; }
        public string Currency { get; set; }
        public bool IsCustom { get; set; }
        public bool IsHidden { get; set; }
        public bool IsEnabled { get; set; }
    }

    #endregion

    #region *** BillingPlan - Update ***

    public class BillingPlanUDto : BillingPlanBaseDto, IUpdateDto
    {
    }

    #endregion

    #region *** BillingPlan - Read ***

    public class BillingPlanRDto : BillingPlanBaseDto, IReadDto
    {
        public BoAuditDto Audit { get; }
        public int PSTInitCredits { get; }
        public decimal PSTPrize { get; }
        public string PSTCurrency { get; }
    }

    #endregion

    #region *** BillingPlan - Delete ***

    internal class BillingPlanDDto : BoDto, IDeleteDto
    {
    }

    #endregion
}
