using YoutubeExplode.Channels;
using YoutubeExplode.Playlists;
using YoutubeExplode.Videos;

namespace youtube_downloader.Server.Models
{
    public enum InfoType
    {
        Video=0,
        Playlist=1,
        Channel=2,
        User=3,
        ClosedCaptions=4,
        FileDownload=5
    }
    public class IDResolutionTypeTriplet
    {
        public string Id { get; set; }
        public InfoType Type { get; set; }
        public TessesYoutubeDownloader.Server.Models.Resolution Resolution { get; set; }
        public InfomationQueueItem ToInfomationQueueItem(bool download=true)
        {
            switch(Type)
            {
                case InfoType.Video:
                    VideoId vid = Id;
                   
                        return new InfomationQueueItem(vid, Resolution, download);
                    
                   
                case InfoType.Playlist:
                    PlaylistId pid = Id;
                    return new InfomationQueueItem(pid, Resolution, download);

                  
                case InfoType.Channel:
                    ChannelId cid = Id;
                    return new InfomationQueueItem(cid, Resolution, download);

                case InfoType.User:
                    UserName user = Id;
                   
                        return new InfomationQueueItem(user, Resolution, download);
                case InfoType.ClosedCaptions:
                    VideoId vid2 = Id;
                    return new InfomationQueueItem(vid2);
                   
            }
            return null;
        }
    }
}