1.7 KiB
1.7 KiB
Integration notes
-
Copy files into an existing Laravel project.
-
Add
config/pxg.php. -
Register
App\Providers\PxgServiceProviderinconfig/app.phpproviders array (Laravel 10) if not auto-discovered. -
Register command:
- Ensure
app/Console/Kernel.phploads commands folder (default). - Command:
php artisan pxg:seed-flights --event=1
- CORS:
- Ensure your Laravel CORS allows the Vue origin (e.g., localhost:5173).
- Scheduler pairing (recommended):
- Add Laravel scheduler cron on server:
-
-
-
-
- php /path/to/artisan schedule:run >> /dev/null 2>&1
-
-
-
-
- Scheduler will run
pxg:pairing-tickevery minute. - You can also run manually:
php artisan pxg:pairing-tick --event=1
- Pairing heuristics (v3):
- Semi-hard course preference: tries preferred course first (A/B) and only falls back if preferred course has no seats.
- Hole bottleneck mitigation: distributes HIGH/BEGINNER across start holes.
- Tune via config/pxg.php -> pairing.*
- Admin auth (Sanctum):
-
Register middleware alias in
app/Http/Kernel.php: 'role' => \App\Http\Middleware\EnsureAdminRole::class -
Install Sanctum if not present:
composer require laravel/sanctumthenphp artisan sanctum:install -
Ensure
apimiddleware includesEnsureFrontendRequestsAreStatefulonly if you need cookie auth; this project uses bearer tokens. -
Seed admin user:
php artisan db:seed --class=AdminUserSeeder
- Exports (Excel friendly CSV):
- Start sheet: GET /api/v1/admin/events/{event}/exports/start-sheet.csv
- Pairing list: GET /api/v1/admin/events/{event}/exports/pairing-list.csv
- Flight ops:
- Lock/unlock flights for sponsor/VIP so pairing engine won't use them.
- Manual assign/move/remove members via admin endpoints.