import 'package:flutter/material.dart';
import '../../core/utils/app_logger.dart';
import '../../data/models/event_model.dart';

import '../screens/event/event_card.dart';

class EventList extends StatelessWidget {

  const EventList({required this.events, super.key});
  final List<EventModel> events;

  @override
  Widget build(BuildContext context) {
    return ListView.builder(
      itemCount: events.length,
      itemBuilder: (context, index) {
        final event = events[index];

        return EventCard(
          event: event,
          userId: 'user_id_here',  // Vous pouvez passer l'ID réel de l'utilisateur connecté
          userFirstName: 'John',  // Vous pouvez passer le prénom réel de l'utilisateur
          userLastName: 'Doe',  // Vous pouvez passer le nom réel de l'utilisateur
          profileImageUrl: 'profileImageUrl',
          onReact: () => _handleReact(event),
          onComment: () => _handleComment(event),
          onShare: () => _handleShare(event),
          onParticipate: () => _handleParticipate(event),
          onCloseEvent: () => _handleCloseEvent(event),
          onReopenEvent: () => _handleReopenEvent(event),
          onRemoveEvent: () => _handleRemoveEvent(event),
          status: '',

        );
      },
    );
  }

  // Gestion des actions
  void _handleReact(EventModel event) {
    AppLogger.d('Réaction ajoutée à l\'événement ${event.title}', tag: 'EventList');
  }

  void _handleComment(EventModel event) {
    AppLogger.d('Commentaire ajouté à l\'événement ${event.title}', tag: 'EventList');
  }

  void _handleShare(EventModel event) {
    AppLogger.i('Événement partagé : ${event.title}', tag: 'EventList');
  }

  void _handleParticipate(EventModel event) {
    AppLogger.i('Participation confirmée à l\'événement ${event.title}', tag: 'EventList');
  }

  void _handleCloseEvent(EventModel event) {
    AppLogger.i('Événement ${event.title} fermé', tag: 'EventList');
  }

  void _handleReopenEvent(EventModel event) {
    AppLogger.i('Événement ${event.title} réouvert', tag: 'EventList');
  }

  void _handleRemoveEvent(EventModel event) {
    AppLogger.i('Événement ${event.title} retiré', tag: 'EventList');
  }


}
