using System.Net;

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

namespace YandexMusic.API.Requests.Playlist;

[YApiRequest(WebRequestMethods.Http.Post, "users/{uid}/playlists/create")]
public class YPlaylistCreateBuilder : YRequestBuilder<YResponse<YPlaylist>, string>
{
    public YPlaylistCreateBuilder(YandexMusicApi yandex, AuthStorage auth) : base(yandex, auth)
    {
    }

    protected override Dictionary<string, string> GetSubstitutions(string name)
    {
        return new Dictionary<string, string> {
            { "uid", storage.User.Uid }
        };
    }

    protected override HttpContent GetContent(string name)
    {
        return new FormUrlEncodedContent(new Dictionary<string, string> {
            { "title", name },
            { "visibility", "public" }
        });
    }
}