using MauiAppStock.Models;
using MauiAppStock.Data;
using Microsoft.Maui.Controls;

namespace MauiAppStock.Views
{
    public partial class AddAppareilPiecePage : ContentPage
    {
        private Appareil _appareil;
        public AddAppareilPiecePage(Appareil appareil)
        {
            InitializeComponent();
            _appareil = appareil;
            LoadPieces();
        }

        private async void LoadPieces()
        {
            var pieces = await Database.GetPiecesAsync();
            PiecesPicker.ItemsSource = pieces;
            PiecesPicker.ItemDisplayBinding = new Binding("Nom");
        }

        private async void OnSaveClicked(object sender, EventArgs e)
        {
            if (PiecesPicker.SelectedItem is Piece selectedPiece)
            {
                // Vérification de l'existence d'une association pour cet appareil et cette pièce
                var existingAssociation = await Database.GetAppareilPieceAsync(_appareil.Id, selectedPiece.Id);
                if (existingAssociation != null)
                {
                    await DisplayAlert("Erreur", "Cette pièce est déjà associée à cet appareil.", "OK");
                    return;
                }

                var association = new AppareilPiece
                {
                    AppareilId = _appareil.Id,
                    PieceId = selectedPiece.Id,
                    EstRecommandee = RecommandeeSwitch.IsToggled
                };
                await Database.AddAppareilPieceAsync(association);
                await Navigation.PopAsync();
            }
            else
            {
                await DisplayAlert("Erreur", "Veuillez sélectionner une pièce.", "OK");
            }
        }
    }
}