using Avalonia.Controls;
using Avalonia.Interactivity;
using Avalonia.Markup.Xaml;
using AquaCare.Persistence;
using AquaCare.Model;
using System;

namespace AquaCare.View
{
    public partial class PflegeWindow : Window
    {
        private readonly Datenbank _datenbank;

        public PflegeWindow()
        {
            InitializeComponent();
            _datenbank = new Datenbank();
        }

        private void InitializeComponent()
        {
            AvaloniaXamlLoader.Load(this);
        }

        private void SaveClick(object? sender, RoutedEventArgs e)
        {
            try
            {
                if (DatumPicker.SelectedDate.HasValue &&
                    double.TryParse(TemperaturBox.Text, out double temperatur) &&
                    double.TryParse(PhBox.Text, out double phWert) &&
                    double.TryParse(NitratBox.Text, out double nitrat) &&
                    double.TryParse(AmmoniakBox.Text, out double ammoniak))
                {
                    if (temperatur < 0 || phWert < 0 || nitrat < 0 || ammoniak < 0)
                    {
                        Console.WriteLine("Fehler: Werte dürfen nicht negativ sein.");
                        return;
                    }

                    var neuerWert = new Werte
                    {
                        Datum = DatumPicker.SelectedDate.Value.DateTime,
                        Gefuettert = GefuettertCheckBox.IsChecked ?? false,
                        FilterReinigen = FilterReinigenCheckBox.IsChecked ?? false,
                        WasserWechseln = WasserWechselnCheckBox.IsChecked ?? false,
                        Temperatur = temperatur,
                        PhWert = phWert,
                        Nitrat = nitrat,
                        Ammoniak = ammoniak
                    };

                    _datenbank.AddValue(neuerWert);
                    Console.WriteLine("Erfolg: Werte erfolgreich gespeichert.");

                    // Eingabefelder zurücksetzen
                    DatumPicker.SelectedDate = null;
                    GefuettertCheckBox.IsChecked = false;
                    FilterReinigenCheckBox.IsChecked = false;
                    WasserWechselnCheckBox.IsChecked = false;
                    TemperaturBox.Text = string.Empty;
                    PhBox.Text = string.Empty;
                    NitratBox.Text = string.Empty;
                    AmmoniakBox.Text = string.Empty;
                }
                else
                {
                    Console.WriteLine("Fehler: Bitte alle Felder korrekt ausfüllen.");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Fehler beim Speichern der Werte: {ex.Message}");
            }
        }

        private void CancelClick(object? sender, RoutedEventArgs e)
        {
            Close();
        }
    }
}