using System.Text.Json.Serialization;

namespace PiattaformaStreaming;

[Serializable]
public class Episodio: Media
{
    private int numero;
    
    [JsonInclude]
    public int Numero
    {
        get { return numero; }
        private set
        {
            if (value < 0)
                throw new Exception("Numero episodio invalido");
            numero = value;
        }
    }

    public Episodio(string titolo, int durata, int anno, int valutazione, int numeroEpisodio)
        : base(titolo, durata, anno, valutazione)
    {
        Numero = numeroEpisodio;
    }

    public override string Riproduci()
    {
        return string.Format("Riproduco {0}° episodio {1}", Numero, Titolo);
    }

    public override string Info()
    {
        return base.Info() + string.Format(", Numero: {0}", numero);
    }

    public override string ToString()
    {
        return base.ToString() + string.Format("|{0}", Numero);
    }
    
    #region File Testo

    public Episodio(string s) : base(s)
    {
        try
        {
            string[] parti = s.Split("|");
            Numero = int.Parse(parti[6]);
        }
        catch (Exception e)
        {
            throw;
        }
    }
    
    #endregion
    
    #region File JSON

    public Episodio() { }

    #endregion
}