using Services;
using ReAct_PME.ViewModels;
using System.Windows;
using System.Windows.Media;

namespace ReAct_PME
{
    /// <summary>
    /// Logique d'interaction pour DetailEmail.xaml
    /// </summary>
    public partial class DetailEmail : Window
    {
        private EmailMessage? SelectedItem;
        private DetailEmail_VM _VM;

        public DetailEmail(EmailMessage? selectedItem)
        {
            InitializeComponent();
            SelectedItem = selectedItem;
            _VM = new DetailEmail_VM(SelectedItem);
            this.DataContext = _VM;

            LabelPriorite.Foreground = SelectedItem!.IsUrgent ? Brushes.Red : (SelectedItem!.IsImportant ? Brushes.Orange : Brushes.Gray);
        }

        private async void OnEnvoyerClick(object sender, RoutedEventArgs e)
        {
            bool b = await _VM.EnvoyerReponse();
            if (b)
            {
                StatusText.Text = "Réponse envoyée avec succès !";
                StatusText.Foreground = System.Windows.Media.Brushes.Green;
            }
            else
            {
                StatusText.Text = $"Erreur dans l'envoi de la réponse.";
                StatusText.Foreground = System.Windows.Media.Brushes.Red;
            }
        }
        private async void OnMarquerClick(object sender, RoutedEventArgs e)
        {
            bool b = await _VM.MarquerLu();
            if (b)
            {
                StatusText.Text = "Mail marqué comme lu avec succès !";
                StatusText.Foreground = System.Windows.Media.Brushes.Green;
            }
            else
            {
                StatusText.Text = $"Erreur dans la modification du statut du mail.";
                StatusText.Foreground = System.Windows.Media.Brushes.Red;
            }
        }
        private void OnFermerClick(object sender, RoutedEventArgs e)
        {
            this.Close();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            if(SelectedItem == null)
            {
                MessageBox.Show("Aucun email sélectionné.");
                return;
            }
            var f = new DetailEmailContentPJ(SelectedItem);
            f.ShowDialog();
        }

        private async void OnReGenerateClick(object sender, RoutedEventArgs e)
        {
            bool b = await _VM.GenerateAgainReponse();
        }
    }
}
