Tableau de bord

<% if current_user.promoter? %>
<%= link_to promoter_events_path, class: "inline-flex items-center px-4 py-2 bg-purple-600 text-white font-medium rounded-lg hover:bg-purple-700 transition-colors duration-200" do %> Mes événements <% end %> <%= link_to new_promoter_event_path, class: "inline-flex items-center px-4 py-2 bg-black text-white font-medium rounded-lg hover:bg-gray-800 transition-colors duration-200" do %> Créer un événement <% end %>
<% end %>
<%= render partial: 'components/metric_card', locals: { title: "Mes réservations", value: @booked_events, classes: "from-green-100 to-emerald-100" } %> <%= render partial: 'components/metric_card', locals: { title: "Événements aujourd'hui", value: @events_today, classes: "from-blue-100 to-sky-100" } %> <%= render partial: 'components/metric_card', locals: { title: "Événements demain", value: @events_tomorrow, classes: "from-purple-100 to-indigo-100" } %> <%= render partial: 'components/metric_card', locals: { title: "À venir", value: @upcoming_events, classes: "from-orange-100 to-amber-100" } %>
<% if @draft_tickets.any? %>

Billets en attente de paiement

Vous avez des billets qui nécessitent un paiement

<% @draft_tickets.group_by(&:event).each do |event, tickets| %>

<%= event.name %>

<%= event.start_time.strftime("%d %B %Y à %H:%M") %>

<%= tickets.count %> billet<%= 's' if tickets.count > 1 %>
<% tickets.each do |ticket| %>
<%= ticket.ticket_type.name %> - <%= ticket.first_name %> <%= ticket.last_name %>
Expire <%= time_ago_in_words(ticket.expires_at) %> <%= number_to_currency(ticket.price_euros, unit: "€") %>
<% end %>
<% max_attempts = tickets.map(&:payment_attempts).max %> Tentatives: <%= max_attempts %>/3 <% if tickets.any?(&:expiring_soon?) %> ⚠️ Expire bientôt <% end %>
<%= form_tag ticket_retry_payment_path(event.slug, event.id), method: :post do %> <%= hidden_field_tag :ticket_ids, tickets.map(&:id).join(',') %> <%= submit_tag "Reprendre le paiement", class: "inline-flex items-center px-4 py-2 bg-orange-600 text-white text-sm font-medium rounded-lg hover:bg-orange-700 transition-colors duration-200" %> <% end %>
<% end %>
<% end %>

Mes événements réservés

<% if @user_booked_events.any? %>
    <% @user_booked_events.each do |event| %>
  • <%= render partial: 'components/event_item', locals: { event: event } %>
  • <% end %>
<% if @booked_events > 5 %>
<%= link_to "Voir toutes mes réservations", "#", class: "text-purple-600 dark:text-purple-400 hover:text-purple-800 dark:hover:text-purple-200 font-medium transition-colors duration-200" %>
<% end %> <% else %>

Vous n'avez encore réservé aucun événement.

<%= link_to "Découvrir les événements", events_path, class: "inline-flex items-center px-4 py-2 bg-purple-600 text-white rounded-lg hover:bg-purple-700 transition-colors duration-200" %>
<% end %>

Évenements du jour

<% if @today_events.any? %>
    <% @today_events.each do |event| %>
  • <%= render partial: 'components/event_item', locals: { event: event } %>
  • <% end %>
<% else %>

Aucun évenement aujourd'hui.

<% end %>

Évenements de demain

<% if @tomorrow_events.any? %>
    <% @tomorrow_events.each do |event| %>
  • <%= render partial: 'components/event_item', locals: { event: event } %>
  • <% end %>
<% else %>

Aucune partie demain.

<% end %>

Autres évenements à venir

<% if @other_events.any? %>
    <% @other_events.each do |event| %>
  • <%= render partial: 'components/event_item', locals: { event: event } %>
  • <% end %>
<%= paginate @other_events %>
<% else %>

Aucune autre partie à venir.

<% end %>