using Application.Abstractions.Messaging;

namespace Application.Features.Config.Update
{
    public sealed record Command(
        Request.BasicConfigDto? Basic = null,
        Request.ImagesConfigDto? Images = null,
        Request.MetaConfigDto? Meta = null,
        Request.CompanyConfigDto? Company = null,
        Request.AccountConfigDto? Account = null,
        Request.EmailTemplateConfigDto? EmailTemplate = null,
        Request.ExternalApiConfigDto? External = null,
        Request.PaymentConfigDto? Payment = null,
        Command.ImagesDeleteFlags? ImagesDelete = null
    ) : ICommand {
        public sealed record ImagesDeleteFlags(
            bool Favicon = false,
            bool LogoSquare = false,
            bool LogoHorizontal = false,
            bool OgDefault = false,
            bool TwitterImage = false,
            bool AppleTouchIcon = false,
            bool AppIcon192 = false,
            bool AppIcon512 = false
       );
    }
}