<?php

// RAW DEBUG - Remove after testing
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    error_log("POST DATA: " . print_r($_POST, true));
}

// Enable error reporting for debugging
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

require_once dirname(__DIR__) . '/app/Core/Application.php';

use App\Core\Application;

$app = new Application();
$router = $app->getRouter();

// Auth Routes
$router->add('GET', 'login', 'AuthController@login');
$router->add('POST', 'login', 'AuthController@login');
$router->add('GET', 'logout', 'AuthController@logout');

// Dashboard
$router->add('GET', '', 'PortalController@index');
$router->add('GET', 'dashboard', 'DashboardController@index');
$router->add('POST', 'dashboard/widgets/add', 'DashboardController@addWidget');
$router->add('POST', 'dashboard/widgets/delete/{id}', 'DashboardController@removeWidget');
$router->add('GET', 'portal', 'PortalController@index');

// Language switcher
$router->add('GET', 'lang/set', 'LangController@set');

// Notifications
$router->add('GET', 'notifications', 'NotificationController@index');
$router->add('POST', 'notifications/mark-read/{id}', 'NotificationController@markRead');
$router->add('POST', 'notifications/mark-all-read', 'NotificationController@markAllRead');

// Employee Directory & Org Chart
$router->add('GET', 'directory', 'UserController@directory');
$router->add('GET', 'org-chart', 'UserController@orgChart');

// User Management
$router->add('GET', 'users', 'UserController@index');
$router->add('GET', 'users/create', 'UserController@create');
$router->add('POST', 'users/store', 'UserController@store');
$router->add('GET', 'users/edit/{id}', 'UserController@edit');
$router->add('POST', 'users/update/{id}', 'UserController@update');
$router->add('POST', 'users/delete/{id}', 'UserController@delete');
$router->add('POST', 'users/{id}/notes/add', 'UserController@addNote');
$router->add('POST', 'users/{id}/notes/{note_id}/delete', 'UserController@deleteNote');

// Role Management
$router->add('GET',  'roles',              'RoleController@index');
$router->add('GET',  'roles/create',       'RoleController@create');
$router->add('POST', 'roles/store',        'RoleController@store');
$router->add('GET',  'roles/edit/{id}',    'RoleController@edit');
$router->add('POST', 'roles/update/{id}',  'RoleController@update');
$router->add('POST', 'roles/delete/{id}',  'RoleController@delete');

// Group Management
$router->add('GET', 'groups', 'GroupController@index');
$router->add('GET', 'groups/create', 'GroupController@create');
$router->add('POST', 'groups/store', 'GroupController@store');
$router->add('GET', 'groups/edit/{id}', 'GroupController@edit');
$router->add('POST', 'groups/update/{id}', 'GroupController@update');
$router->add('POST', 'groups/delete/{id}', 'GroupController@delete');

// AI Document Intelligence & Extraction
$router->add('GET',  'admin/ai-extract',          'AIController@index');
$router->add('POST', 'admin/ai-extract/analyze',  'AIController@analyze');
$router->add('GET',  'admin/ai-settings',         'AIController@settings');
$router->add('POST', 'admin/ai-settings/save',    'AIController@saveSettings');
$router->add('POST', 'admin/ai-settings/test-ollama', 'AIController@testOllama');
$router->add('GET',  'recruitment/cv-parse',      'AIController@cvParse');
$router->add('POST', 'recruitment/cv-parse',      'AIController@cvParseProcess');
$router->add('GET',  'admin/ai-bulk',             'AIController@bulk');
$router->add('POST', 'admin/ai-bulk/process',     'AIController@bulkProcess');
$router->add('GET',  'admin/ai-history',          'AIController@history');
$router->add('POST', 'admin/ai-history/clear',    'AIController@historyClear');
$router->add('GET',  'admin/ai-history/{id}/view',   'AIController@historyView');
$router->add('POST', 'admin/ai-history/{id}/delete', 'AIController@historyDelete');
$router->add('POST', 'admin/ai-import/{id}',      'AIController@import');
$router->add('GET',  'admin/ai-templates',        'AIController@templates');
$router->add('GET',  'admin/ai-templates/create', 'AIController@templateCreate');
$router->add('POST', 'admin/ai-templates/store',  'AIController@templateStore');
$router->add('GET',  'admin/ai-templates/edit/{id}',   'AIController@templateEdit');
$router->add('POST', 'admin/ai-templates/update/{id}', 'AIController@templateUpdate');
$router->add('POST', 'admin/ai-templates/delete/{id}', 'AIController@templateDelete');
$router->add('GET',  'admin/ai-templates/{id}/json',   'AIController@templateJson');

// Group Types
$router->add('GET', 'group-types', 'GroupTypeController@index');
$router->add('GET', 'group-types/create', 'GroupTypeController@create');
$router->add('POST', 'group-types/store', 'GroupTypeController@store');
$router->add('GET', 'group-types/edit/{id}', 'GroupTypeController@edit');
$router->add('POST', 'group-types/update/{id}', 'GroupTypeController@update');
$router->add('POST', 'group-types/delete/{id}', 'GroupTypeController@delete');

// Project Management
$router->add('GET',  'projects',                        'ProjectController@index');
$router->add('GET',  'projects/create',                  'ProjectController@create');
$router->add('POST', 'projects/store',                   'ProjectController@store');
$router->add('GET',  'projects/templates',               'ProjectController@templates');
$router->add('POST', 'projects/templates/save',          'ProjectController@saveTemplate');
$router->add('POST', 'projects/templates/{id}/delete',   'ProjectController@deleteTemplate');
$router->add('GET',  'projects/templates/{id}/json',     'ProjectController@getTemplate');
$router->add('GET',  'projects/view/{id}',               'ProjectController@show');
$router->add('GET',  'projects/edit/{id}',               'ProjectController@edit');
$router->add('POST', 'projects/update/{id}',             'ProjectController@update');
$router->add('POST', 'projects/delete/{id}',             'ProjectController@delete');

// Accounting - Spreadsheets
$router->add('GET', 'accounting/project/{id}/sheets', 'AccountingController@projectSheets');
$router->add('POST', 'accounting/sheet/create', 'AccountingController@createSheet');
$router->add('GET', 'accounting/sheet/edit/{id}', 'AccountingController@editSheet');
$router->add('POST', 'accounting/sheet/save/{id}', 'AccountingController@saveSheet');
$router->add('GET', 'accounting/api/sheet_data', 'AccountingController@getSheetDataApi');

// Ticketing System
$router->add('GET', 'tickets', 'TicketController@index');
$router->add('GET', 'tickets/create', 'TicketController@create');
$router->add('GET', 'tickets/new', 'TicketController@create');
$router->add('POST', 'tickets/store', 'TicketController@store');
$router->add('GET', 'tickets/edit/{id}', 'TicketController@edit');
$router->add('POST', 'tickets/update/{id}', 'TicketController@update');
$router->add('POST', 'tickets/delete/{id}', 'TicketController@delete');

