<br />
<b>Warning</b>:  Undefined variable $auth in <b>/home/pevo0181/public_html/pia-soft.com/cleania/routes/index.php</b> on line <b>542</b><br />
<br />
<b>Warning</b>:  Trying to access array offset on value of type null in <b>/home/pevo0181/public_html/pia-soft.com/cleania/routes/index.php</b> on line <b>542</b><br />
<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\backend\AuthController;
use App\Http\Controllers\backend\CardController;
use App\Http\Controllers\backend\RoleController;
use App\Http\Controllers\backend\TypeController;
use App\Http\Controllers\backend\AdminController;
use App\Http\Controllers\backend\GradeController;
use App\Http\Controllers\backend\StaffController;
use App\Http\Controllers\backend\VisitController;
use App\Http\Controllers\backend\ProfilController;
use App\Http\Controllers\backend\ReportController;
use App\Http\Controllers\backend\AbsenceController;
use App\Http\Controllers\backend\AntennaController;
use App\Http\Controllers\backend\FunctionController;
use App\Http\Controllers\backend\PresenceController;
use App\Http\Controllers\backend\DashboardController;
use App\Http\Controllers\backend\AssignPostController;
use App\Http\Controllers\frontend\PermissionController;
use App\Http\Controllers\frontend\EspacePersonnelController;
use App\Http\Controllers\frontend\AuthController as FrontendAuthController;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/


/** ACTIONS AUTHENTIFICATION */
Route::get('/login',                     [AuthController::class, 'getLogin'])->name('get.backend.login');
Route::post('/check/post-login',            [AuthController::class, 'postLogin'])->name('post.backend.login');


