import 'package:flutter/material.dart';



/// Dashboard pour le Super Administrateur
/// Interface mobile optimisée avec drawer de navigation
class SuperAdminDashboard extends StatefulWidget {
  const SuperAdminDashboard({super.key});

  @override
  State<SuperAdminDashboard> createState() => _SuperAdminDashboardState();
}

class _SuperAdminDashboardState extends State<SuperAdminDashboard> {
  @override
  Widget build(BuildContext context) {
    return Container(
      color: const Color(0xFFF8F9FA),
      child: _buildGlobalOverviewContent(),
    );
  }











  /// Vue Globale - Métriques système simplifiées
  Widget _buildGlobalOverviewContent() {
    return SingleChildScrollView(
      padding: const EdgeInsets.all(12),
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: [
          // Header avec informations système
          Container(
            padding: const EdgeInsets.all(16),
            decoration: BoxDecoration(
              color: Colors.red.shade50,
              borderRadius: BorderRadius.circular(8),
              border: Border.all(color: Colors.red.shade200),
            ),
            child: const Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: [
                Text(
                  'Super Admin Dashboard',
                  style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold, color: Colors.red),
                ),
                SizedBox(height: 8),
                Text('Accès complet au système'),
              ],
            ),
          ),
          const SizedBox(height: 16),

          // KPIs système en temps réel
          Container(
            padding: const EdgeInsets.all(16),
            decoration: BoxDecoration(
              color: Colors.white,
              borderRadius: BorderRadius.circular(8),
              boxShadow: [
                BoxShadow(
                  color: Colors.grey.withOpacity(0.1),
                  blurRadius: 4,
                  offset: const Offset(0, 2),
                ),
              ],
            ),
            child: const Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: [
                Text(
                  'KPIs Système',
                  style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold),
                ),
                SizedBox(height: 8),
                Text('Indicateurs système à implémenter'),
              ],
            ),
          ),
          const SizedBox(height: 16),

          // Performance serveur
          Container(
            padding: const EdgeInsets.all(16),
            decoration: BoxDecoration(
              color: Colors.white,
              borderRadius: BorderRadius.circular(8),
              boxShadow: [
                BoxShadow(
                  color: Colors.grey.withOpacity(0.1),
                  blurRadius: 4,
                  offset: const Offset(0, 2),
                ),
              ],
            ),
            child: const Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: [
                Text(
                  'Performance Serveur',
                  style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold),
                ),
                SizedBox(height: 8),
                Text('Métriques serveur à implémenter'),
              ],
            ),
          ),
          const SizedBox(height: 16),

          // Alertes importantes
          Container(
            padding: const EdgeInsets.all(16),
            decoration: BoxDecoration(
              color: Colors.orange.shade50,
              borderRadius: BorderRadius.circular(8),
              border: Border.all(color: Colors.orange.shade200),
            ),
            child: const Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: [
                Text(
                  'Alertes Système',
                  style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold, color: Colors.orange),
                ),
                SizedBox(height: 8),
                Text('Alertes importantes à implémenter'),
              ],
            ),
          ),
          const SizedBox(height: 16),

          // Activité récente
          Container(
            padding: const EdgeInsets.all(16),
            decoration: BoxDecoration(
              color: Colors.white,
              borderRadius: BorderRadius.circular(8),
              boxShadow: [
                BoxShadow(
                  color: Colors.grey.withOpacity(0.1),
                  blurRadius: 4,
                  offset: const Offset(0, 2),
                ),
              ],
            ),
            child: const Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: [
                Text(
                  'Activité Système',
                  style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold),
                ),
                SizedBox(height: 8),
                Text('Activités système à implémenter'),
              ],
            ),
          ),
          const SizedBox(height: 16),

          // Actions rapides système
          _buildSystemQuickActions(),
        ],
      ),
    );
  }













  /// Organisations Content
  Widget _buildOrganizationsContent() {
    return const Center(
      child: Text(
        'Gestion des Organisations\n(En développement)',
        textAlign: TextAlign.center,
        style: TextStyle(fontSize: 18),
      ),
    );
  }

  /// Users Content
  Widget _buildUsersContent() {
    return Padding(
      padding: const EdgeInsets.all(16.0),
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: [
          // Header avec titre et bouton de recherche
          Row(
            mainAxisAlignment: MainAxisAlignment.spaceBetween,
            children: [
              const Text(
                'Gestion des Utilisateurs',
                style: TextStyle(
                  fontSize: 20,
                  fontWeight: FontWeight.bold,
                ),
              ),
              ElevatedButton.icon(
                onPressed: () {
                  ScaffoldMessenger.of(context).showSnackBar(
                    const SnackBar(
                      content: Text('Recherche avancée - Fonctionnalité à implémenter'),
                      backgroundColor: Color(0xFF6C5CE7),
                    ),
                  );
                },
                icon: const Icon(Icons.search, size: 18),
                label: const Text('Recherche Avancée'),
                style: ElevatedButton.styleFrom(
                  backgroundColor: const Color(0xFF6C5CE7),
                  foregroundColor: Colors.white,
                  padding: const EdgeInsets.symmetric(
                    horizontal: 16,
                    vertical: 8,
                  ),
                ),
              ),
            ],
          ),
          const SizedBox(height: 24),

          // Statistiques rapides
          Row(
            children: [
              Expanded(
                child: _buildUserStatsCard(
                  'Total Utilisateurs',
                  '15,847',
                  Icons.people,
                  const Color(0xFF00B894),
                ),
              ),
              const SizedBox(width: 12),
              Expanded(
                child: _buildUserStatsCard(
                  'Actifs ce mois',
                  '12,456',
                  Icons.trending_up,
                  const Color(0xFF0984E3),
                ),
              ),
            ],
          ),
          const SizedBox(height: 16),
          Row(
            children: [
              Expanded(
                child: _buildUserStatsCard(
                  'Nouveaux',
                  '1,234',
                  Icons.person_add,
                  const Color(0xFFE17055),
                ),
              ),
              const SizedBox(width: 12),
              Expanded(
                child: _buildUserStatsCard(
                  'En attente',
                  '89',
                  Icons.hourglass_empty,
                  const Color(0xFFFDAB00),
                ),
              ),
            ],
          ),
          const SizedBox(height: 24),

          // Actions rapides
          const Text(
            'Actions Rapides',
            style: TextStyle(
              fontSize: 16,
              fontWeight: FontWeight.w600,
            ),
          ),
          const SizedBox(height: 12),
          Wrap(
            spacing: 8,
            runSpacing: 8,
            children: [
              _buildQuickActionChip(
                'Utilisateurs Récents',
                Icons.access_time,
                () {
                  // TODO: Naviguer vers la liste des utilisateurs récents
                },
              ),
              _buildQuickActionChip(
                'Comptes Suspendus',
                Icons.block,
                () {
                  // TODO: Naviguer vers les comptes suspendus
                },
              ),
              _buildQuickActionChip(
                'Demandes d\'accès',
                Icons.pending_actions,
                () {
                  // TODO: Naviguer vers les demandes d'accès
                },
              ),
            ],
          ),
        ],
      ),
    );
  }

  /// System Content
  Widget _buildSystemContent() {
    return const Center(
      child: Text(
        'Monitoring Système\n(En développement)',
        textAlign: TextAlign.center,
        style: TextStyle(fontSize: 18),
      ),
    );
  }

  /// Analytics Content
  Widget _buildAnalyticsContent() {
    return const Center(
      child: Text(
        'Analytics Avancées\n(En développement)',
        textAlign: TextAlign.center,
        style: TextStyle(fontSize: 18),
      ),
    );
  }

  /// Security Content
  Widget _buildSecurityContent() {
    return const Center(
      child: Text(
        'Sécurité et Audit\n(En développement)',
        textAlign: TextAlign.center,
        style: TextStyle(fontSize: 18),
      ),
    );
  }

  /// Configuration Content
  Widget _buildConfigurationContent() {
    return const Center(
      child: Text(
        'Configuration Système\n(En développement)',
        textAlign: TextAlign.center,
        style: TextStyle(fontSize: 18),
      ),
    );
  }

  /// Widget pour les statistiques utilisateurs
  Widget _buildUserStatsCard(
    String title,
    String value,
    IconData icon,
    Color color,
  ) {
    return Container(
      padding: const EdgeInsets.all(16),
      decoration: BoxDecoration(
        color: Colors.white,
        borderRadius: BorderRadius.circular(12),
        boxShadow: [
          BoxShadow(
            color: Colors.black.withOpacity(0.05),
            blurRadius: 10,
            offset: const Offset(0, 2),
          ),
        ],
      ),
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: [
          Row(
            children: [
              Container(
                padding: const EdgeInsets.all(8),
                decoration: BoxDecoration(
                  color: color.withOpacity(0.1),
                  borderRadius: BorderRadius.circular(8),
                ),
                child: Icon(
                  icon,
                  color: color,
                  size: 20,
                ),
              ),
              const Spacer(),
            ],
          ),
          const SizedBox(height: 12),
          Text(
            value,
            style: const TextStyle(
              fontSize: 24,
              fontWeight: FontWeight.bold,
            ),
          ),
          const SizedBox(height: 4),
          Text(
            title,
            style: TextStyle(
              fontSize: 12,
              color: Colors.grey[600],
            ),
          ),
        ],
      ),
    );
  }

  /// Widget pour les actions rapides
  Widget _buildQuickActionChip(
    String label,
    IconData icon,
    VoidCallback onTap,
  ) {
    return InkWell(
      onTap: onTap,
      borderRadius: BorderRadius.circular(20),
      child: Container(
        padding: const EdgeInsets.symmetric(
          horizontal: 12,
          vertical: 8,
        ),
        decoration: BoxDecoration(
          color: Colors.white,
          borderRadius: BorderRadius.circular(20),
          border: Border.all(
            color: Colors.grey[300]!,
            width: 1,
          ),
        ),
        child: Row(
          mainAxisSize: MainAxisSize.min,
          children: [
            Icon(
              icon,
              size: 16,
              color: const Color(0xFF6C5CE7),
            ),
            const SizedBox(width: 6),
            Text(
              label,
              style: const TextStyle(
                fontSize: 12,
                fontWeight: FontWeight.w500,
              ),
            ),
          ],
        ),
      ),
    );
  }

  /// Afficher les notifications
  void _showNotifications() {
    showModalBottomSheet(
      context: context,
      isScrollControlled: true,
      backgroundColor: Colors.transparent,
      builder: (context) => Container(
        height: MediaQuery.of(context).size.height * 0.7,
        decoration: const BoxDecoration(
          color: Colors.white,
          borderRadius: BorderRadius.vertical(top: Radius.circular(20)),
        ),
        child: Column(
          children: [
            Container(
              padding: const EdgeInsets.all(16),
              decoration: const BoxDecoration(
                color: Color(0xFF6C5CE7),
                borderRadius: BorderRadius.vertical(top: Radius.circular(20)),
              ),
              child: Row(
                children: [
                  const Icon(Icons.notifications, color: Colors.white),
                  const SizedBox(width: 12),
                  const Text(
                    'Notifications',
                    style: TextStyle(
                      color: Colors.white,
                      fontSize: 18,
                      fontWeight: FontWeight.bold,
                    ),
                  ),
                  const Spacer(),
                  IconButton(
                    onPressed: () => Navigator.pop(context),
                    icon: const Icon(Icons.close, color: Colors.white),
                  ),
                ],
              ),
            ),
            Expanded(
              child: ListView(
                padding: const EdgeInsets.all(16),
                children: [
                  _buildNotificationItem(
                    'Nouvelle demande d\'accès',
                    'Jean Dupont souhaite rejoindre l\'organisation TechCorp',
                    Icons.person_add,
                    const Color(0xFF00B894),
                    '5 min',
                  ),
                  _buildNotificationItem(
                    'Sauvegarde terminée',
                    'La sauvegarde quotidienne s\'est terminée avec succès',
                    Icons.backup,
                    const Color(0xFF0984E3),
                    '1h',
                  ),
                  _buildNotificationItem(
                    'Alerte sécurité',
                    'Tentative de connexion suspecte détectée',
                    Icons.security,
                    const Color(0xFFE17055),
                    '2h',
                  ),
                  _buildNotificationItem(
                    'Mise à jour système',
                    'Une nouvelle version est disponible',
                    Icons.system_update,
                    const Color(0xFFFDAB00),
                    '1j',
                  ),
                ],
              ),
            ),
          ],
        ),
      ),
    );
  }

  /// Widget pour un élément de notification
  Widget _buildNotificationItem(
    String title,
    String message,
    IconData icon,
    Color color,
    String time,
  ) {
    return Container(
      margin: const EdgeInsets.only(bottom: 12),
      padding: const EdgeInsets.all(16),
      decoration: BoxDecoration(
        color: Colors.grey[50],
        borderRadius: BorderRadius.circular(12),
        border: Border.all(color: Colors.grey[200]!),
      ),
      child: Row(
        children: [
          Container(
            padding: const EdgeInsets.all(8),
            decoration: BoxDecoration(
              color: color.withOpacity(0.1),
              borderRadius: BorderRadius.circular(8),
            ),
            child: Icon(icon, color: color, size: 20),
          ),
          const SizedBox(width: 12),
          Expanded(
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: [
                Text(
                  title,
                  style: const TextStyle(
                    fontWeight: FontWeight.w600,
                    fontSize: 14,
                  ),
                ),
                const SizedBox(height: 4),
                Text(
                  message,
                  style: TextStyle(
                    color: Colors.grey[600],
                    fontSize: 12,
                  ),
                ),
              ],
            ),
          ),
          Text(
            time,
            style: TextStyle(
              color: Colors.grey[500],
              fontSize: 11,
            ),
          ),
        ],
      ),
    );
  }

  /// Ouvrir les paramètres
  void _openSettings() {
    // TODO: Naviguer vers la page des paramètres
    ScaffoldMessenger.of(context).showSnackBar(
      const SnackBar(
        content: Text('Paramètres - Fonctionnalité à implémenter'),
        backgroundColor: Color(0xFF6C5CE7),
      ),
    );
  }

  /// Exporter les données
  void _exportData() {
    showDialog(
      context: context,
      builder: (context) => AlertDialog(
        title: const Text('Exporter les données'),
        content: const Text(
          'Sélectionnez le format d\'export souhaité :',
        ),
        actions: [
          TextButton(
            onPressed: () => Navigator.pop(context),
            child: const Text('Annuler'),
          ),
          ElevatedButton(
            onPressed: () {
              Navigator.pop(context);
              // TODO: Implémenter l'export CSV
              ScaffoldMessenger.of(context).showSnackBar(
                const SnackBar(
                  content: Text('Export CSV en cours...'),
                  backgroundColor: Color(0xFF00B894),
                ),
              );
            },
            style: ElevatedButton.styleFrom(
              backgroundColor: const Color(0xFF6C5CE7),
            ),
            child: const Text('CSV', style: TextStyle(color: Colors.white)),
          ),
          ElevatedButton(
            onPressed: () {
              Navigator.pop(context);
              // TODO: Implémenter l'export Excel
              ScaffoldMessenger.of(context).showSnackBar(
                const SnackBar(
                  content: Text('Export Excel en cours...'),
                  backgroundColor: Color(0xFF00B894),
                ),
              );
            },
            style: ElevatedButton.styleFrom(
              backgroundColor: const Color(0xFF6C5CE7),
            ),
            child: const Text('Excel', style: TextStyle(color: Colors.white)),
          ),
        ],
      ),
    );
  }

  /// Créer une sauvegarde
  void _createBackup() {
    showDialog(
      context: context,
      builder: (context) => AlertDialog(
        title: const Text('Créer une sauvegarde'),
        content: const Text(
          'Voulez-vous créer une sauvegarde complète du système ?',
        ),
        actions: [
          TextButton(
            onPressed: () => Navigator.pop(context),
            child: const Text('Annuler'),
          ),
          ElevatedButton(
            onPressed: () {
              Navigator.pop(context);
              // TODO: Implémenter la sauvegarde
              ScaffoldMessenger.of(context).showSnackBar(
                const SnackBar(
                  content: Text('Sauvegarde en cours...'),
                  backgroundColor: Color(0xFF0984E3),
                ),
              );
            },
            style: ElevatedButton.styleFrom(
              backgroundColor: const Color(0xFF6C5CE7),
            ),
            child: const Text('Confirmer', style: TextStyle(color: Colors.white)),
          ),
        ],
      ),
    );
  }

  /// Voir les logs système
  void _viewSystemLogs() {
    // TODO: Naviguer vers la page des logs
    ScaffoldMessenger.of(context).showSnackBar(
      const SnackBar(
        content: Text('Logs système - Fonctionnalité à implémenter'),
        backgroundColor: Color(0xFF6C5CE7),
      ),
    );
  }

  /// Actualiser le dashboard
  void _refreshDashboard() {
    // TODO: Implémenter l'actualisation des données
    ScaffoldMessenger.of(context).showSnackBar(
      const SnackBar(
        content: Text('Dashboard actualisé'),
        backgroundColor: Color(0xFF00B894),
        duration: Duration(seconds: 1),
      ),
    );
  }





  /// Actions rapides système
  Widget _buildSystemQuickActions() {
    return Column(
      crossAxisAlignment: CrossAxisAlignment.start,
      children: [
        const Text(
          'Actions Rapides',
          style: TextStyle(
            fontSize: 18,
            fontWeight: FontWeight.bold,
          ),
        ),
        const SizedBox(height: 12),
        GridView.count(
          shrinkWrap: true,
          physics: const NeverScrollableScrollPhysics(),
          crossAxisCount: 2,
          crossAxisSpacing: 12,
          mainAxisSpacing: 12,
          childAspectRatio: 1.5,
          children: [
            _buildSystemActionCard(
              'Sauvegarde',
              Icons.backup,
              const Color(0xFF0984E3),
              () => _createBackup(),
            ),
            _buildSystemActionCard(
              'Logs Système',
              Icons.article,
              const Color(0xFFE17055),
              () => _viewSystemLogs(),
            ),
            _buildSystemActionCard(
              'Maintenance',
              Icons.build,
              const Color(0xFFFDAB00),
              () => _startMaintenance(),
            ),
            _buildSystemActionCard(
              'Monitoring',
              Icons.monitor_heart,
              const Color(0xFF00B894),
              () => _openMonitoring(),
            ),
          ],
        ),
      ],
    );
  }

  /// Widget pour une action système
  Widget _buildSystemActionCard(
    String title,
    IconData icon,
    Color color,
    VoidCallback onTap,
  ) {
    return InkWell(
      onTap: onTap,
      borderRadius: BorderRadius.circular(12),
      child: Container(
        padding: const EdgeInsets.all(16),
        decoration: BoxDecoration(
          color: Colors.white,
          borderRadius: BorderRadius.circular(12),
          border: Border.all(color: color.withOpacity(0.2)),
          boxShadow: [
            BoxShadow(
              color: Colors.black.withOpacity(0.05),
              blurRadius: 10,
              offset: const Offset(0, 2),
            ),
          ],
        ),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Container(
              padding: const EdgeInsets.all(12),
              decoration: BoxDecoration(
                color: color.withOpacity(0.1),
                borderRadius: BorderRadius.circular(12),
              ),
              child: Icon(
                icon,
                color: color,
                size: 24,
              ),
            ),
            const SizedBox(height: 8),
            Text(
              title,
              style: const TextStyle(
                fontWeight: FontWeight.w600,
                fontSize: 12,
              ),
              textAlign: TextAlign.center,
            ),
          ],
        ),
      ),
    );
  }

  /// Démarrer la maintenance
  void _startMaintenance() {
    showDialog(
      context: context,
      builder: (context) => AlertDialog(
        title: const Text('Mode Maintenance'),
        content: const Text(
          'Voulez-vous activer le mode maintenance ? Les utilisateurs ne pourront plus accéder au système.',
        ),
        actions: [
          TextButton(
            onPressed: () => Navigator.pop(context),
            child: const Text('Annuler'),
          ),
          ElevatedButton(
            onPressed: () {
              Navigator.pop(context);
              ScaffoldMessenger.of(context).showSnackBar(
                const SnackBar(
                  content: Text('Mode maintenance activé'),
                  backgroundColor: Color(0xFFFDAB00),
                ),
              );
            },
            style: ElevatedButton.styleFrom(
              backgroundColor: const Color(0xFFFDAB00),
            ),
            child: const Text('Activer', style: TextStyle(color: Colors.white)),
          ),
        ],
      ),
    );
  }

  /// Ouvrir le monitoring
  void _openMonitoring() {
    ScaffoldMessenger.of(context).showSnackBar(
      const SnackBar(
        content: Text('Monitoring système - Fonctionnalité à implémenter'),
        backgroundColor: Color(0xFF00B894),
      ),
    );
  }
}