// HR Suite - Announcements (legacy routes removed; new AnnouncementController routes below)

// HR Suite - Leave Management
$router->add('GET', 'leave', 'HRController@leave');
$router->add('POST', 'leave/request', 'HRController@requestLeave');
$router->add('POST', 'leave/approve', 'HRController@approveLeave');
$router->add('POST', 'leave/approve/{id}', 'HRController@approveLeave');
$router->add('POST', 'leave/reject', 'HRController@rejectLeave');
$router->add('POST', 'leave/reject/{id}', 'HRController@rejectLeave');

// HR Suite - Attendance
$router->add('GET', 'attendance', 'HRController@attendance');
$router->add('POST', 'attendance/clock-in', 'HRController@clockIn');
$router->add('POST', 'attendance/clock-out', 'HRController@clockOut');

// HR Suite - Asset Management
$router->add('GET', 'assets', 'HRController@assets');
$router->add('POST', 'assets/add', 'HRController@addAsset');
$router->add('POST', 'assets/assign', 'HRController@assignAsset');

// HR Letter Templates
$router->add('GET',  'hr/letter-templates',                       'HRLetterController@index');
$router->add('POST', 'hr/letter-templates/save',                  'HRLetterController@save');
$router->add('POST', 'hr/letter-templates/{id}/delete',           'HRLetterController@delete');
$router->add('GET',  'hr/letter-templates/{id}/generate',         'HRLetterController@generate');
$router->add('GET',  'hr/letter-templates/{id}/json',             'HRLetterController@getJson');

// Announcement Templates
$router->add('GET',  'announcements/templates',                   'HRController@announcementTemplates');
$router->add('POST', 'announcements/templates/save',              'HRController@saveAnnouncementTemplate');
$router->add('POST', 'announcements/templates/{id}/delete',       'HRController@deleteAnnouncementTemplate');
$router->add('GET',  'announcements/templates/{id}/json',         'HRController@getAnnouncementTemplate');

// Advanced HR - Documents
$router->add('GET', 'documents', 'AdvancedHRController@documents');
$router->add('POST', 'documents/upload', 'AdvancedHRController@uploadDocument');

// Advanced HR - Reviews
$router->add('GET', 'reviews', 'AdvancedHRController@reviews');
$router->add('POST', 'reviews/post', 'AdvancedHRController@postReview');

// Leave Management
$router->add('GET',  'admin/leave',                    'LeaveController@index');
$router->add('GET',  'admin/leave/balances',           'LeaveController@balances');
$router->add('POST', 'admin/leave/balances/set',       'LeaveController@setBalance');
$router->add('POST', 'admin/leave/{id}/approve',       'LeaveController@approve');
$router->add('POST', 'admin/leave/{id}/reject',        'LeaveController@reject');
$router->add('GET',  'my-leave',                       'LeaveController@myLeave');
$router->add('GET',  'leave/request',                  'LeaveController@request');
$router->add('POST', 'leave/store',                    'LeaveController@store');
$router->add('GET',  'leave/{id}',                     'LeaveController@show');

// Performance Reviews
$router->add('GET',  'admin/performance',              'PerformanceController@index');
$router->add('GET',  'admin/performance/goals',        'PerformanceController@goals');
$router->add('GET',  'performance/create',             'PerformanceController@create');
$router->add('POST', 'performance/store',              'PerformanceController@store');
$router->add('GET',  'my-reviews',                     'PerformanceController@myReviews');
$router->add('GET',  'my-goals',                       'PerformanceController@myGoals');
$router->add('POST', 'performance/goals/store',        'PerformanceController@storeGoal');
$router->add('POST', 'performance/goals/{id}/update',  'PerformanceController@updateGoal');
$router->add('POST', 'performance/goals/{id}/delete',  'PerformanceController@deleteGoal');
$router->add('POST', 'performance/{id}/submit',        'PerformanceController@submit');
$router->add('POST', 'performance/{id}/acknowledge',   'PerformanceController@acknowledge');
$router->add('POST', 'performance/{id}/delete',        'PerformanceController@delete');
$router->add('GET',  'performance/{id}/edit',          'PerformanceController@edit');
$router->add('POST', 'performance/{id}/update',        'PerformanceController@update');
$router->add('GET',  'performance/{id}',               'PerformanceController@show');

// Training & Certifications
$router->add('GET',  'training',                            'TrainingController@index');
$router->add('GET',  'training/create',                     'TrainingController@createCourse');
$router->add('POST', 'training/store',                      'TrainingController@createCourse');
$router->add('GET',  'admin/certifications',                'TrainingController@certifications');
$router->add('GET',  'my-courses',                          'TrainingController@myCourses');
$router->add('GET',  'my-certifications',                   'TrainingController@myCertifications');
$router->add('POST', 'certifications/add',                  'TrainingController@addCertification');
$router->add('GET',  'certifications/{id}/edit',            'TrainingController@editCertification');
$router->add('POST', 'certifications/{id}/edit',            'TrainingController@editCertification');
$router->add('POST', 'certifications/{id}/delete',          'TrainingController@deleteCertification');
$router->add('POST', 'training/{id}/enroll',                'TrainingController@enroll');
$router->add('POST', 'training/enrollments/{id}/update',    'TrainingController@updateEnrollment');
$router->add('GET',  'training/{id}/edit',                  'TrainingController@editCourse');
$router->add('POST', 'training/{id}/update',                'TrainingController@editCourse');
$router->add('POST', 'training/{id}/delete',                'TrainingController@deleteCourse');
$router->add('GET',  'training/{id}',                       'TrainingController@showCourse');

// Advanced HR - Training & Certifications (legacy)
$router->add('GET', 'training', 'AdvancedHRController@training');
$router->add('GET', 'training/{id}', 'AdvancedHRController@training');
$router->add('POST', 'training/add', 'AdvancedHRController@addTraining');
$router->add('POST', 'training/update', 'AdvancedHRController@updateTraining');
$router->add('POST', 'training/enroll', 'AdvancedHRController@enrollEmployee');

// Advanced HR - Calendar
$router->add('GET', 'calendar', 'AdvancedHRController@calendar');
$router->add('POST', 'calendar/add', 'AdvancedHRController@addEvent');
$router->add('POST', 'calendar/settings', 'AdvancedHRController@saveCalendarSettings');
$router->add('GET', 'api/calendar/events', 'AdvancedHRController@getCalendarEvents');
$router->add('POST', 'api/calendar/update_event', 'AdvancedHRController@updateCalendarEvent');

// Advanced HR - Recruitment
$router->add('GET', 'recruitment', 'AdvancedHRController@recruitment');
$router->add('POST', 'recruitment/post', 'AdvancedHRController@postJob');
$router->add('POST', 'recruitment/application/update/{id}', 'AdvancedHRController@updateApplication');