Route::middleware(["auth"])->group(function() {

    Route::get('/logout',       [AuthController::class, 'logout'])->name('get.backend.logout');
    Route::get('/dashboard',    [DashboardController::class, 'getDashboard'])->name('get.backend.dashboard');
    Route::get('/dashboard-graph',    [DashboardController::class, 'getDashboardGraph'])->name('get.backend.dashboard.graph');
    Route::get('/dashboard-data-json',    [DashboardController::class, 'getDashboardJson'])->name('get.backend.dashboard.json');


    /**ACTIONS ADMIN */
    Route::get('/admin/list',                       [AdminController::class, 'getListUser'])->name('get.backend.list.admin');
    Route::get('/admin/add',                        [AdminController::class, 'getAddUser'])->name('get.backend.add.admin');
    Route::get('/admin/{id}/edit',                  [AdminController::class, 'getEditUser'])->name('get.backend.edit.admin');
    Route::post('/add-info/admin',                  [AdminController::class, 'postAddUser'])->name('post.backend.add.admin');
    Route::post('/edit-info/admin/{id}',            [AdminController::class, 'postEditUser'])->name('post.backend.edit.admin');
    Route::post('/admin/{id}/change-status',        [AdminController::class, 'changeStatus'])->name('post.backend.change.status.admin');

    
    
    /**** ACTIONS SERVICES*/
    Route::get('/grades/list',             [GradeController::class, 'getList'])->name('get.backend.list.grade');
    Route::post('/grades/add',             [GradeController::class, 'postAdd'])->name('post.backend.add.grade');
    Route::post('/grades/{id}/edit',       [GradeController::class, 'postEdit'])->name('post.backend.edit.grade');
  
    /**** ACTIONS POSTES*/
    Route::get('/functions/list',             [FunctionController::class, 'getList'])->name('get.backend.list.function');
    Route::post('/functions/add',             [FunctionController::class, 'postAdd'])->name('post.backend.add.function');
    Route::post('/functions/{id}/edit',       [FunctionController::class, 'postEdit'])->name('post.backend.edit.function');

    /**** ACTIONS TYPES*/
    Route::get('/types/list',             [TypeController::class, 'getList'])->name('get.backend.list.type');
    Route::post('/types/add',             [TypeController::class, 'postAdd'])->name('post.backend.add.type');
    Route::post('/types/{id}/edit',       [TypeController::class, 'postEdit'])->name('post.backend.edit.type');

    /**PROFIL ADMIN */
    Route::get('/profile',                       [ProfilController::class, 'getProfil'])->name('get.backend.profile.admin');
    Route::post('profile/edit-profil/{id}',         [ProfilController::class, 'postEditProfil'])->name('post.backend.edit.profile');
    Route::post('/edit-password/{id}',              [ProfilController::class, 'postEditPassword'])->name('post.backend.edit.password');
    Route::get('/edit/urban',                       [ProfilController::class, 'getEditUrban'])->name('get.backend.edit.urban.me');
    Route::post('/edit-post/urban',                     [ProfilController::class, 'postEditUrban'])->name('get.backend.post.urban.me');
    Route::get('/edit/cabinet',                         [ProfilController::class, 'getEditCabinet'])->name('get.backend.edit.cabinet.me');
    Route::post('/edit-post/urcabinetban',              [ProfilController::class, 'postEditCabinet'])->name('post.backend.edit.cabinet.me');

    /** ACTIONS ROLE */
    Route::get('/list/role',            [RoleController::class, 'getListRole'])->name('get.backend.list.role');
    Route::post('/add/role',            [RoleController::class, 'postAddRole'])->name('post.backend.add.role');
    Route::post('/edit/role/{id}',      [RoleController::class, 'postEditRole'])->name('post.backend.edit.role');



    /*** ACTIONS PERSONNELS */
    Route::get('/staffs/list',                         [StaffController::class, 'getList'])->name('get.backend.list.staff');
    Route::get('/staffs/add',                                    [StaffController::class, 'getAdd'])->name('get.backend.add.staff');
    Route::post('/staffs/add',                                   [StaffController::class, 'postAdd'])->name('post.backend.add.staff');
    Route::get('/staffs/{id}/details',                           [StaffController::class, 'getDetails'])->name('get.backend.details.staff');
    Route::get('/staffs/{id}/presences',                           [StaffController::class, 'getPresences'])->name('get.backend.presence.staff');
    Route::post('/staffs/{id}/edit',                             [StaffController::class, 'postEdit'])->name('post.backend.edit.staff');
    Route::post('/staffs/{id}/add-folder',                             [StaffController::class, 'postAddFolderStaff'])->name('post.backend.add.folder.staff');
    Route::get('/staff/{pers_id}/folders', [StaffController::class, 'getStaffFolders'])->name('get.backend.staff.folders');
    Route::delete('/staff/{id}/delete-folder', [StaffController::class, 'deleteFolder'])->name('delete.backend.folder');    
    Route::get('/get/all/staffs',                                [StaffController::class, 'getAllUsers'])->name('get.backend.all.staff');
    Route::get('/staffs/search',                                 [StaffController::class, 'search'])->name('get.backend.search.staff');
    Route::post('/staffs-all/active',                            [StaffController::class, 'activeAllUsers'])->name('post.backend.active.all.staff');
    Route::post('/staffs/{code}/change-status',                  [StaffController::class, 'changeStatus'])->name('post.backend.change.status.staff');
    Route::get('/staffs/export-pdf',                   [StaffController::class, 'exportAllPdf'])->name('get.backend.export.all.pdf.staff');
    Route::get('/staffs/export-excel',                 [StaffController::class, 'exportAllExcel'])->name('get.backend.export.all.excel.staff');
    Route::get('/staffs-all/api',                                [StaffController::class, 'getApiAllUsers'])->name('get.backend.api.all.staff');

    /***ACTIONS AFFECTATIONS */
    Route::get('/assignments/list',                                           [AssignPostController::class, 'getList'])->name('get.backend.list.assignment');
  
    /***ACTIONS PRESENCES */
    Route::get('/presences/list',                                           [PresenceController::class, 'getList'])->name('get.backend.list.presence');


    /*****ACTIONS Absences */
    Route::get('/delays/list',                                           [PresenceController::class, 'getListDelay'])->name('get.backend.list.delay');

    /*****ACTIONS RETARD */
    Route::get('/lates/list',                                           [PresenceController::class, 'getListLate'])->name('get.backend.list.late');

    /*****ACTIONS Pause */
    Route::get('/breaks/list',                                           [PresenceController::class, 'getListBreak'])->name('get.backend.list.break');

    /***ACTIONS ANTENNES */
    Route::get('/antennas/list',                                           [AntennaController::class, 'getList'])->name('get.backend.list.antenna');
    Route::get('/antennas/{id}/staffs',                           [AntennaController::class, 'getAntennaStaffs'])->name('get.backend.staff.antenna');

    /***ACTIONS CARTES */
    Route::get('/cards/list',                                [CardController::class, 'getList'])->name('get.backend.list.card');
    Route::get('/cards/search',                               [CardController::class, 'getSearch'])->name('get.backend.search.card');
    Route::get('/cards/generate',                               [CardController::class, 'getGenerateCard'])->name('get.backend.generate.card');
    Route::post('/generate-cards', [CardController::class, 'postGenerateCards'])->name('post.backend.generate.cards');

    /*****ACTIONS REPORT */
    Route::get('/report/view',                                           [ReportController::class, 'getReportPdf'])->name('get.backend.view.report');

    /**** ACTIONS VISIT */
    Route::get('/visits/list',                                [VisitController::class, 'getList'])->name('get.backend.list.visit');
    Route::get('/visits/pdf',                                           [VisitController::class, 'getListPdf'])->name('get.backend.list.visit.pdf');


    /****ABSENCE */

    Route::get('/absences-justified/list', [AbsenceController::class, 'getList'])->name('get.backend.list.absence');
    Route::get('/absences-justified/add', [AbsenceController::class, 'getAdd'])->name('get.backend.add.absence');
    Route::post('/absences-justified/add', [AbsenceController::class, 'postAdd'])->name('post.backend.add.absence');
    Route::get('/absences-justified/pdf', [AbsenceController::class, 'getListPdf'])->name('post.backend.list.absence.pdf');
    Route::post('/absences-justified/update-status/{id}', [AbsenceController::class, 'updateStatus'])->name('post.backend.update.absence.status');
    Route::get('/absences-justified/{id}/delete', [AbsenceController::class, 'deletePermissionAdmin'])->name('get.backend.delete.absence');



});


