59 lines
2.4 KiB
C#
59 lines
2.4 KiB
C#
using ErsatzTV.Core.Api.Search;
|
|
|
|
namespace ErsatzTV.Application.Search;
|
|
|
|
public static class SearchFieldCatalog
|
|
{
|
|
private static readonly string[] None = [];
|
|
|
|
// Allowed values for the `type` enum — mirrors the lowercase tokens the Lucene index stores for
|
|
// the `type` field (see LuceneSearchIndex.TypeField and its *Type constants).
|
|
private static readonly string[] ItemTypes =
|
|
[
|
|
"movie", "show", "season", "episode", "artist", "music_video", "other_video", "song", "image",
|
|
"remote_stream"
|
|
];
|
|
|
|
public static readonly List<SearchFieldResponseModel> Fields =
|
|
[
|
|
// General
|
|
new("title", "Title", "text", "General", None),
|
|
new("genre", "Genre", "text", "General", None),
|
|
new("tag", "Tag", "text", "General", None),
|
|
new("plot", "Plot", "fulltext", "General", None),
|
|
new("content_rating", "Content rating", "text", "General", None),
|
|
new("studio", "Studio", "text", "General", None),
|
|
new("collection", "Collection", "text", "General", None),
|
|
new("state", "State", "text", "General", None),
|
|
new("type", "Item type", "enum", "General", ItemTypes),
|
|
|
|
// TV
|
|
new("network", "Network", "text", "TV", None),
|
|
new("show_title", "Show title", "text", "TV", None),
|
|
new("show_genre", "Show genre", "text", "TV", None),
|
|
new("season_number", "Season number", "number", "TV", None),
|
|
new("episode_number", "Episode number", "number", "TV", None),
|
|
|
|
// Movie / People
|
|
new("director", "Director", "text", "Movie", None),
|
|
new("writer", "Writer", "text", "Movie", None),
|
|
new("actor", "Actor", "text", "Movie", None),
|
|
|
|
// Music
|
|
new("artist", "Artist", "text", "Music", None),
|
|
new("album", "Album", "text", "Music", None),
|
|
new("album_artist", "Album artist", "text", "Music", None),
|
|
|
|
// Technical
|
|
new("minutes", "Duration (min)", "number", "Technical", None),
|
|
new("height", "Height (px)", "number", "Technical", None),
|
|
new("width", "Width (px)", "number", "Technical", None),
|
|
new("video_codec", "Video codec", "text", "Technical", None),
|
|
new("video_dynamic_range", "Dynamic range", "text", "Technical", None),
|
|
|
|
// Dates
|
|
new("added_date", "Date added", "date", "Dates", None),
|
|
new("release_date", "Release date", "date", "Dates", None)
|
|
];
|
|
}
|