fix and feat( Fix Synchro pages and tailwind/filament issues, clean read me, fix translations and seeders
Some checks failed
Deploy Roxane to Preprod / deploy (push) Failing after 26h12m0s

This commit is contained in:
2026-04-06 12:41:36 +02:00
parent 25885e3b70
commit 2e44eed699
19 changed files with 1359 additions and 277 deletions

View File

@@ -2,173 +2,22 @@
namespace Database\Seeders;
use App\Models\MemberGroup;
use App\Models\Package;
use App\Models\Service;
use App\Models\User;
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*/
public function run(): void
{
// Admin account
User::updateOrCreate([
'name' => 'SuperAdmin',
],
[
'email' => 'contact@nebulae-design.com',
'email_verified_at' => now(),
'password' => bcrypt('password'),
]);
// Member groups
$adminGroup = MemberGroup::updateOrCreate([
'name' => 'Admin Interface',
], [
'identifier' => 'admin-interface',
'description' => 'Groupe d\'utilisateurs créés par les administrateurs du site.',
$this->call([
MemberGroupSeeder::class,
PackageSeeder::class,
ServiceSeeder::class,
UserSeeder::class,
NotificationTemplateSeeder::class,
]);
$websiteGroup = MemberGroup::updateOrCreate([
'name' => 'Site Web',
],
[
'identifier' => 'website',
'description' => 'Groupe d\'utilisateurs provenant du site web.',
]);
// Subscription packages
$packages = [
[
'identifier' => 'custom',
'name' => 'Sur-mesure',
'description' => 'Calcul du nombre de mois restant dans l\'année',
'price' => '1.00',
],
[
'identifier' => 'one-year',
'name' => 'Un an',
'description' => '12 mois à compter de la date de validation de l\'adhésion du membre',
'price' => '12.00',
],
[
'identifier' => 'two-years',
'name' => 'Deux ans',
'description' => '24 mois à compter de la date de validation de l\'adhésion du membre',
'price' => '24.00',
],
];
foreach ($packages as $package) {
Package::updateOrCreate([
'identifier' => $package['identifier'],
], [
'name' => $package['name'],
'description' => $package['description'],
'price' => $package['price'],
'is_active' => true,
]);
if (! app()->isProduction()) {
$this->call(DemoSeeder::class);
}
// Services
$services = [
[
'identifier' => 'mail',
'name' => 'Mail RoundCube',
'description' => 'Service de messagerie',
'url' => '#',
'icon' => 'mail',
],
[
'identifier' => 'file2link',
'name' => 'File2Link',
'description' => 'Service de partage de fichiers',
'url' => '#',
'icon' => 'document-add',
],
[
'identifier' => 'nextcloud',
'name' => 'Nextcloud',
'description' => 'Service de stockage de fichiers',
'url' => '#',
'icon' => 'cloud-upload',
],
[
'identifier' => 'sympa',
'name' => 'Sympa',
'description' => 'Service de gestion de listes de diffusion',
'url' => '#',
'icon' => 'clipboard-list',
],
[
'identifier' => 'webhosting',
'name' => 'Hébergement web',
'description' => 'Service d\'hébergement web',
'url' => '#',
'icon' => 'database',
],
];
foreach ($services as $service) {
Service::updateOrCreate([
'identifier' => $service['identifier'],
], [
'name' => $service['name'],
'description' => $service['description'],
'url' => $service['url'],
'icon' => $service['icon'],
]);
}
// Notification templates
$this->call(NotificationTemplateSeeder::class);
// JaneDoe
$userTest = User::updateOrCreate([
'name' => 'JaneDoe',
],
[
'email' => 'jane@doe.com',
'email_verified_at' => null,
'password' => bcrypt('password'),
]);
$memberTest = $userTest->members()->updateOrCreate([
'user_id' => $userTest->id,
], [
'status' => 'valid',
'nature' => 'physical',
'group_id' => $websiteGroup->id,
'lastname' => 'Doe',
'firstname' => 'Jane',
'email' => 'jane@doe.com',
'company' => 'Nebulae Design',
'date_of_birth' => '1990-01-06',
'address' => '123 Rue du Test',
'zipcode' => '49000',
'city' => 'Saumur',
'country' => 'FR',
'phone1' => '0123456789',
'phone2' => '0123456789',
'public_membership' => false,
]);
$membershipTest = $memberTest->memberships()->updateOrCreate([
'member_id' => $memberTest->id,
], [
'admin_id' => '1',
'package_id' => Package::where('identifier', 'one-year')->first()->id,
'start_date' => '2025-01-01',
'end_date' => '2025-12-31',
'status' => 'active',
'amount' => 12.00,
'payment_status' => 'paid',
]);
}
}

View File

@@ -0,0 +1,60 @@
<?php
namespace Database\Seeders;
use App\Models\MemberGroup;
use App\Models\Package;
use App\Models\User;
use Illuminate\Database\Seeder;
class DemoSeeder extends Seeder
{
public function run(): void
{
$websiteGroup = MemberGroup::where('identifier', 'website')->first();
$package = Package::where('identifier', 'one-year')->first();
$user = User::updateOrCreate(
['email' => 'jane@doe.com'],
[
'name' => 'JaneDoe',
'email_verified_at' => null,
'password' => bcrypt('password'),
]
);
$member = $user->members()->updateOrCreate(
['user_id' => $user->id],
[
'status' => 'valid',
'nature' => 'physical',
'group_id' => $websiteGroup->id,
'lastname' => 'Doe',
'firstname' => 'Jane',
'email' => 'jane@doe.com',
'company' => 'Nebulae Design',
'date_of_birth' => '1990-01-06',
'address' => '123 Rue du Test',
'zipcode' => '49000',
'city' => 'Saumur',
'country' => 'FR',
'phone1' => '0123456789',
'phone2' => '0123456789',
'public_membership' => false,
]
);
$member->memberships()->updateOrCreate(
['member_id' => $member->id],
[
'admin_id' => User::where('email', 'contact@nebulae-design.com')->value('id'),
'package_id' => $package->id,
'start_date' => '2025-01-01',
'end_date' => '2025-12-31',
'status' => 'active',
'amount' => 12.00,
'payment_status' => 'paid',
]
);
}
}

View File

@@ -0,0 +1,28 @@
<?php
namespace Database\Seeders;
use App\Models\MemberGroup;
use Illuminate\Database\Seeder;
class MemberGroupSeeder extends Seeder
{
public function run(): void
{
MemberGroup::updateOrCreate(
['identifier' => 'admin-interface'],
[
'name' => 'Admin Interface',
'description' => 'Groupe d\'utilisateurs créés par les administrateurs du site.',
]
);
MemberGroup::updateOrCreate(
['identifier' => 'website'],
[
'name' => 'Site Web',
'description' => 'Groupe d\'utilisateurs provenant du site web.',
]
);
}
}

View File

@@ -0,0 +1,45 @@
<?php
namespace Database\Seeders;
use App\Models\Package;
use Illuminate\Database\Seeder;
class PackageSeeder extends Seeder
{
public function run(): void
{
$packages = [
[
'identifier' => 'custom',
'name' => 'Sur-mesure',
'description' => 'Calcul du nombre de mois restant dans l\'année',
'price' => '1.00',
],
[
'identifier' => 'one-year',
'name' => 'Un an',
'description' => '12 mois à compter de la date de validation de l\'adhésion du membre',
'price' => '12.00',
],
[
'identifier' => 'two-years',
'name' => 'Deux ans',
'description' => '24 mois à compter de la date de validation de l\'adhésion du membre',
'price' => '24.00',
],
];
foreach ($packages as $package) {
Package::updateOrCreate(
['identifier' => $package['identifier']],
[
'name' => $package['name'],
'description' => $package['description'],
'price' => $package['price'],
'is_active' => true,
]
);
}
}
}

View File

@@ -0,0 +1,69 @@
<?php
namespace Database\Seeders;
use App\Models\Service;
use Illuminate\Database\Seeder;
class ServiceSeeder extends Seeder
{
public function run(): void
{
$services = [
[
'identifier' => 'mail',
'name' => 'Mail RoundCube',
'description' => 'Service de messagerie',
'url' => '#',
'icon' => 'envelope',
],
[
'identifier' => 'file2link',
'name' => 'File2Link',
'description' => 'Service de partage de fichiers',
'url' => '#',
'icon' => 'share',
],
[
'identifier' => 'nextcloud',
'name' => 'Nextcloud',
'description' => 'Service de stockage de fichiers',
'url' => '#',
'icon' => 'cloud',
],
[
'identifier' => 'sympa',
'name' => 'Sympa',
'description' => 'Service de gestion de listes de diffusion',
'url' => '#',
'icon' => 'megaphone',
],
[
'identifier' => 'listmonk',
'name' => 'ListMonk',
'description' => 'Service de newsletter et listes de diffusion',
'url' => '#',
'icon' => 'newspaper',
],
[
'identifier' => 'webhosting',
'name' => 'Hébergement web',
'description' => 'Service d\'hébergement web',
'url' => '#',
'icon' => 'globe-alt',
],
];
foreach ($services as $service) {
Service::updateOrCreate(
['identifier' => $service['identifier']],
[
'name' => $service['name'],
'description' => $service['description'],
'url' => $service['url'],
'icon' => $service['icon'],
]
);
}
}
}

View File

@@ -0,0 +1,21 @@
<?php
namespace Database\Seeders;
use App\Models\User;
use Illuminate\Database\Seeder;
class UserSeeder extends Seeder
{
public function run(): void
{
User::updateOrCreate(
['email' => 'contact@nebulae-design.com'],
[
'name' => 'SuperAdmin',
'email_verified_at' => now(),
'password' => bcrypt('password'),
]
);
}
}