- OrganizerInvitation entity: companyName, firstName, lastName, email,
message, status (sent/opened/accepted/refused), unique token (64 hex chars)
- Admin route /admin/organisateurs/inviter: form + invitation list with status
- Button "Inviter un organisateur" on admin organizers page
- Email with accept/refuse links using unique token
- Public route /invitation/{token}/{action}: accept or refuse without auth
- Response page: confirmation message for accept/refuse
- Migration, PHPStan config, 7 entity tests
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
34 lines
1.7 KiB
Twig
34 lines
1.7 KiB
Twig
{% extends 'email/base.html.twig' %}
|
|
|
|
{% block title %}Invitation organisateur - E-Ticket{% endblock %}
|
|
|
|
{% block content %}
|
|
<h2>Vous etes invite !</h2>
|
|
<p>Bonjour {{ invitation.firstName }},</p>
|
|
<p>L'equipe E-Ticket vous invite a rejoindre la plateforme en tant qu'organisateur pour <strong>{{ invitation.companyName }}</strong>.</p>
|
|
|
|
{% if invitation.message %}
|
|
<div style="padding: 16px; background: #f9fafb; border-left: 4px solid #fabf04; margin: 20px 0;">
|
|
<p style="margin: 0; font-style: italic; color: #374151;">{{ invitation.message }}</p>
|
|
</div>
|
|
{% endif %}
|
|
|
|
<p>E-Ticket est une plateforme de billetterie en ligne qui vous permet de :</p>
|
|
<ul style="margin: 16px 0; padding-left: 20px;">
|
|
<li style="margin-bottom: 8px; font-weight: 700;">Creer et gerer vos evenements</li>
|
|
<li style="margin-bottom: 8px; font-weight: 700;">Vendre des billets en ligne avec paiement securise</li>
|
|
<li style="margin-bottom: 8px; font-weight: 700;">Suivre vos ventes et statistiques en temps reel</li>
|
|
<li style="margin-bottom: 8px; font-weight: 700;">Generer des billets PDF avec QR code</li>
|
|
</ul>
|
|
|
|
<p style="text-align: center; margin: 24px 0;">
|
|
<a href="{{ acceptUrl }}" class="btn" style="margin-right: 8px;">Accepter l'invitation</a>
|
|
</p>
|
|
|
|
<p style="text-align: center; font-size: 13px; color: #6b7280;">
|
|
<a href="{{ refuseUrl }}" style="color: #6b7280; text-decoration: underline;">Non merci, refuser l'invitation</a>
|
|
</p>
|
|
|
|
<p style="font-size: 12px; color: #9ca3af; margin-top: 24px;">Cette invitation a ete envoyee a {{ invitation.email }} le {{ invitation.createdAt|date('d/m/Y') }}. Si vous n'etes pas concerne, ignorez cet email.</p>
|
|
{% endblock %}
|