feat(Membership, FAQ, Relance): update membership form (member type radio,retzien email field, calendar-year pricing), create FAQ page with accordion, wire renewal reminder notification
All checks were successful
Deploy Roxane to Preprod / deploy (push) Successful in 1m23s

This commit is contained in:
2026-07-27 16:30:48 +02:00
parent 87e23ea50f
commit 6d300ac79c
27 changed files with 1517 additions and 396 deletions

View File

@@ -10,6 +10,7 @@ class DatabaseSeeder extends Seeder
{
$this->call([
MemberGroupSeeder::class,
MemberTypeSeeder::class,
PackageSeeder::class,
ServiceSeeder::class,
UserSeeder::class,

View File

@@ -0,0 +1,40 @@
<?php
namespace Database\Seeders;
use App\Models\MemberType;
use Illuminate\Database\Seeder;
class MemberTypeSeeder extends Seeder
{
public function run(): void
{
$types = [
[
'identifier' => 'individual',
'name' => 'Particulier',
'description' => 'Personne physique',
],
[
'identifier' => 'company',
'name' => 'Entreprise',
'description' => 'Personne morale (société, auto-entrepreneur, etc.)',
],
[
'identifier' => 'association',
'name' => 'Association',
'description' => 'Association loi 1901',
],
];
foreach ($types as $type) {
MemberType::updateOrCreate(
['identifier' => $type['identifier']],
[
'name' => $type['name'],
'description' => $type['description'],
]
);
}
}
}

View File

@@ -169,6 +169,25 @@ class NotificationTemplateSeeder extends Seeder
]
);
NotificationTemplate::updateOrCreate(
['identifier' => 'member_renewal_reminder'],
[
'name' => 'Relance adhésion — générique',
'subject' => 'Rappel concernant votre adhésion — {app_name}',
'body' => '<p>Bonjour {member_name},</p>'
.'<p>Nous vous contactons au sujet de votre adhésion au sein de notre association.</p>'
.'<p>Si votre adhésion est arrivée à expiration ou si vous n\'avez pas encore finalisé votre inscription, '
.'nous vous invitons à régulariser votre situation afin de continuer à bénéficier de l\'ensemble de nos services.</p>'
.'<p>Pour toute question ou besoin d\'assistance, n\'hésitez pas à nous contacter.</p>'
.'<p>Cordialement,<br>L\'équipe {app_name}</p>',
'variables' => [
'member_name' => 'Nom complet du membre',
'app_name' => 'Nom de l\'application',
],
'is_active' => true,
]
);
NotificationTemplate::updateOrCreate(
['identifier' => 'admin_password_reset'],
[

View File

@@ -12,20 +12,20 @@ class PackageSeeder extends Seeder
$packages = [
[
'identifier' => 'custom',
'name' => 'Sur-mesure',
'description' => 'Calcul du nombre de mois restant dans l\'année',
'name' => 'Année en cours',
'description' => 'Mois restants dans l\'année civile en cours (1€/mois)',
'price' => '1.00',
],
[
'identifier' => 'one-year',
'name' => 'Un an',
'description' => '12 mois à compter de la date de validation de l\'adhésion du membre',
'name' => 'Année en cours + 1 an',
'description' => 'Jusqu\'à la fin de l\'année civile suivante (1€/mois)',
'price' => '12.00',
],
[
'identifier' => 'two-years',
'name' => 'Deux ans',
'description' => '24 mois à compter de la date de validation de l\'adhésion du membre',
'name' => 'Année en cours + 2 ans',
'description' => 'Jusqu\'à la fin de la 2e année civile suivante (1€/mois)',
'price' => '24.00',
],
];
@@ -42,4 +42,4 @@ class PackageSeeder extends Seeder
);
}
}
}
}