// Admin routes (aliases for sidebar links)
$router->add('GET', 'admin/users', 'UserController@index');
$router->add('GET', 'admin/groups', 'GroupController@index');
$router->add('GET', 'admin/projects', 'ProjectController@index');
$router->add('GET', 'admin/recruitment', 'AdvancedHRController@recruitment');
$router->add('GET', 'admin/assets', 'HRController@assets');
$router->add('GET',  'admin/auth_logs',     'AdminController@authLogs');
$router->add('GET',  'admin/rate-limits',   'AdminController@rateLimits');
$router->add('POST', 'admin/rate-limits/unblock', 'AdminController@unblockIp');
$router->add('GET',  'admin/appearance',              'AppearanceController@index');
$router->add('POST', 'admin/appearance/theme',        'AppearanceController@saveTheme');
$router->add('POST', 'admin/appearance/code',         'AppearanceController@saveCode');
$router->add('POST', 'admin/appearance/features',     'AppearanceController@saveFeatures');
$router->add('POST', 'admin/appearance/dashboard',    'AppearanceController@saveDashboard');
$router->add('POST', 'admin/appearance/reset',        'AppearanceController@resetSettings');
// Legacy save route
$router->add('POST', 'admin/appearance/save',         'AppearanceController@saveTheme');
// Saved themes — static routes BEFORE {id} pattern
$router->add('POST', 'admin/appearance/themes/save-as',     'AppearanceController@saveAsTheme');
$router->add('POST', 'admin/appearance/themes/import',      'AppearanceController@importTheme');
$router->add('POST', 'admin/appearance/themes/from-css',    'AppearanceController@saveCodeAsTheme');
$router->add('POST', 'admin/appearance/themes/{id}/load',   'AppearanceController@loadTheme');
$router->add('POST', 'admin/appearance/themes/{id}/delete', 'AppearanceController@deleteTheme');
$router->add('GET',  'admin/appearance/themes/{id}/export', 'AppearanceController@exportTheme');

// Goals / OKR
$router->add('GET',  'goals',                     'GoalsController@index');
$router->add('POST', 'goals/save',                'GoalsController@save');
$router->add('POST', 'goals/{id}/progress',       'GoalsController@updateProgress');
$router->add('POST', 'goals/{id}/delete',         'GoalsController@delete');

// HR Reports & Analytics
$router->add('GET',  'reports',                   'ReportsController@index');

// Surveys / Feedback
$router->add('GET',  'surveys',                       'SurveyController@index');
$router->add('GET',  'surveys/create',                'SurveyController@create');
$router->add('POST', 'surveys/store',                 'SurveyController@store');
$router->add('GET',  'surveys/{id}/edit',             'SurveyController@edit');
$router->add('POST', 'surveys/{id}/update',           'SurveyController@update');
$router->add('POST', 'surveys/{id}/delete',           'SurveyController@delete');
$router->add('POST', 'surveys/{id}/activate',         'SurveyController@activate');
$router->add('POST', 'surveys/{id}/close',            'SurveyController@close');
$router->add('GET',  'surveys/{id}/fill',             'SurveyController@fill');
$router->add('POST', 'surveys/{id}/respond',          'SurveyController@respond');
$router->add('GET',  'surveys/{id}/results',          'SurveyController@results');

// Legal
$router->add('GET', 'terms-of-service', 'LegalController@terms');
$router->add('GET', 'privacy-policy', 'LegalController@privacy');
$router->add('GET', 'legal/accept', 'LegalController@showTerms');
$router->add('POST', 'legal/accept', 'LegalController@acceptTerms');

// Profile
$router->add('GET', 'profile', 'ProfileController@index');
$router->add('POST', 'profile/change-password', 'ProfileController@changePassword');
$router->add('POST', 'profile/update', 'ProfileController@update');

// My Payslips
$router->add('GET', 'my-payslips', 'SalaryController@myPayslips');

// Timesheets
$router->add('GET',  'timesheets',                              'TimesheetController@index');
$router->add('POST', 'timesheets/upload',                       'TimesheetController@upload');
$router->add('GET',  'timesheets/templates',                    'TimesheetController@timesheetTemplates');
$router->add('POST', 'timesheets/templates/save',               'TimesheetController@saveTimesheetTemplate');
$router->add('POST', 'timesheets/templates/{id}/delete',        'TimesheetController@deleteTimesheetTemplate');
$router->add('GET',  'timesheets/templates/{id}/json',          'TimesheetController@getTimesheetTemplate');
$router->add('POST', 'timesheets/from-template/{id}',           'TimesheetController@createFromTemplate');
$router->add('GET',  'timesheets/{id}',                         'TimesheetController@view');
$router->add('POST', 'timesheets/{id}/save',                    'TimesheetController@save');
$router->add('POST', 'timesheets/{id}/delete',                  'TimesheetController@delete');
$router->add('GET',  'timesheets/{id}/approve',                 'TimesheetController@approve');
$router->add('GET',  'timesheets/{id}/export-to-sheet',         'TimesheetController@exportToSheet');

// Invoices
$router->add('GET',  'invoices',                           'InvoiceController@index');
$router->add('GET',  'invoices/new',                       'InvoiceController@create');
$router->add('POST', 'invoices/new',                       'InvoiceController@store');
$router->add('GET',  'invoices/templates',                 'InvoiceController@templates');
$router->add('POST', 'invoices/templates/save',            'InvoiceController@saveTemplate');
$router->add('POST', 'invoices/templates/{id}/delete',     'InvoiceController@deleteTemplate');
$router->add('GET',  'invoices/templates/{id}/json',       'InvoiceController@getTemplate');
$router->add('GET',  'invoices/{id}',                      'InvoiceController@view');
$router->add('GET',  'invoices/{id}/edit',                 'InvoiceController@edit');
$router->add('POST', 'invoices/{id}/update',               'InvoiceController@update');
$router->add('POST', 'invoices/{id}/mark-sent',            'InvoiceController@markSent');
$router->add('POST', 'invoices/{id}/mark-paid',            'InvoiceController@markPaid');
$router->add('POST', 'invoices/{id}/delete',               'InvoiceController@delete');

// Accounting Module
$router->add('GET', 'accounting', 'AccountingController@index');
$router->add('POST', 'accounting/upload', 'AccountingController@upload');
$router->add('GET', 'accounting/edit/{id}', 'AccountingController@edit');
$router->add('POST', 'accounting/update/{id}', 'AccountingController@update');
$router->add('GET', 'accounting/export', 'AccountingController@export');
$router->add('POST', 'accounting/import', 'AccountingController@import');
$router->add('POST', 'accounting/delete/{id}', 'AccountingController@delete');

// Salary Management
$router->add('GET', 'salaries', 'SalaryController@index');
$router->add('GET', 'salaries/generate', 'SalaryController@showGenerate');
$router->add('POST', 'salaries/generate', 'SalaryController@generate');
$router->add('GET', 'salaries/history', 'SalaryController@history');
$router->add('GET', 'salaries/export', 'SalaryController@export');
$router->add('POST', 'salaries/import', 'SalaryController@import');

