dashboard_franchisor.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. use App\Http\Controllers\BaseHolidayController;
  3. use App\Http\Controllers\FranchisorDashboardController;
  4. use App\Http\Controllers\StudentContractController;
  5. use App\Http\Controllers\StudentController;
  6. use Illuminate\Support\Facades\Route;
  7. /**
  8. * Fluxo: Dashboard (Franqueadora) — scope `dashboard`.
  9. *
  10. * Agrupa todos os endpoints consumidos pela tela de Dashboard, independente do
  11. * controller de origem, para que a permissão do fluxo seja ajustada num lugar só.
  12. * As URLs são as mesmas de antes — apenas a definição mudou de arquivo.
  13. *
  14. * Ordem: routes/api.php carrega authRoutes/*.php em ordem alfabética, então este
  15. * arquivo é registrado antes de student.php e student_contract.php. Isso garante
  16. * que /franchisor/* tenha precedência sobre os /{id} daqueles arquivos.
  17. *
  18. * Níveis: view (ler), add (cadastrar), edit (editar/excluir feriado).
  19. * `menu` é derivado de `view` no front e não gate nenhum endpoint.
  20. */
  21. Route::controller(FranchisorDashboardController::class)->prefix('franchisor-dashboard')->group(function () {
  22. Route::get('/overview', 'overview')->middleware('permission:dashboard,view');
  23. });
  24. Route::controller(StudentController::class)->prefix('student')->group(function () {
  25. Route::get('/franchisor/summary', 'franchisorSummary')->middleware('permission:dashboard,view');
  26. Route::get('/franchisor/active', 'franchisorActive')->middleware('permission:dashboard,view');
  27. Route::get('/franchisor/{id}', 'franchisorStudentDetail')->middleware('permission:dashboard,view');
  28. });
  29. Route::controller(StudentContractController::class)->prefix('student-contract')->group(function () {
  30. Route::get('/franchisor/summary', 'franchisorSummary')->middleware('permission:dashboard,view');
  31. Route::get('/franchisor/frozen', 'franchisorFrozen')->middleware('permission:dashboard,view');
  32. Route::get('/franchisor/cancelled', 'franchisorCancelled')->middleware('permission:dashboard,view');
  33. });
  34. // Feriados são cadastrados e editados pelos cards do próprio Dashboard.
  35. Route::controller(BaseHolidayController::class)->prefix('base-holiday')->group(function () {
  36. Route::get('/', 'index')->middleware('permission:dashboard,view');
  37. Route::post('/', 'store')->middleware('permission:dashboard,add');
  38. Route::get('/{id}', 'show')->middleware('permission:dashboard,view');
  39. Route::put('/{id}', 'update')->middleware('permission:dashboard,edit');
  40. Route::delete('/{id}', 'destroy')->middleware('permission:dashboard,edit');
  41. });