import 'package:flutter/material.dart';
import '../tokens/unionflow_colors.dart';

/// Ligne d'activité récente — style fintech compact identique au super_admin
/// Icône dans carré arrondi 28×28 + titre + description + timestamp
class DashboardActivityRow extends StatelessWidget {
  final String title;
  final String description;
  final String timeAgo;
  final IconData icon;
  final Color color;

  const DashboardActivityRow({
    super.key,
    required this.title,
    required this.description,
    required this.timeAgo,
    required this.icon,
    required this.color,
  });

  @override
  Widget build(BuildContext context) {
    return Container(
      margin: const EdgeInsets.only(bottom: 6),
      padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 9),
      decoration: BoxDecoration(
        color: UnionFlowColors.surface,
        borderRadius: BorderRadius.circular(8),
        border: Border.all(color: UnionFlowColors.border),
      ),
      child: Row(
        children: [
          Container(
            width: 28,
            height: 28,
            decoration: BoxDecoration(
              color: color.withOpacity(0.12),
              borderRadius: BorderRadius.circular(6),
            ),
            child: Icon(icon, size: 14, color: color),
          ),
          const SizedBox(width: 10),
          Expanded(
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: [
                Text(
                  title,
                  style: const TextStyle(
                    fontSize: 12,
                    fontWeight: FontWeight.w600,
                    color: UnionFlowColors.textPrimary,
                  ),
                  maxLines: 1,
                  overflow: TextOverflow.ellipsis,
                ),
                Text(
                  description,
                  style: const TextStyle(
                    fontSize: 10,
                    color: UnionFlowColors.textSecondary,
                  ),
                  maxLines: 1,
                  overflow: TextOverflow.ellipsis,
                ),
              ],
            ),
          ),
          const SizedBox(width: 8),
          Text(
            timeAgo,
            style: const TextStyle(fontSize: 10, color: UnionFlowColors.textTertiary),
          ),
        ],
      ),
    );
  }

  /// Icône selon le type d'activité
  static IconData iconFor(String type) {
    switch (type) {
      case 'member':
        return Icons.person_add_rounded;
      case 'event':
        return Icons.event_rounded;
      case 'contribution':
        return Icons.payments_rounded;
      default:
        return Icons.circle_notifications_rounded;
    }
  }

  /// Couleur selon le type d'activité
  static Color colorFor(String type) {
    switch (type) {
      case 'member':
        return UnionFlowColors.unionGreen;
      case 'event':
        return UnionFlowColors.info;
      case 'contribution':
        return UnionFlowColors.gold;
      default:
        return UnionFlowColors.textSecondary;
    }
  }
}