// Expense Reports (ahr_expense DB)
$router->add('GET',  'expenses',                          'ExpenseController@index');
$router->add('GET',  'expenses/new',                      'ExpenseController@create');
$router->add('POST', 'expenses/store',                    'ExpenseController@store');
$router->add('GET',  'expenses/{id}',                     'ExpenseController@view');
$router->add('GET',  'expenses/{id}/edit',                'ExpenseController@edit');
$router->add('POST', 'expenses/{id}/update',              'ExpenseController@update');
$router->add('POST', 'expenses/{id}/submit',              'ExpenseController@submit');
$router->add('POST', 'expenses/{id}/approve',             'ExpenseController@approve');
$router->add('POST', 'expenses/{id}/reject',              'ExpenseController@reject');
$router->add('POST', 'expenses/{id}/delete',              'ExpenseController@delete');

// Benefits (ahr_benefits DB)
$router->add('GET',  'benefits',                          'BenefitsController@index');
$router->add('GET',  'benefits/packages',                 'BenefitsController@packages');
$router->add('POST', 'benefits/packages/save',            'BenefitsController@savePackage');
$router->add('POST', 'benefits/packages/{id}/delete',     'BenefitsController@deletePackage');
$router->add('POST', 'benefits/assign',                   'BenefitsController@assign');
$router->add('POST', 'benefits/assignments/{id}/revoke',  'BenefitsController@revoke');
$router->add('POST', 'benefits/assignments/{id}/delete',  'BenefitsController@deleteAssignment');

// Skills Matrix (ahr_skills DB)
$router->add('GET',  'skills',                            'SkillsController@index');
$router->add('POST', 'skills/save',                       'SkillsController@saveSkill');
$router->add('POST', 'skills/employee/add',               'SkillsController@addEmployeeSkill');
$router->add('POST', 'skills/{id}/delete',                'SkillsController@deleteSkill');
$router->add('POST', 'skills/employee/{id}/remove',       'SkillsController@removeEmployeeSkill');
$router->add('GET',  'skills/{id}/json',                  'SkillsController@getSkillJson');

// Onboarding & Offboarding
$router->add('GET',  'admin/onboarding',                                    'OnboardingController@index');
$router->add('GET',  'admin/onboarding/templates',                          'OnboardingController@templates');
$router->add('GET',  'admin/onboarding/templates/create',                   'OnboardingController@templateCreate');
$router->add('POST', 'admin/onboarding/templates/store',                    'OnboardingController@templateStore');
$router->add('GET',  'admin/onboarding/templates/edit/{id}',                'OnboardingController@templateEdit');
$router->add('POST', 'admin/onboarding/templates/update/{id}',              'OnboardingController@templateUpdate');
$router->add('POST', 'admin/onboarding/templates/{id}/delete',              'OnboardingController@templateDelete');
$router->add('GET',  'admin/onboarding/assign',                             'OnboardingController@assign');
$router->add('POST', 'admin/onboarding/assign/store',                       'OnboardingController@assignStore');
$router->add('GET',  'admin/onboarding/{id}',                               'OnboardingController@show');
$router->add('POST', 'admin/onboarding/{id}/toggle-task',                   'OnboardingController@toggleTask');
$router->add('POST', 'admin/onboarding/{id}/complete-all',                  'OnboardingController@completeAll');
$router->add('POST', 'admin/onboarding/{id}/status',                        'OnboardingController@updateStatus');
$router->add('POST', 'admin/onboarding/{id}/delete',                        'OnboardingController@delete');

// Offboarding Tracker
$router->add('GET',  'offboarding',                               'OffboardingController@index');
$router->add('GET',  'offboarding/create',                        'OffboardingController@create');
$router->add('POST', 'offboarding/store',                         'OffboardingController@store');
$router->add('GET',  'my-offboarding',                            'OffboardingController@myOffboarding');
$router->add('POST', 'offboarding/task/{id}/toggle',              'OffboardingController@toggleTask');
$router->add('POST', 'offboarding/task/{id}/delete',              'OffboardingController@deleteTask');
$router->add('GET',  'offboarding/{id}',                          'OffboardingController@show');
$router->add('POST', 'offboarding/{id}/update',                   'OffboardingController@update');
$router->add('POST', 'offboarding/{id}/delete',                   'OffboardingController@delete');
$router->add('POST', 'offboarding/{id}/task/add',                 'OffboardingController@addTask');

// Incident & Safety Tracking
$router->add('GET',  'admin/incidents',                        'IncidentController@index');
$router->add('GET',  'admin/incidents/create',                 'IncidentController@create');
$router->add('POST', 'admin/incidents/store',                  'IncidentController@store');
$router->add('GET',  'admin/incidents/{id}',                   'IncidentController@show');
$router->add('GET',  'admin/incidents/{id}/edit',              'IncidentController@edit');
$router->add('POST', 'admin/incidents/{id}/update',            'IncidentController@update');
$router->add('POST', 'admin/incidents/{id}/status',            'IncidentController@updateStatus');
$router->add('POST', 'admin/incidents/{id}/action/add',        'IncidentController@addAction');
$router->add('POST', 'admin/incidents/action/{action_id}/close',  'IncidentController@closeAction');
$router->add('POST', 'admin/incidents/action/{action_id}/delete', 'IncidentController@deleteAction');
$router->add('POST', 'admin/incidents/{id}/delete',            'IncidentController@delete');

// Shift & Schedule Management
$router->add('GET',  'admin/shifts',                    'ShiftController@index');
$router->add('GET',  'admin/shifts/create',             'ShiftController@create');
$router->add('POST', 'admin/shifts/store',              'ShiftController@store');
$router->add('GET',  'admin/shifts/edit/{id}',          'ShiftController@edit');
$router->add('POST', 'admin/shifts/update/{id}',        'ShiftController@update');
$router->add('POST', 'admin/shifts/delete/{id}',        'ShiftController@delete');
$router->add('POST', 'admin/shifts/assign',             'ShiftController@assign');
$router->add('POST', 'admin/shifts/remove/{id}',        'ShiftController@removeAssignment');
$router->add('GET',  'my-shift',                        'ShiftController@myShift');

// 1-on-1 Meeting Tracker
$router->add('GET',  'admin/one-on-ones',                               'OneOnOneController@index');
$router->add('GET',  'admin/one-on-ones/create',                        'OneOnOneController@create');
$router->add('POST', 'admin/one-on-ones/store',                         'OneOnOneController@store');
$router->add('GET',  'admin/one-on-ones/{id}',                          'OneOnOneController@show');
$router->add('GET',  'admin/one-on-ones/{id}/edit',                     'OneOnOneController@edit');
$router->add('POST', 'admin/one-on-ones/{id}/update',                   'OneOnOneController@update');
$router->add('POST', 'admin/one-on-ones/{id}/status',                   'OneOnOneController@updateStatus');
$router->add('POST', 'admin/one-on-ones/{id}/delete',                   'OneOnOneController@delete');
$router->add('POST', 'admin/one-on-ones/{id}/item/add',                 'OneOnOneController@addItem');
$router->add('POST', 'admin/one-on-ones/item/{item_id}/toggle',         'OneOnOneController@toggleItem');
$router->add('POST', 'admin/one-on-ones/item/{item_id}/delete',         'OneOnOneController@deleteItem');
$router->add('GET',  'my-one-on-ones',                                  'OneOnOneController@myMeetings');

