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/{kind}/name")]
public class YPlaylistRenameBuilder : YRequestBuilder<YResponse<YPlaylist>, (string kind, string name)>
{
    public YPlaylistRenameBuilder(YandexMusicApi yandex, AuthStorage auth) : base(yandex, auth)
    {
    }

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

    protected override HttpContent GetContent((string kind, string name) tuple)
    {
        return new FormUrlEncodedContent(new Dictionary<string, string> {
            { "value", tuple.name }
        });
    }
}