using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CLCarte
{
    public class CartaPrepagata : Carta
    {
        private double creditoAttuale;

        public double CreditoAttuale
        {
            get { return creditoAttuale; }
        }

        public CartaPrepagata()
        { }

        public CartaPrepagata(string nome, string cognome, int numero, int pin, double plafond, double costoApertura, int numeroOperazioneMese, double totaleSpeseMese, double creditoAttuale)
            : base(nome, cognome, numero, pin, plafond, costoApertura, numeroOperazioneMese, totaleSpeseMese)
        {
            this.creditoAttuale = creditoAttuale;
        }

        public void Ricarica(double importo)
        {
            this.creditoAttuale += importo;
        }

        public override double SpeseGestione()
        {
            return base.SpeseGestione()+60;
        }

        public override string ToString()
        {
            return base.ToString()+"\ncredito attuale: "+creditoAttuale;
        }

        public override void Transazione(double importo)
        {
            if (this.creditoAttuale >= importo)
            {
                base.Transazione(importo);
                creditoAttuale -= importo;
            }
            else
            {
                throw new Exception("Credito insufficiente. Ricaricare prima la carta");
            }
            
        }
    }
}
