Эх сурвалжийг харах

refactor(routes): agrupa o fluxo Dashboard (Franqueadora) no scope dashboard

Cria routes/authRoutes/dashboard_franchisor.php reunindo os 12 endpoints que
a tela de Dashboard consome, antes espalhados por 4 arquivos e 3 scopes
(student, student-contract, base-holiday) — nenhum deles dashboard.

- Corrige franchisor-dashboard/overview, que exigia 'student,view': quem não
  tinha Alunos não enxergava o Dashboard.
- base-holiday e /*/franchisor/* passam a ser governados por dashboard.
- Níveis: view (ler), add (cadastrar), edit (editar/excluir feriado).
- URLs inalteradas; o arquivo carrega antes de student*.php (glob alfabético),
  mantendo a precedência de /franchisor/* sobre /{id}.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ebagabee 1 долоо хоног өмнө
parent
commit
cf65f4967a

+ 0 - 16
routes/authRoutes/base_holiday.php

@@ -1,16 +0,0 @@
-<?php
-
-use App\Http\Controllers\BaseHolidayController;
-use Illuminate\Support\Facades\Route;
-
-Route::controller(BaseHolidayController::class)->prefix('base-holiday')->group(function () {
-    Route::get('/', 'index')->middleware('permission:base-holiday,view');
-
-    Route::post('/', 'store')->middleware('permission:base-holiday,add');
-
-    Route::get('/{id}', 'show')->middleware('permission:base-holiday,view');
-
-    Route::put('/{id}', 'update')->middleware('permission:base-holiday,edit');
-
-    Route::delete('/{id}', 'destroy')->middleware('permission:base-holiday,delete');
-});

+ 47 - 0
routes/authRoutes/dashboard_franchisor.php

@@ -0,0 +1,47 @@
+<?php
+
+use App\Http\Controllers\BaseHolidayController;
+use App\Http\Controllers\FranchisorDashboardController;
+use App\Http\Controllers\StudentContractController;
+use App\Http\Controllers\StudentController;
+use Illuminate\Support\Facades\Route;
+
+/**
+ * Fluxo: Dashboard (Franqueadora) — scope `dashboard`.
+ *
+ * Agrupa todos os endpoints consumidos pela tela de Dashboard, independente do
+ * controller de origem, para que a permissão do fluxo seja ajustada num lugar só.
+ * As URLs são as mesmas de antes — apenas a definição mudou de arquivo.
+ *
+ * Ordem: routes/api.php carrega authRoutes/*.php em ordem alfabética, então este
+ * arquivo é registrado antes de student.php e student_contract.php. Isso garante
+ * que /franchisor/* tenha precedência sobre os /{id} daqueles arquivos.
+ *
+ * Níveis: view (ler), add (cadastrar), edit (editar/excluir feriado).
+ * `menu` é derivado de `view` no front e não gate nenhum endpoint.
+ */
+
+Route::controller(FranchisorDashboardController::class)->prefix('franchisor-dashboard')->group(function () {
+    Route::get('/overview', 'overview')->middleware('permission:dashboard,view');
+});
+
+Route::controller(StudentController::class)->prefix('student')->group(function () {
+    Route::get('/franchisor/summary', 'franchisorSummary')->middleware('permission:dashboard,view');
+    Route::get('/franchisor/active', 'franchisorActive')->middleware('permission:dashboard,view');
+    Route::get('/franchisor/{id}', 'franchisorStudentDetail')->middleware('permission:dashboard,view');
+});
+
+Route::controller(StudentContractController::class)->prefix('student-contract')->group(function () {
+    Route::get('/franchisor/summary', 'franchisorSummary')->middleware('permission:dashboard,view');
+    Route::get('/franchisor/frozen', 'franchisorFrozen')->middleware('permission:dashboard,view');
+    Route::get('/franchisor/cancelled', 'franchisorCancelled')->middleware('permission:dashboard,view');
+});
+
+// Feriados são cadastrados e editados pelos cards do próprio Dashboard.
+Route::controller(BaseHolidayController::class)->prefix('base-holiday')->group(function () {
+    Route::get('/', 'index')->middleware('permission:dashboard,view');
+    Route::post('/', 'store')->middleware('permission:dashboard,add');
+    Route::get('/{id}', 'show')->middleware('permission:dashboard,view');
+    Route::put('/{id}', 'update')->middleware('permission:dashboard,edit');
+    Route::delete('/{id}', 'destroy')->middleware('permission:dashboard,edit');
+});

+ 0 - 8
routes/authRoutes/franchisor_dashboard.php

@@ -1,8 +0,0 @@
-<?php
-
-use Illuminate\Support\Facades\Route;
-use App\Http\Controllers\FranchisorDashboardController;
-
-Route::controller(FranchisorDashboardController::class)->prefix('franchisor-dashboard')->group(function () {
-    Route::get('/overview', 'overview')->middleware('permission:student,view');
-});

+ 1 - 4
routes/authRoutes/student.php

@@ -3,11 +3,8 @@
 use Illuminate\Support\Facades\Route;
 use App\Http\Controllers\StudentController;
 
+// As rotas /student/franchisor/* pertencem ao fluxo Dashboard (dashboard_franchisor.php).
 Route::controller(StudentController::class)->prefix('student')->group(function () {
-    Route::get('/franchisor/summary', 'franchisorSummary')->middleware('permission:student,view');
-    Route::get('/franchisor/active', 'franchisorActive')->middleware('permission:student,view');
-    Route::get('/franchisor/{id}', 'franchisorStudentDetail')->middleware('permission:student,view');
-
     Route::get('/', 'index')->middleware('permission:student,view');
 
     Route::post('/', 'store')->middleware('permission:student,add');

+ 1 - 4
routes/authRoutes/student_contract.php

@@ -3,11 +3,8 @@
 use Illuminate\Support\Facades\Route;
 use App\Http\Controllers\StudentContractController;
 
+// As rotas /student-contract/franchisor/* pertencem ao fluxo Dashboard (dashboard_franchisor.php).
 Route::controller(StudentContractController::class)->prefix('student-contract')->group(function () {
-    Route::get('/franchisor/summary', 'franchisorSummary')->middleware('permission:student-contract,view');
-    Route::get('/franchisor/frozen', 'franchisorFrozen')->middleware('permission:student-contract,view');
-    Route::get('/franchisor/cancelled', 'franchisorCancelled')->middleware('permission:student-contract,view');
-
     Route::get('/', 'index')->middleware('permission:student-contract,view');
 
     Route::post('/', 'store')->middleware('permission:student-contract,add');