using JSMR.Application.Enums; using JSMR.Domain.Enums; namespace JSMR.Application.VoiceWorks.Queries.Search; public class VoiceWorkSearchCriteria { public string? Keywords { get; init; } public string? Title { get; init; } public string? Circle { get; init; } public SaleStatus? SaleStatus { get; init; } public CircleStatus? CircleStatus { get; init; } public TagStatus? TagStatus { get; init; } public CreatorStatus? CreatorStatus { get; init; } public int[] TagIds { get; init; } = []; public bool IncludeAllTags { get; init; } public int[] CreatorIds { get; init; } = []; public bool IncludeAllCreators { get; init; } public Locale Locale { get; init; } = Locale.Japanese; public DateOnly? ReleaseDateStart { get; init; } public DateOnly? ReleaseDateEnd { get; init; } public AgeRating[] AgeRatings { get; init; } = []; public Language[] SupportedLanguages { get; init; } = []; public AIGeneration[] AIGenerationOptions { get; init; } = []; public bool ShowFavoriteVoiceWorks { get; init; } public bool ShowInvalidVoiceWorks { get; init; } public int? MinDownloads { get; init; } public int? MaxDownloads { get; init; } }