using JSMR.Application.Circles.Queries.Search;
using JSMR.Application.Creators.Queries.Search.Contracts;
using JSMR.Application.Tags.Queries.Search.Contracts;
using JSMR.Application.VoiceWorks.Queries.Search;

namespace JSMR.Application.Logging;

public static class CriteriaLoggingExtensions
{
    //public static object ToLogObject(this VoiceWorkSearchCriteria criteria)
    //{
    //    return new LogObjectBuilder()
    //       .AddIfNotEmpty("Keywords", criteria.Keywords)
    //       .AddIfNotEmpty("Title", criteria.Title)
    //       .AddIfNotEmpty("Circle", criteria.Circle)
    //       .Add("Locale", criteria.Locale)
    //       .AddIfNotEmpty("AgeRatings", criteria.AgeRatings)
    //       .AddIfNotEmpty("Languages", criteria.SupportedLanguages)
    //       .AddIfNotEmpty("TagIds", criteria.TagIds, preview: 5)
    //       .AddIfNotEmpty("CreatorIds", criteria.CreatorIds, preview: 5)
    //       .Add("IncludeAllTags", criteria.IncludeAllTags ? true : null)
    //       .Add("IncludeAllCreators", criteria.IncludeAllCreators ? true : null)
    //       .Add("MinDownloads", criteria.MinDownloads)
    //       .Add("MaxDownloads", criteria.MaxDownloads)
    //       .Add("ReleaseDateStart", criteria.ReleaseDateStart)
    //       .Add("ReleaseDateEnd", criteria.ReleaseDateEnd)
    //       .Build();
    //}

    //public static object ToLogObject(this CircleSearchCriteria criteria)
    //{
    //    return new LogObjectBuilder()
    //       .AddIfNotEmpty("Name", criteria.Name)
    //       .AddIfNotEmpty("Status", criteria.Status?.ToString())
    //       .Build();
    //}

    //public static object ToLogObject(this TagSearchCriteria criteria)
    //{
    //    return new LogObjectBuilder()
    //       .AddIfNotEmpty("Name", criteria.Name)
    //       .Build();
    //}

    //public static object ToLogObject(this CreatorSearchCriteria criteria)
    //{
    //    return new LogObjectBuilder()
    //       .AddIfNotEmpty("Name", criteria.Name)
    //       .Build();
    //}
}