// Policy & Compliance
$router->add('GET',  'admin/policies',                  'PolicyController@index');
$router->add('GET',  'admin/policies/create',           'PolicyController@create');
$router->add('POST', 'admin/policies/store',            'PolicyController@store');
$router->add('GET',  'admin/policies/{id}',             'PolicyController@show');
$router->add('GET',  'admin/policies/{id}/edit',        'PolicyController@edit');
$router->add('POST', 'admin/policies/{id}/update',      'PolicyController@update');
$router->add('POST', 'admin/policies/{id}/publish',     'PolicyController@publish');
$router->add('POST', 'admin/policies/{id}/unpublish',   'PolicyController@unpublish');
$router->add('POST', 'admin/policies/{id}/acknowledge', 'PolicyController@acknowledge');
$router->add('GET',  'admin/policies/{id}/compliance',  'PolicyController@compliance');
$router->add('POST', 'admin/policies/{id}/delete',      'PolicyController@delete');

// Leave Balance Management
$router->add('GET',  'admin/leave-balances',            'LeaveBalanceController@index');
$router->add('GET',  'my-leave-balance',                'LeaveBalanceController@myBalance');
$router->add('POST', 'admin/leave-balances/upsert',     'LeaveBalanceController@upsert');
$router->add('POST', 'admin/leave-balances/bulk',       'LeaveBalanceController@bulkSet');
$router->add('POST', 'admin/leave-balances/copy-year',  'LeaveBalanceController@copyYear');

// HR Analytics
$router->add('GET',  'admin/analytics',                 'AnalyticsController@index');

// Asset Management
$router->add('GET',  'admin/assets',                                       'AssetController@index');
$router->add('GET',  'admin/assets/create',                                'AssetController@create');
$router->add('POST', 'admin/assets/store',                                 'AssetController@store');
$router->add('POST', 'admin/assets/maintenance/{maintenance_id}/complete', 'AssetController@completeMaintenance');
$router->add('GET',  'admin/assets/{id}',                                  'AssetController@show');
$router->add('GET',  'admin/assets/{id}/edit',                             'AssetController@edit');
$router->add('POST', 'admin/assets/{id}/update',                           'AssetController@update');
$router->add('POST', 'admin/assets/{id}/delete',                           'AssetController@delete');
$router->add('POST', 'admin/assets/{id}/assign',                           'AssetController@assign');
$router->add('POST', 'admin/assets/{id}/return',                           'AssetController@returnAsset');
$router->add('POST', 'admin/assets/{id}/maintenance',                      'AssetController@addMaintenance');
$router->add('GET',  'my-assets',                                          'AssetController@myAssets');

// Recruitment Pipeline
$router->add('GET',  'admin/recruitment',                          'RecruitmentController@index');
$router->add('GET',  'admin/recruitment/jobs',                     'RecruitmentController@jobs');
$router->add('GET',  'admin/recruitment/jobs/create',              'RecruitmentController@createJob');
$router->add('POST', 'admin/recruitment/jobs/store',               'RecruitmentController@storeJob');
$router->add('GET',  'admin/recruitment/jobs/{id}',                'RecruitmentController@showJob');
$router->add('GET',  'admin/recruitment/jobs/{id}/edit',           'RecruitmentController@editJob');
$router->add('POST', 'admin/recruitment/jobs/{id}/update',         'RecruitmentController@updateJob');
$router->add('POST', 'admin/recruitment/jobs/{id}/delete',         'RecruitmentController@deleteJob');
$router->add('POST', 'admin/recruitment/jobs/{id}/publish',        'RecruitmentController@publishJob');
$router->add('POST', 'admin/recruitment/jobs/{id}/close',          'RecruitmentController@closeJob');
$router->add('GET',  'admin/recruitment/applications/{id}',        'RecruitmentController@showApplication');
$router->add('POST', 'admin/recruitment/applications/{id}/stage',  'RecruitmentController@moveStage');
$router->add('POST', 'admin/recruitment/applications/{id}/rate',   'RecruitmentController@rateApplication');
$router->add('POST', 'admin/recruitment/applications/{id}/note',   'RecruitmentController@noteApplication');
$router->add('POST', 'admin/recruitment/applications/{id}/interview', 'RecruitmentController@scheduleInterview');
$router->add('POST', 'admin/recruitment/applications/{id}/delete', 'RecruitmentController@deleteApplication');

// Employee Wellness
$router->add('GET',  'my-wellness',                         'WellnessController@myCheckin');
$router->add('POST', 'my-wellness/checkin',                 'WellnessController@submitCheckin');
$router->add('GET',  'admin/wellness',                      'WellnessController@dashboard');
$router->add('GET',  'admin/wellness/tips',                 'WellnessController@tips');
$router->add('POST', 'admin/wellness/tips/store',           'WellnessController@storeTip');
$router->add('POST', 'admin/wellness/tips/{id}/delete',     'WellnessController@deleteTip');

// Payroll Processing
$router->add('GET',  'payroll',                                        'PayrollController@index');
$router->add('GET',  'payroll/create',                                 'PayrollController@create');
$router->add('POST', 'payroll/store',                                  'PayrollController@store');
$router->add('GET',  'my-payroll',                                     'PayrollController@myPayslips');
$router->add('POST', 'payroll/salary/{user_id}/set',                   'PayrollController@setSalary');
$router->add('GET',  'payroll/{id}',                                   'PayrollController@show');
$router->add('POST', 'payroll/{id}/finalize',                          'PayrollController@finalize');
$router->add('POST', 'payroll/{id}/delete',                            'PayrollController@delete');
$router->add('GET',  'payroll/{run_id}/entry/{user_id}/edit',          'PayrollController@editEntry');
$router->add('POST', 'payroll/{run_id}/entry/{user_id}/update',        'PayrollController@updateEntry');
$router->add('GET',  'payroll/{run_id}/payslip/{user_id}',             'PayrollController@payslip');

// Employee Milestones
$router->add('GET',  'milestones',                         'MilestoneController@index');
$router->add('GET',  'milestones/create',                  'MilestoneController@create');
$router->add('POST', 'milestones/store',                   'MilestoneController@store');
$router->add('GET',  'milestones/edit/{id}',               'MilestoneController@edit');
$router->add('POST', 'milestones/update/{id}',             'MilestoneController@update');
$router->add('POST', 'milestones/delete/{id}',             'MilestoneController@delete');
$router->add('POST', 'milestones/acknowledge/{id}',        'MilestoneController@acknowledge');
$router->add('GET',  'milestones/profile/{id}',            'MilestoneController@profile');

