import 'package:flutter/material.dart';
import 'package:p_tits_pas/models/user.dart';
import 'package:p_tits_pas/services/auth_service.dart';
import 'package:p_tits_pas/widgets/admin/user_management_panel.dart';
import 'package:p_tits_pas/widgets/app_footer.dart';
import 'package:p_tits_pas/widgets/dashboard/dashboard_bandeau.dart';

/// Dashboard gestionnaire – même shell que l'admin, sans onglet Paramètres.
/// Réutilise [UserManagementPanel].
class GestionnaireDashboardScreen extends StatefulWidget {
  const GestionnaireDashboardScreen({super.key});

  @override
  State<GestionnaireDashboardScreen> createState() =>
      _GestionnaireDashboardScreenState();
}

class _GestionnaireDashboardScreenState extends State<GestionnaireDashboardScreen> {
  AppUser? _user;

  @override
  void initState() {
    super.initState();
    _loadUser();
  }

  Future<void> _loadUser() async {
    final user = await AuthService.getCurrentUser();
    if (mounted) setState(() => _user = user);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: PreferredSize(
        preferredSize: const Size.fromHeight(60.0),
        child: DashboardBandeau(
          tabItems: const [
            DashboardTabItem(label: 'Gestion des utilisateurs'),
          ],
          selectedTabIndex: 0,
          onTabSelected: (_) {},
          userDisplayName: _user?.fullName.isNotEmpty == true
              ? _user!.fullName
              : 'Gestionnaire',
          userEmail: _user?.email,
          userRole: _user?.role,
          onProfileTap: () {
            ScaffoldMessenger.of(context).showSnackBar(
              const SnackBar(content: Text('Modification du profil – à venir')),
            );
          },
          onSettingsTap: () {
            ScaffoldMessenger.of(context).showSnackBar(
              const SnackBar(content: Text('Paramètres – à venir')),
            );
          },
          onLogout: () {},
          showLogoutConfirmation: true,
        ),
      ),
      body: Column(
        children: [
          Expanded(
            child: UserManagementPanel(showAdministrateursTab: false),
          ),
          const AppFooter(),
        ],
      ),
    );
  }
}
