import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'dart:math' as math; // Pour la rotation du chevron
import '../../widgets/hover_relief_widget.dart'; // Import du widget générique
import '../../models/card_assets.dart'; // Import des enums de cartes

class RegisterChoiceScreen extends StatelessWidget {
  const RegisterChoiceScreen({super.key});

  @override
  Widget build(BuildContext context) {
    final screenSize = MediaQuery.of(context).size;

    return Scaffold(
      body: Stack(
        children: [
          // Fond papier
          Positioned.fill(
            child: Image.asset(
              'assets/images/paper2.png',
              fit: BoxFit.cover,
              repeat: ImageRepeat.repeat,
            ),
          ),

          // Bouton Retour (chevron gauche)
          Positioned(
            top: 40,
            left: 40,
            child: IconButton(
              icon: Transform(
                alignment: Alignment.center,
                transform: Matrix4.rotationY(math.pi),
                child: Image.asset('assets/images/chevron_right.png', height: 40),
              ),
              onPressed: () => Navigator.pop(context),
              tooltip: 'Retour',
            ),
          ),

          // Contenu principal en Row (Gauche / Droite)
          Padding(
            padding: EdgeInsets.symmetric(horizontal: screenSize.width * 0.05),
            child: Row(
              children: [
                // Partie Gauche: Texte d'instruction centré
                Expanded(
                  flex: 1,
                  child: Center(
                    child: Text(
                      'Veuillez choisir votre\ntype de compte :',
                      style: GoogleFonts.merienda(
                        fontSize: 36,
                        fontWeight: FontWeight.bold,
                        color: Colors.black87,
                        height: 1.5,
                      ),
                      textAlign: TextAlign.center,
                    ),
                  ),
                ),
                // Espace entre les deux parties
                SizedBox(width: screenSize.width * 0.05),
                
                // Partie Droite: Carte rose avec les boutons
                Expanded(
                  flex: 1,
                  child: Center(
                    child: ConstrainedBox(
                      constraints: BoxConstraints(
                        maxHeight: screenSize.height * 0.78, // Augmenté pour éviter l'overflow
                      ),
                      child: AspectRatio(
                        aspectRatio: 2 / 3,
                        child: Container(
                          padding: const EdgeInsets.symmetric(vertical: 30, horizontal: 20),
                          decoration: BoxDecoration(
                            image: DecorationImage(
                              image: AssetImage(CardColorVertical.pink.path),
                              fit: BoxFit.fill,
                            ),
                          ),
                          child: Column(
                            mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                            children: [
                              // Bouton "Parents" avec HoverReliefWidget appliqué uniquement à l'image
                              _buildChoiceButton(
                                context: context,
                                iconPath: 'assets/images/icon_parents.png',
                                label: 'Parents',
                                onPressed: () {
                                  Navigator.pushNamed(context, '/parent-register/step1');
                                },
                              ),
                              // Bouton "Assistante Maternelle" avec HoverReliefWidget appliqué uniquement à l'image
                              _buildChoiceButton(
                                context: context,
                                iconPath: 'assets/images/icon_assmat.png',
                                label: 'Assistante Maternelle',
                                onPressed: () {
                                  // TODO: Naviguer vers l'écran d'inscription assmat
                                  print('Choix: Assistante Maternelle');
                                  Navigator.pushNamed(context, '/am-register/step1');

                                },
                              ),
                            ],
                          ),
                        ),
                      ),
                    ),
                  ),
                ),
              ],
            ),
          ),
        ],
      ),
    );
  }
}

// Nouvelle méthode helper pour construire les boutons de choix
Widget _buildChoiceButton({
  required BuildContext context,
  required String iconPath,
  required String label,
  required VoidCallback onPressed,
}) {
  // TODO: Déterminer la couleur de base de card_rose.png et ajuster ces couleurs d'ombre
  final Color baseRoseColor = Colors.pink.shade300; // Placeholder
  final Color initialShadow = baseRoseColor.withAlpha(90); // Rose plus foncé et transparent pour l'ombre initiale
  final Color hoverShadow = baseRoseColor.withAlpha(130);    // Rose encore plus foncé pour l'ombre au survol

  return Column(
    mainAxisSize: MainAxisSize.min,
    children: [
      HoverReliefWidget(
        onPressed: onPressed,
        borderRadius: BorderRadius.circular(15.0),
        initialShadowColor: initialShadow, // Ombre rose initiale
        hoverShadowColor: hoverShadow,     // Ombre rose au survol
        child: Padding(
          padding: const EdgeInsets.all(8.0),
          child: Image.asset(iconPath, height: 140),
        ),
      ),
      const SizedBox(height: 15),
      Text(
        label,
        style: GoogleFonts.merienda(
          fontSize: 26,
          fontWeight: FontWeight.w600,
          color: Colors.black.withOpacity(0.85),
        ),
        textAlign: TextAlign.center,
      ),
    ],
  );
}

// --- La classe HoverChoiceButton peut maintenant être supprimée si elle n'est plus utilisée ailleurs ---
// class HoverChoiceButton extends StatefulWidget { ... }
// class _HoverChoiceButtonState extends State<HoverChoiceButton> { ... } 