using System;
using System.Collections.Generic;
using MediaBrowser.Model.Entities;
namespace MediaBrowser.Model.Lyrics;
/// 
/// Lyric search request.
/// 
public class LyricSearchRequest : IHasProviderIds
{
    /// 
    /// Gets or sets the media path.
    /// 
    public string? MediaPath { get; set; }
    /// 
    /// Gets or sets the album artist names.
    /// 
    public IReadOnlyList? AlbumArtistsNames { get; set; }
    /// 
    /// Gets or sets the artist names.
    /// 
    public IReadOnlyList? ArtistNames { get; set; }
    /// 
    /// Gets or sets the album name.
    /// 
    public string? AlbumName { get; set; }
    /// 
    /// Gets or sets the song name.
    /// 
    public string? SongName { get; set; }
    /// 
    /// Gets or sets the track duration in ticks.
    /// 
    public long? Duration { get; set; }
    /// 
    public Dictionary ProviderIds { get; set; } = new(StringComparer.OrdinalIgnoreCase);
    /// 
    /// Gets or sets a value indicating whether to search all providers.
    /// 
    public bool SearchAllProviders { get; set; } = true;
    /// 
    /// Gets or sets the list of disabled lyric fetcher names.
    /// 
    public IReadOnlyList DisabledLyricFetchers { get; set; } = [];
    /// 
    /// Gets or sets the order of lyric fetchers.
    /// 
    public IReadOnlyList LyricFetcherOrder { get; set; } = [];
    /// 
    /// Gets or sets a value indicating whether this request is automated.
    /// 
    public bool IsAutomated { get; set; }
}