using System.Collections.Specialized;
using System.Net;

using YandexMusic.API.Common;
using YandexMusic.API.Models.Common;
using YandexMusic.API.Models.Label;
using YandexMusic.API.Requests.Common;
using YandexMusic.API.Requests.Common.Attributes;

namespace YandexMusic.API.Requests.Label;

[YApiRequest(WebRequestMethods.Http.Get, "labels/{labelId}/artists")]
public class YGetLabelArtistsBuilder : YRequestBuilder<YResponse<YLabelArtists>, (YLabel label, int pageNumber)>
{
    public YGetLabelArtistsBuilder(YandexMusicApi yandex, AuthStorage auth) : base(yandex, auth)
    {
    }

    protected override NameValueCollection GetQueryParams((YLabel label, int pageNumber) tuple)
    {
        return new NameValueCollection {
            { "page", tuple.pageNumber.ToString() }
        };
    }

    protected override Dictionary<string, string> GetSubstitutions((YLabel label, int pageNumber) tuple)
    {
        return new Dictionary<string, string> {
            { "labelId", tuple.label.Id }
        };
    }
}