// Department Management
$router->add('GET',  'departments',                               'DepartmentController@index');
$router->add('GET',  'departments/create',                        'DepartmentController@create');
$router->add('POST', 'departments/store',                         'DepartmentController@store');
$router->add('GET',  'departments/{id}/edit',                     'DepartmentController@edit');
$router->add('POST', 'departments/{id}/update',                   'DepartmentController@update');
$router->add('POST', 'departments/{id}/delete',                   'DepartmentController@delete');
$router->add('POST', 'departments/{id}/assign-employee',          'DepartmentController@assignEmployee');
$router->add('POST', 'departments/{id}/remove-employee',          'DepartmentController@removeEmployee');
$router->add('GET',  'departments/{id}',                          'DepartmentController@show');

// AHS-Powered HR Tools
$router->add('GET',  'admin/hr-tools',                    'HrToolsController@index');
$router->add('GET',  'admin/hr-tools/export-csv',         'HrToolsController@exportCsv');
$router->add('GET',  'admin/hr-tools/validate',           'HrToolsController@validate');
$router->add('GET',  'admin/hr-tools/metrics',            'HrToolsController@metrics');

// Employee 360° Profile
$router->add('GET',  'employees/{id}/360',                'Profile360Controller@show');

// HR Action Center
$router->add('GET',  'admin/action-center',               'ActionCenterController@index');

// Work Anniversaries & Celebrations
$router->add('GET',  'admin/celebrations',                'CelebrationController@index');

// Emergency Contacts
$router->add('GET',  'emergency-contacts',                'EmergencyContactController@index');
$router->add('POST', 'emergency-contacts/store',          'EmergencyContactController@store');
$router->add('POST', 'emergency-contacts/{id}/update',    'EmergencyContactController@update');
$router->add('POST', 'emergency-contacts/{id}/delete',    'EmergencyContactController@delete');
$router->add('GET',  'my-emergency-contacts',             'EmergencyContactController@myContacts');

// Employee Recognition
$router->add('GET',  'recognition',                       'RecognitionController@index');
$router->add('POST', 'recognition/store',                 'RecognitionController@store');
$router->add('POST', 'recognition/{id}/delete',           'RecognitionController@delete');

// Remote Work Log
$router->add('GET',  'remote-work',                       'RemoteWorkController@index');
$router->add('GET',  'my-remote-work',                    'RemoteWorkController@myLog');
$router->add('POST', 'remote-work/log',                   'RemoteWorkController@log');
$router->add('POST', 'remote-work/{id}/delete',           'RemoteWorkController@delete');

// Announcements
$router->add('GET',  'announcements',                         'AnnouncementController@index');
$router->add('POST', 'announcements/store',                   'AnnouncementController@store');
$router->add('POST', 'announcements/comments/{id}/delete',    'AnnouncementController@deleteComment');
$router->add('POST', 'announcements/{id}/react',              'AnnouncementController@react');
$router->add('POST', 'announcements/{id}/comment',            'AnnouncementController@comment');
$router->add('POST', 'announcements/{id}/delete',             'AnnouncementController@delete');

// Discussions
$router->add('GET',  'discussions',                           'DiscussionController@index');
$router->add('POST', 'discussions/store',                     'DiscussionController@store');
$router->add('POST', 'discussions/replies/{id}/delete',       'DiscussionController@deleteReply');
$router->add('GET',  'discussions/{id}',                      'DiscussionController@show');
$router->add('POST', 'discussions/{id}/reply',                'DiscussionController@reply');
$router->add('POST', 'discussions/{id}/delete',               'DiscussionController@delete');

// Events
$router->add('GET',  'events',                                'EventController@index');
$router->add('POST', 'events/store',                          'EventController@store');
$router->add('GET',  'events/{id}',                           'EventController@show');
$router->add('POST', 'events/{id}/rsvp',                      'EventController@rsvp');
$router->add('POST', 'events/{id}/delete',                    'EventController@delete');

// Polls
$router->add('GET',  'polls',              'PollController@index');
$router->add('POST', 'polls/store',        'PollController@store');
$router->add('POST', 'polls/{id}/vote',    'PollController@vote');
$router->add('POST', 'polls/{id}/delete',  'PollController@delete');

// Social Wall
$router->add('GET', 'social/wall', 'SocialWallController@index');

// Leaderboard
$router->add('GET', 'leaderboard', 'LeaderboardController@index');

// Idea Box
$router->add('GET',  'ideas',                          'IdeaController@index');
$router->add('POST', 'ideas/store',                    'IdeaController@store');
$router->add('POST', 'ideas/comments/{id}/delete',     'IdeaController@deleteComment');
$router->add('GET',  'ideas/{id}',                     'IdeaController@show');
$router->add('POST', 'ideas/{id}/vote',                'IdeaController@vote');
$router->add('POST', 'ideas/{id}/comment',             'IdeaController@comment');
$router->add('POST', 'ideas/{id}/status',              'IdeaController@updateStatus');
$router->add('POST', 'ideas/{id}/delete',              'IdeaController@delete');

// Employee Spotlight
$router->add('GET',  'spotlight',              'SpotlightController@index');
$router->add('POST', 'spotlight/store',        'SpotlightController@store');
$router->add('POST', 'spotlight/{id}/cheer',   'SpotlightController@cheer');
$router->add('POST', 'spotlight/{id}/delete',  'SpotlightController@delete');

// Icebreakers
$router->add('GET',  'icebreakers',                        'IcebreakerController@index');
$router->add('POST', 'icebreakers/store',                  'IcebreakerController@store');
$router->add('POST', 'icebreakers/answers/{id}/like',      'IcebreakerController@like');
$router->add('POST', 'icebreakers/answers/{id}/delete',    'IcebreakerController@deleteAnswer');
$router->add('POST', 'icebreakers/{id}/answer',            'IcebreakerController@answer');
$router->add('POST', 'icebreakers/{id}/close',             'IcebreakerController@close');
$router->add('POST', 'icebreakers/{id}/delete',            'IcebreakerController@delete');

// Coffee Roulette
$router->add('GET',  'coffee-roulette',                    'CoffeeRouletteController@index');
$router->add('POST', 'coffee-roulette/create',             'CoffeeRouletteController@createRound');
$router->add('POST', 'coffee-roulette/signup',             'CoffeeRouletteController@signup');
$router->add('POST', 'coffee-roulette/unsignup',           'CoffeeRouletteController@unsignup');
$router->add('POST', 'coffee-roulette/pair',               'CoffeeRouletteController@pair');
$router->add('POST', 'coffee-roulette/met/{id}',           'CoffeeRouletteController@markMet');
$router->add('POST', 'coffee-roulette/{id}/close',         'CoffeeRouletteController@closeRound');
$router->add('POST', 'coffee-roulette/{id}/delete',        'CoffeeRouletteController@deleteRound');

