using System;
namespace SpotifyAPI.Web
{
public class PlayerCurrentlyPlayingRequest : RequestParams
{
///
/// A comma-separated list of item types that your client supports besides the default track type.
/// Valid types are: track and episode. An unsupported type in the response is expected to be represented
/// as null value in the item field. Note: This parameter was introduced to allow existing clients to
/// maintain their current behaviour and might be deprecated in the future. In addition to providing
/// this parameter, make sure that your client properly handles cases of new types in the future by
/// checking against the currently_playing_type field. Defaults to AdditionalTypes.All
///
///
public PlayerCurrentlyPlayingRequest(AdditionalTypes types = AdditionalTypes.All)
{
Ensure.ArgumentNotNull(types, nameof(types));
AdditionalTypesParam = types;
}
///
/// An ISO 3166-1 alpha-2 country code or the string from_token.
/// Provide this parameter if you want to apply Track Relinking.
///
///
[QueryParam("market")]
public string? Market { get; set; }
///
/// The desired language, consisting of an ISO 639-1 language code and an ISO 3166-1 alpha-2 country code,
/// joined by an underscore. For example: es_MX, meaning "Spanish (Mexico)".
/// Provide this parameter if you want the category strings returned in a particular language.
/// Note that, if locale is not supplied, or if the specified language is not available,
/// the category strings returned will be in the Spotify default language (American English).
///
///
[QueryParam("locale")]
public string? Locale { get; set; }
///
/// A comma-separated list of item types that your client supports besides the default track type.
/// Valid types are: track and episode. An unsupported type in the response is expected to be represented
/// as null value in the item field. Note: This parameter was introduced to allow existing clients to
/// maintain their current behaviour and might be deprecated in the future. In addition to providing
/// this parameter, make sure that your client properly handles cases of new types in the future by
/// checking against the currently_playing_type field. Defaults to AdditionalTypes.All
///
///
[QueryParam("additional_types")]
public AdditionalTypes AdditionalTypesParam { get; }
[Flags]
public enum AdditionalTypes
{
[String("track")]
Track = 1,
[String("episode")]
Episode = 2,
All = Track | Episode
}
}
}