namespace Programmation_objet_TLESIO21.TD3.fleuriste {


	public class Stock {

		//roses = 0, tulipes = 1, œillets = 2

		private Fleur[] fleurs = new Fleur[3];
		private int[] quantite = { 0, 0, 0 };

		public Stock(Fleur r, Fleur t, Fleur o) {
			this.fleurs[0] = r;
			this.fleurs[1] = t;
			this.fleurs[2] = o;
		}

		public void AjouteFleur(Fleur f, int q) {
			switch (f.GetNom().ToLower()) {
				case "rose":
					this.SetQuantite(0, this.GetFleurQuantity(f.GetNom()) + q);
					break;
				case "tulipe":
					this.SetQuantite(1, this.GetFleurQuantity(f.GetNom()) + q);
					break;
				case "oeillet":
					this.SetQuantite(2, this.GetFleurQuantity(f.GetNom()) + q);
					break;
				default:
					Console.Error.WriteLine("Aucune fleur n'a été ajoutée");
					break;
			}
		}

		public Boolean BouquetFaisable(Bouquet b) {
			return (this.quantite[0] > b.GetLot0().GetQuantite() || this.quantite[1] > b.GetLot1().GetQuantite() || this.quantite[2] > b.GetLot2().GetQuantite());
		}
	public override String ToString() {
			return "Il y a en stock " + this.GetFleurQuantity("rose") + " roses, " + this.GetFleurQuantity("tulipe") + " tulipes et " + this.GetFleurQuantity("oeillet") + " oeillets. ";
		}

		public int GetFleurQuantity(String s) {
			switch (s.ToLower()) {
				case "rose":
					return this.GetQuantite(0);
				case "tulipe":
					return this.GetQuantite(1);
				case "oeillet":
					return this.GetQuantite(2);
				default:
                    Console.Error.WriteLine("Aucune fleur n'a été ajoutée");
					return 0;
			}
		}

		public void SetFleurQuantity(String f, int q) {
			switch (f.ToLower()) {
				case "rose":
					this.SetQuantite(0, q);
					break;
				case "tulipe":
					this.SetQuantite(1, q);
					break;
				case "oeillet":
					this.SetQuantite(2, q);
					break;
				default:
                    Console.Error.WriteLine("Aucune fleur n'a été ajoutée");
					break;
			}
		}

		private void SetQuantite(int index, int i) {
			this.quantite[index] = i;
		}

		private int GetQuantite(int i) {
			return this.quantite[i];
		}

	}
}