group(function () { Route::post('/login', [GeoTrackController::class, 'mobileLogin']); Route::post('/checkin', [GeoTrackController::class, 'mobileCheckin']); Route::post('/checkout', [GeoTrackController::class, 'mobileCheckout']); Route::post('/waypoints/batch', [GeoTrackController::class, 'storeBatchWaypoints']); Route::get('/route/today', [GeoTrackController::class, 'getTodayRoute']); Route::get('/status', [GeoTrackController::class, 'getTrackingStatus']); // New endpoints Route::get('/schedules', [GeoPlanController::class, 'getMobileSchedule']); Route::post('/schedules/{id}/target', [GeoPlanController::class, 'addTarget']); Route::post('/schedules/{id}/target/{targetId}/checkin', [GeoPlanController::class, 'checkinTarget']); Route::delete('/schedules/{id}/target/{targetId}', [GeoPlanController::class, 'removeTarget']); Route::post('/prospects', [\App\Http\Controllers\CustomerController::class, 'store']); Route::post('/profile', [GeoTrackController::class, 'updateProfile']); Route::post('/change-password', [GeoTrackController::class, 'changePassword']); }); // ============ Master Data: Staff ============ Route::apiResource('staff', StaffController::class); Route::apiResource('customers', \App\Http\Controllers\CustomerController::class); // ============ Health Check ============ Route::get('/health', function () { return response()->json([ 'status' => 'ok', 'timestamp' => now()->toISOString(), ]); });