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

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

namespace YandexMusic.API.Requests.Landing;

[YApiRequest(WebRequestMethods.Http.Get, "landing3")]
public class YGetLandingBuilder : YRequestBuilder<YResponse<YLanding>, YLandingBlockType[]>
{
    public YGetLandingBuilder(YandexMusicApi yandex, AuthStorage auth) : base(yandex, auth)
    {
    }

    protected override NameValueCollection GetQueryParams(YLandingBlockType[] tuple)
    {
        string blocks = string.Join(",", tuple
            .Select(b => SerializeJson(b).Replace("\"", string.Empty)));

        return new NameValueCollection {
            { "blocks", blocks }
        };
    }
}