|
|
@@ -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');
|
|
|
+});
|