feat: fase 2 backend — crowd types, persons, sections, shifts, invite flow

- Crowd Types + Persons CRUD (73 tests)
- Festival Sections + Time Slots + Shifts CRUD met assign/claim flow (84 tests)
- Invite Flow + Member Management met InvitationService (109 tests)
- Schema v1.6 migraties volledig uitgevoerd
- DevSeeder bijgewerkt met crowd types voor testorganisatie
This commit is contained in:
2026-04-08 01:34:46 +02:00
parent c417a6647a
commit 9acb27af3a
114 changed files with 6916 additions and 984 deletions

View File

@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace Database\Seeders;
use App\Models\CrowdType;
use App\Models\Organisation;
use App\Models\User;
use Illuminate\Database\Seeder;
@@ -76,5 +77,27 @@ class DevSeeder extends Seeder
if (!$org->users()->where('user_id', $member->id)->exists()) {
$org->users()->attach($member, ['role' => 'org_member']);
}
// 4. Default Crowd Types for Test Festival BV
$crowdTypes = [
['name' => 'Crew', 'system_type' => 'CREW', 'color' => '#3b82f6'],
['name' => 'Vrijwilliger', 'system_type' => 'VOLUNTEER', 'color' => '#10b981'],
['name' => 'Artiest', 'system_type' => 'ARTIST', 'color' => '#8b5cf6'],
['name' => 'Gast', 'system_type' => 'GUEST', 'color' => '#f59e0b'],
['name' => 'Pers', 'system_type' => 'PRESS', 'color' => '#6366f1'],
];
foreach ($crowdTypes as $ct) {
CrowdType::firstOrCreate(
[
'organisation_id' => $org->id,
'system_type' => $ct['system_type'],
],
[
'name' => $ct['name'],
'color' => $ct['color'],
],
);
}
}
}