group('/api', function (RouteCollectorProxy $apiGroup) { // Playnite API endpoints $apiGroup->group('/playnite', function (RouteCollectorProxy $playniteGroup) { // Game management $playniteGroup->post('/insert', 'App\Controllers\Api\PlayniteController:insertGames')->setName('api.playnite.insert'); $playniteGroup->post('/media', 'App\Controllers\Api\PlayniteController:updateMedia')->setName('api.playnite.media'); $playniteGroup->put('/update/games/', 'App\Controllers\Api\PlayniteController:updateGames')->setName('api.playnite.update'); $playniteGroup->put('/v1/games/delete', 'App\Controllers\Api\PlayniteController:deleteGames')->setName('api.playnite.delete'); // Image upload $playniteGroup->post('/image/base64', 'App\Controllers\Api\PlayniteController:uploadImages')->setName('api.playnite.images'); }); // Actor API endpoints $apiGroup->group('/actors', function (RouteCollectorProxy $actorGroup) { $actorGroup->post('/fetch-stash', 'App\Controllers\ActorController:fetchStashData')->setName('api.actors.fetch-stash'); $actorGroup->post('/sync-existing-stash', 'App\Controllers\ActorController:syncExistingPerformers')->setName('api.actors.sync-existing-stash'); $actorGroup->get('/missing-stash-reports', 'App\Controllers\ActorController:getMissingStashReports')->setName('api.actors.missing-reports'); }); // User authentication check (requires authentication) $apiGroup->get('/v1/users/me', 'App\Controllers\Api\AuthController:checkAuth')->setName('api.auth.check')->add('App\Http\Middleware\AuthMiddleware'); });