44 lines
1.3 KiB
PHP
44 lines
1.3 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Http\Controllers\Api\V1\AuthController;
|
|
use App\Http\Controllers\Api\V1\EventController;
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| API Routes
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| All routes are automatically prefixed with /api/v1
|
|
|
|
|
*/
|
|
|
|
// Health check
|
|
Route::get('/', fn () => response()->json([
|
|
'success' => true,
|
|
'message' => 'Band Management API v1',
|
|
'timestamp' => now()->toIso8601String(),
|
|
]));
|
|
|
|
// Public auth routes
|
|
Route::prefix('auth')->group(function () {
|
|
Route::post('/login', [AuthController::class, 'login']);
|
|
Route::post('/register', [AuthController::class, 'register']);
|
|
});
|
|
|
|
// Protected routes
|
|
Route::middleware('auth:sanctum')->group(function () {
|
|
// Auth
|
|
Route::prefix('auth')->group(function () {
|
|
Route::get('/user', [AuthController::class, 'user']);
|
|
Route::post('/logout', [AuthController::class, 'logout']);
|
|
});
|
|
|
|
// Events
|
|
Route::apiResource('events', EventController::class);
|
|
Route::post('events/{event}/invite', [EventController::class, 'invite'])->name('events.invite');
|
|
Route::post('events/{event}/rsvp', [EventController::class, 'rsvp'])->name('events.rsvp');
|
|
});
|