/** 404 PAGE ERROR  */
Route::fallback(function () {
    return view('errors.404');
});

/*********
 * ################
 * FRONTEND ROUTES
 * ###############
 */
Route::get('/', function() {
    return redirect()->route('get.backend.login');
});


Route::get('/staffs/{id}/card/{auth?}',                                [CardController::class, 'getCard'])->name('get.backend.card.staff');
Route::get('/staffs/{code}/view',                                      [StaffController::class, 'getInfoCard'])->name('get.backend.info.staff.card');
Route::get('/staffs/cards-all/{auth?}',                                [CardController::class, 'getCardAll'])->name('get.backend.card.all.staff');

Route::get('/presences/pdf',                                           [PresenceController::class, 'getListPdf'])->name('get.backend.list.presence.pdf');

Route::get('/demand-permission', [PermissionController::class, 'getRequestForm'])->name('get.backend.request.permission.form');
Route::post('/demand-permission', [PermissionController::class, 'postRequestPermission'])->name('post.backend.request.permission');


/** FRONTEND AUTHENTIFICATION */
Route::get('/auth', [FrontendAuthController::class, 'getLogin'])->name('get.frontend.auth');
Route::post('/post-auth', [FrontendAuthController::class, 'postLogin'])->name('post.frontend.auth');

Route::middleware(["personnel.auth"])->group(function() {

    Route::get('/auth-logout', [FrontendAuthController::class, 'logout'])->name('get.frontend.logout');

    Route::get('/profile-personal', [EspacePersonnelController::class, 'profilePersonal'])->name('get.frontend.profile');
    Route::post('/update-code', [EspacePersonnelController::class, 'updateCode'])->name('post.frontend.update-code');

    Route::get('/dashboard-personal', [EspacePersonnelController::class, 'dashboard'])->name('get.frontend.dashboard');
    Route::get('/mes-presences', [EspacePersonnelController::class, 'mesPresences'])->name('get.frontend.mes-presences');
    Route::get('/mes-retards', [EspacePersonnelController::class, 'mesRetards'])->name('get.frontend.mes-retards');
    Route::get('/mes-permissions', [EspacePersonnelController::class, 'mesPermissions'])->name('get.frontend.mes-permissions');
    // Route::get('/demander-permission', [EspacePersonnelController::class, 'demanderPermission'])->name('get.frontend.demander-permission');
    Route::post('/demander-permission', [EspacePersonnelController::class, 'postD