// Challenges
$router->add('GET',  'challenges',                         'ChallengeController@index');
$router->add('POST', 'challenges/store',                   'ChallengeController@store');
$router->add('GET',  'challenges/{id}',                    'ChallengeController@show');
$router->add('POST', 'challenges/{id}/join',               'ChallengeController@join');
$router->add('POST', 'challenges/{id}/leave',              'ChallengeController@leave');
$router->add('POST', 'challenges/{id}/progress',           'ChallengeController@progress');
$router->add('POST', 'challenges/{id}/close',              'ChallengeController@close');
$router->add('POST', 'challenges/{id}/delete',             'ChallengeController@delete');

// Wiki
$router->add('GET',  'wiki',                               'WikiController@index');
$router->add('GET',  'wiki/create',                        'WikiController@create');
$router->add('POST', 'wiki/store',                         'WikiController@store');
$router->add('GET',  'wiki/{id}/edit',                     'WikiController@edit');
$router->add('POST', 'wiki/{id}/update',                   'WikiController@update');
$router->add('POST', 'wiki/{id}/helpful',                  'WikiController@helpful');
$router->add('POST', 'wiki/{id}/delete',                   'WikiController@delete');
$router->add('GET',  'wiki/{id}',                          'WikiController@show');

// Internal Blog
$router->add('GET',  'blog',                               'BlogController@index');
$router->add('GET',  'blog/create',                        'BlogController@create');
$router->add('POST', 'blog/store',                         'BlogController@store');
$router->add('POST', 'blog/comments/{id}/delete',          'BlogController@deleteComment');
$router->add('GET',  'blog/{id}/edit',                     'BlogController@edit');
$router->add('POST', 'blog/{id}/update',                   'BlogController@update');
$router->add('POST', 'blog/{id}/comment',                  'BlogController@comment');
$router->add('POST', 'blog/{id}/react',                    'BlogController@react');
$router->add('POST', 'blog/{id}/delete',                   'BlogController@delete');
$router->add('GET',  'blog/{id}',                          'BlogController@show');

// Company News
$router->add('GET',  'news',                               'NewsController@index');
$router->add('POST', 'news/store',                         'NewsController@store');
$router->add('POST', 'news/{id}/pin',                      'NewsController@pin');
$router->add('POST', 'news/{id}/unpin',                    'NewsController@unpin');
$router->add('POST', 'news/{id}/delete',                   'NewsController@delete');

// FAQ / Help Center
$router->add('GET',  'faq',                                'FaqController@index');
$router->add('POST', 'faq/ask',                            'FaqController@ask');
$router->add('POST', 'faq/{id}/answer',                    'FaqController@answer');
$router->add('POST', 'faq/{id}/helpful',                   'FaqController@helpful');
$router->add('POST', 'faq/{id}/delete',                    'FaqController@delete');

// Meeting Room Booking (static routes before {id} wildcards)
$router->add('GET',  'rooms',                              'MeetingRoomController@index');
$router->add('GET',  'rooms/admin',                        'MeetingRoomController@admin');
$router->add('POST', 'rooms/store-room',                   'MeetingRoomController@storeRoom');
$router->add('POST', 'rooms/book',                         'MeetingRoomController@book');
$router->add('GET',  'rooms/availability',                 'MeetingRoomController@getAvailability');
$router->add('POST', 'rooms/{id}/update-room',             'MeetingRoomController@updateRoom');
$router->add('POST', 'rooms/{id}/delete-room',             'MeetingRoomController@deleteRoom');
$router->add('POST', 'rooms/cancel/{id}',                  'MeetingRoomController@cancel');

// Disciplinary / PIP Tracker (static routes before {id} wildcards)
$router->add('GET',  'admin/disciplinary',                 'DisciplinaryController@index');
$router->add('GET',  'admin/disciplinary/create',          'DisciplinaryController@create');
$router->add('POST', 'admin/disciplinary/store',           'DisciplinaryController@store');
$router->add('GET',  'my-disciplinary',                    'DisciplinaryController@myCase');
$router->add('GET',  'admin/disciplinary/{id}',            'DisciplinaryController@show');
$router->add('POST', 'admin/disciplinary/{id}/update',     'DisciplinaryController@update');
$router->add('POST', 'admin/disciplinary/{id}/add-update', 'DisciplinaryController@addUpdate');
$router->add('POST', 'admin/disciplinary/{id}/delete',     'DisciplinaryController@delete');

// Visa & Work Permit Tracker
$router->add('GET',  'admin/visa',                         'VisaController@index');
$router->add('POST', 'admin/visa/store',                   'VisaController@store');
$router->add('GET',  'my-visa',                            'VisaController@myVisa');
$router->add('POST', 'admin/visa/{id}/update',             'VisaController@update');
$router->add('POST', 'admin/visa/{id}/delete',             'VisaController@delete');

// Employee Referral Program
$router->add('GET',  'referrals',                          'ReferralController@index');
$router->add('POST', 'referrals/store',                    'ReferralController@store');
$router->add('GET',  'admin/referrals',                    'ReferralController@admin');
$router->add('POST', 'admin/referrals/settings',           'ReferralController@saveSettings');
$router->add('POST', 'admin/referrals/{id}/update-status', 'ReferralController@updateStatus');
$router->add('POST', 'admin/referrals/{id}/mark-paid',     'ReferralController@markPaid');
$router->add('POST', 'admin/referrals/{id}/delete',        'ReferralController@delete');

// Employee Handbook (static routes before {id} wildcards)
$router->add('GET',  'handbook',                           'HandbookController@index');
$router->add('GET',  'admin/handbook',                     'HandbookController@admin');
$router->add('GET',  'admin/handbook/create',              'HandbookController@create');
$router->add('POST', 'admin/handbook/store',               'HandbookController@store');
$router->add('GET',  'admin/handbook/{id}/edit',           'HandbookController@edit');
$router->add('POST', 'admin/handbook/{id}/update',         'HandbookController@update');
$router->add('POST', 'admin/handbook/{id}/delete',         'HandbookController@delete');
$router->add('POST', 'admin/handbook/{id}/reorder',        'HandbookController@reorder');
$router->add('POST', 'admin/handbook/{id}/publish',        'HandbookController@publish');
$router->add('POST', 'handbook/{id}/acknowledge',          'HandbookController@acknowledge');
$router->add('GET',  'handbook/{id}',                      'HandbookController@show');

// Offboarding Tracker (static task routes before {id} wildcards)
$router->add('GET',  'admin/offboarding',                   'OffboardingController@index');
$router->add('GET',  'admin/offboarding/create',            'OffboardingController@create');
$router->add('POST', 'admin/offboarding/store',             'OffboardingController@store');
$router->add('GET',  'my-offboarding',                      'OffboardingController@myOffboarding');
$router->add('POST', 'offboarding/task/{id}/toggle',        'OffboardingController@toggleTask');
$router->add('POST', 'offboarding/task/{id}/delete',        'OffboardingController@deleteTask');
$router->add('GET',  'admin/offboarding/{id}',              'OffboardingController@show');
$router->add('POST', 'admin/offboarding/{id}/update',       'OffboardingController@update');
$router->add('POST', 'admin/offboarding/{id}/add-task',     'OffboardingController@addTask');
$router->add('POST', 'admin/offboarding/{id}/delete',       'OffboardingController@delete');

// Mentorship Program (static routes before {id} wildcards)
$router->add('GET',  'mentorship',                          'MentorshipController@index');
$router->add('POST', 'mentorship/profile',                  'MentorshipController@saveProfile');
$router->add('GET',  'admin/mentorship',                    'MentorshipController@admin');
$router->add('POST', 'admin/mentorship/create-pair',        'MentorshipController@createPair');
$router->add('POST', 'mentorship/session/{id}/delete',      'MentorshipController@deleteSession');
$router->add('GET',  'mentorship/pair/{id}',                'MentorshipController@showPair');
$router->add('POST', 'mentorship/pair/{id}/update',         'MentorshipController@updatePair');
$router->add('POST', 'mentorship/pair/{id}/delete',         'MentorshipController@deletePair');
$router->add('POST', 'mentorship/pair/{id}/session',        'MentorshipController@addSession');

// Overtime Tracker
$router->add('GET',  'overtime',                            'OvertimeController@index');
$router->add('POST', 'overtime/store',                      'OvertimeController@store');
$router->add('GET',  'admin/overtime',                      'OvertimeController@admin');
$router->add('POST', 'admin/overtime/{id}/approve',         'OvertimeController@approve');
$router->add('POST', 'admin/overtime/{id}/reject',          'OvertimeController@reject');
$router->add('POST', 'overtime/{id}/delete',                'OvertimeController@delete');

// Grievance Management (static routes before {id} wildcards)
$router->add('GET',  'grievances',                          'GrievanceController@index');
$router->add('POST', 'grievances/store',                    'GrievanceController@store');
$router->add('GET',  'admin/grievances',                    'GrievanceController@admin');
$router->add('POST', 'grievances/{id}/withdraw',            'GrievanceController@withdraw');
$router->add('GET',  'admin/grievances/{id}',               'GrievanceController@show');
$router->add('POST', 'admin/grievances/{id}/update',        'GrievanceController@update');
$router->add('POST', 'admin/grievances/{id}/add-note',      'GrievanceController@addNote');
$router->add('POST', 'admin/grievances/{id}/delete',        'GrievanceController@delete');

// Contract Management
$router->add('GET',  'admin/contracts',                     'ContractController@index');
$router->add('POST', 'admin/contracts/store',               'ContractController@store');
$router->add('GET',  'my-contracts',                        'ContractController@myContracts');
$router->add('GET',  'admin/contracts/{id}',                'ContractController@show');
$router->add('POST', 'admin/contracts/{id}/update',         'ContractController@update');
$router->add('POST', 'admin/contracts/{id}/delete',         'ContractController@delete');

// Employee Loans (static routes before {id} wildcards)
$router->add('GET',  'loans',                               'LoanController@index');
$router->add('POST', 'loans/store',                         'LoanController@store');
$router->add('GET',  'admin/loans',                         'LoanController@admin');
$router->add('POST', 'admin/loans/{id}/approve',            'LoanController@approve');
$router->add('POST', 'admin/loans/{id}/reject',             'LoanController@reject');
$router->add('POST', 'admin/loans/{id}/payment',            'LoanController@recordPayment');
$router->add('GET',  'admin/loans/{id}',                    'LoanController@show');
$router->add('POST', 'loans/{id}/delete',                   'LoanController@delete');

// Fleet Management (static routes before {id} wildcards)
$router->add('GET',  'my-vehicle',                          'FleetController@myVehicle');
$router->add('GET',  'admin/fleet',                         'FleetController@index');
$router->add('POST', 'admin/fleet/store',                   'FleetController@store');
$router->add('POST', 'admin/fleet/maintenance/{id}/delete', 'FleetController@deleteMaintenance');
$router->add('GET',  'admin/fleet/{id}',                    'FleetController@show');
$router->add('POST', 'admin/fleet/{id}/update',             'FleetController@update');
$router->add('POST', 'admin/fleet/{id}/delete',             'FleetController@delete');
$router->add('POST', 'admin/fleet/{id}/assign',             'FleetController@assign');
$router->add('POST', 'admin/fleet/{id}/unassign',           'FleetController@unassign');
$router->add('POST', 'admin/fleet/{id}/maintenance',        'FleetController@addMaintenance');

// Succession Planning (static routes before {id} wildcards)
$router->add('GET',  'admin/succession',                            'SuccessionController@index');
$router->add('POST', 'admin/succession/store',                      'SuccessionController@store');
$router->add('POST', 'admin/succession/candidate/{id}/update',      'SuccessionController@updateCandidate');
$router->add('POST', 'admin/succession/candidate/{id}/delete',      'SuccessionController@deleteCandidate');
$router->add('GET',  'admin/succession/{id}',                       'SuccessionController@show');
$router->add('POST', 'admin/succession/{id}/update',                'SuccessionController@update');
$router->add('POST', 'admin/succession/{id}/delete',                'SuccessionController@delete');
$router->add('POST', 'admin/succession/{id}/add-candidate',         'SuccessionController@addCandidate');

// Internal Job Board (static routes before {id} wildcards)
$router->add('GET',  'job-board',                               'JobBoardController@index');
$router->add('GET',  'admin/job-board',                         'JobBoardController@admin');
$router->add('POST', 'admin/job-board/store',                   'JobBoardController@store');
$router->add('POST', 'admin/job-board/application/{id}/update', 'JobBoardController@updateApplication');
$router->add('GET',  'admin/job-board/{id}',                    'JobBoardController@show');
$router->add('POST', 'admin/job-board/{id}/update',             'JobBoardController@update');
$router->add('POST', 'admin/job-board/{id}/delete',             'JobBoardController@delete');
$router->add('POST', 'admin/job-board/{id}/close',              'JobBoardController@close');
$router->add('POST', 'job-board/{id}/apply',                    'JobBoardController@apply');

// Workplace Accommodations (static routes before {id} wildcards)
$router->add('GET',  'my-accommodations',                       'AccommodationController@index');
$router->add('POST', 'my-accommodations/store',                 'AccommodationController@store');
$router->add('GET',  'admin/accommodations',                    'AccommodationController@admin');
$router->add('GET',  'admin/accommodations/{id}',               'AccommodationController@show');
$router->add('POST', 'admin/accommodations/{id}/update',        'AccommodationController@update');
$router->add('POST', 'admin/accommodations/{id}/add-note',      'AccommodationController@addNote');
$router->add('POST', 'admin/accommodations/{id}/delete',        'AccommodationController@adminDelete');
$router->add('POST', 'my-accommodations/{id}/withdraw',         'AccommodationController@withdraw');

$app->run();
