<?php
declare(strict_types=1);

return [
    // Dashboard
    ['GET',  '/sa',                                             'SportsActivity\Controllers\DashboardController@index',         ['auth'], 'sa.dashboard'],

    // Disciplines
    ['GET',  '/sa/disciplines',                                 'SportsActivity\Controllers\DisciplineController@index',        ['auth'], 'sa.discipline.view'],
    ['GET',  '/sa/disciplines/create',                          'SportsActivity\Controllers\DisciplineController@create',       ['auth'], 'sa.discipline.manage'],
    ['POST', '/sa/disciplines',                                 'SportsActivity\Controllers\DisciplineController@store',        ['auth', 'csrf'], 'sa.discipline.manage'],
    ['GET',  '/sa/disciplines/{id:\d+}',                        'SportsActivity\Controllers\DisciplineController@show',         ['auth'], 'sa.discipline.view'],
    ['GET',  '/sa/disciplines/{id:\d+}/edit',                   'SportsActivity\Controllers\DisciplineController@edit',         ['auth'], 'sa.discipline.manage'],
    ['POST', '/sa/disciplines/{id:\d+}',                        'SportsActivity\Controllers\DisciplineController@update',       ['auth', 'csrf'], 'sa.discipline.manage'],
    ['POST', '/sa/disciplines/{id:\d+}/toggle',                 'SportsActivity\Controllers\DisciplineController@toggle',       ['auth', 'csrf'], 'sa.discipline.manage'],

    // Facilities
    ['GET',  '/sa/facilities',                                  'SportsActivity\Controllers\FacilityController@index',          ['auth'], 'sa.facility.view'],
    ['GET',  '/sa/facilities/create',                           'SportsActivity\Controllers\FacilityController@create',         ['auth'], 'sa.facility.manage'],
    ['POST', '/sa/facilities',                                  'SportsActivity\Controllers\FacilityController@store',          ['auth', 'csrf'], 'sa.facility.manage'],
    ['GET',  '/sa/facilities/{id:\d+}',                         'SportsActivity\Controllers\FacilityController@show',           ['auth'], 'sa.facility.view'],
    ['GET',  '/sa/facilities/{id:\d+}/edit',                    'SportsActivity\Controllers\FacilityController@edit',           ['auth'], 'sa.facility.manage'],
    ['POST', '/sa/facilities/{id:\d+}',                         'SportsActivity\Controllers\FacilityController@update',         ['auth', 'csrf'], 'sa.facility.manage'],
    ['POST', '/sa/facilities/{id:\d+}/toggle',                  'SportsActivity\Controllers\FacilityController@toggle',         ['auth', 'csrf'], 'sa.facility.manage'],
    ['POST', '/sa/facilities/{id:\d+}/blackout',                'SportsActivity\Controllers\FacilityController@addBlackout',    ['auth', 'csrf'], 'sa.facility.manage'],

    // Facility Units
    ['GET',  '/sa/facilities/{fid:\d+}/units',                  'SportsActivity\Controllers\FacilityUnitController@index',      ['auth'], 'sa.facility.view'],
    ['GET',  '/sa/facilities/{fid:\d+}/units/create',           'SportsActivity\Controllers\FacilityUnitController@create',     ['auth'], 'sa.facility.manage'],
    ['POST', '/sa/facilities/{fid:\d+}/units',                  'SportsActivity\Controllers\FacilityUnitController@store',      ['auth', 'csrf'], 'sa.facility.manage'],
    ['GET',  '/sa/facilities/{fid:\d+}/units/{id:\d+}/edit',    'SportsActivity\Controllers\FacilityUnitController@edit',       ['auth'], 'sa.facility.manage'],
    ['POST', '/sa/facilities/{fid:\d+}/units/{id:\d+}',         'SportsActivity\Controllers\FacilityUnitController@update',     ['auth', 'csrf'], 'sa.facility.manage'],

    // Time Brackets
    ['GET',  '/sa/facilities/{fid:\d+}/brackets',               'SportsActivity\Controllers\FacilityController@brackets',       ['auth'], 'sa.facility.view'],
    ['POST', '/sa/facilities/{fid:\d+}/brackets',               'SportsActivity\Controllers\FacilityController@storeBracket',   ['auth', 'csrf'], 'sa.facility.manage'],
    ['POST', '/sa/facilities/{fid:\d+}/brackets/{id:\d+}/delete', 'SportsActivity\Controllers\FacilityController@deleteBracket', ['auth', 'csrf'], 'sa.facility.manage'],

    // Coaches
    ['GET',  '/sa/coaches',                                     'SportsActivity\Controllers\CoachController@index',             ['auth'], 'sa.coach.view'],
    ['GET',  '/sa/coaches/create',                              'SportsActivity\Controllers\CoachController@create',            ['auth'], 'sa.coach.manage'],
    ['POST', '/sa/coaches',                                     'SportsActivity\Controllers\CoachController@store',             ['auth', 'csrf'], 'sa.coach.manage'],
    ['GET',  '/sa/coaches/{id:\d+}',                            'SportsActivity\Controllers\CoachController@show',              ['auth'], 'sa.coach.view'],
    ['GET',  '/sa/coaches/{id:\d+}/edit',                       'SportsActivity\Controllers\CoachController@edit',              ['auth'], 'sa.coach.manage'],
    ['POST', '/sa/coaches/{id:\d+}',                            'SportsActivity\Controllers\CoachController@update',            ['auth', 'csrf'], 'sa.coach.manage'],
    ['POST', '/sa/coaches/{id:\d+}/toggle',                     'SportsActivity\Controllers\CoachController@toggle',            ['auth', 'csrf'], 'sa.coach.manage'],

    // Players
    ['GET',  '/sa/players',                                     'SportsActivity\Controllers\PlayerController@index',            ['auth'], 'sa.player.view'],
    ['GET',  '/sa/players/create',                              'SportsActivity\Controllers\PlayerController@create',           ['auth'], 'sa.player.manage'],
    ['POST', '/sa/players',                                     'SportsActivity\Controllers\PlayerController@store',            ['auth', 'csrf'], 'sa.player.manage'],
    ['GET',  '/sa/players/{id:\d+}',                            'SportsActivity\Controllers\PlayerController@show',             ['auth'], 'sa.player.view'],
    ['GET',  '/sa/players/{id:\d+}/edit',                       'SportsActivity\Controllers\PlayerController@edit',             ['auth'], 'sa.player.manage'],
    ['POST', '/sa/players/{id:\d+}',                            'SportsActivity\Controllers\PlayerController@update',           ['auth', 'csrf'], 'sa.player.manage'],

    // Player Documents
    ['GET',  '/sa/players/{pid:\d+}/documents',                 'SportsActivity\Controllers\PlayerDocumentController@index',    ['auth'], 'sa.player.view'],
    ['POST', '/sa/players/{pid:\d+}/documents',                 'SportsActivity\Controllers\PlayerDocumentController@upload',   ['auth', 'csrf'], 'sa.player.manage'],
    ['POST', '/sa/players/{pid:\d+}/documents/upload',           'SportsActivity\Controllers\PlayerDocumentController@upload',   ['auth', 'csrf'], 'sa.player.manage'],
    ['POST', '/sa/players/{pid:\d+}/documents/{id:\d+}/approve', 'SportsActivity\Controllers\PlayerDocumentController@approve', ['auth', 'csrf'], 'sa.medical.approve'],
    ['POST', '/sa/players/{pid:\d+}/documents/{id:\d+}/reject', 'SportsActivity\Controllers\PlayerDocumentController@reject',   ['auth', 'csrf'], 'sa.medical.approve'],
    ['POST', '/sa/players/{pid:\d+}/documents/{id:\d+}/approve-conditional', 'SportsActivity\Controllers\PlayerDocumentController@approveConditional', ['auth', 'csrf'], 'sa.medical.approve'],
    ['POST', '/sa/players/{pid:\d+}/medical/update',            'SportsActivity\Controllers\PlayerDocumentController@updateMedical', ['auth', 'csrf'], 'sa.medical.approve'],

    // Academies
    ['GET',  '/sa/academies',                                   'SportsActivity\Controllers\AcademyController@index',           ['auth'], 'sa.academy.view'],
    ['GET',  '/sa/academies/create',                            'SportsActivity\Controllers\AcademyController@create',          ['auth'], 'sa.academy.manage'],
    ['POST', '/sa/academies',                                   'SportsActivity\Controllers\AcademyController@store',           ['auth', 'csrf'], 'sa.academy.manage'],
    ['GET',  '/sa/academies/{id:\d+}',                          'SportsActivity\Controllers\AcademyController@show',            ['auth'], 'sa.academy.view'],
    ['GET',  '/sa/academies/{id:\d+}/edit',                     'SportsActivity\Controllers\AcademyController@edit',            ['auth'], 'sa.academy.manage'],
    ['POST', '/sa/academies/{id:\d+}',                          'SportsActivity\Controllers\AcademyController@update',          ['auth', 'csrf'], 'sa.academy.manage'],

    // Academy Contracts
    ['GET',  '/sa/academies/{aid:\d+}/contracts',               'SportsActivity\Controllers\AcademyContractController@index',   ['auth'], 'sa.contract.view'],
    ['GET',  '/sa/academies/{aid:\d+}/contracts/create',        'SportsActivity\Controllers\AcademyContractController@create',  ['auth'], 'sa.contract.manage'],
    ['POST', '/sa/academies/{aid:\d+}/contracts',               'SportsActivity\Controllers\AcademyContractController@store',   ['auth', 'csrf'], 'sa.contract.manage'],
    ['GET',  '/sa/academy-contracts/{id:\d+}',                  'SportsActivity\Controllers\AcademyContractController@show',    ['auth'], 'sa.contract.view'],
    ['POST', '/sa/academy-contracts/{id:\d+}/approve',          'SportsActivity\Controllers\AcademyContractController@approve', ['auth', 'csrf'], 'sa.contract.approve'],

    // Programs
    ['GET',  '/sa/programs',                                    'SportsActivity\Controllers\ProgramController@index',           ['auth'], 'sa.program.view'],
    ['GET',  '/sa/programs/create',                             'SportsActivity\Controllers\ProgramController@create',          ['auth'], 'sa.program.manage'],
    ['POST', '/sa/programs',                                    'SportsActivity\Controllers\ProgramController@store',           ['auth', 'csrf'], 'sa.program.manage'],
    ['GET',  '/sa/programs/{id:\d+}',                           'SportsActivity\Controllers\ProgramController@show',            ['auth'], 'sa.program.view'],
    ['GET',  '/sa/programs/{id:\d+}/edit',                      'SportsActivity\Controllers\ProgramController@edit',            ['auth'], 'sa.program.manage'],
    ['POST', '/sa/programs/{id:\d+}',                           'SportsActivity\Controllers\ProgramController@update',          ['auth', 'csrf'], 'sa.program.manage'],

    // Groups
    ['GET',  '/sa/groups',                                      'SportsActivity\Controllers\GroupController@index',             ['auth'], 'sa.group.view'],
    ['GET',  '/sa/groups/create',                               'SportsActivity\Controllers\GroupController@create',            ['auth'], 'sa.group.manage'],
    ['POST', '/sa/groups',                                      'SportsActivity\Controllers\GroupController@store',             ['auth', 'csrf'], 'sa.group.manage'],
    ['GET',  '/sa/groups/{id:\d+}',                             'SportsActivity\Controllers\GroupController@show',              ['auth'], 'sa.group.view'],
    ['GET',  '/sa/groups/{id:\d+}/edit',                        'SportsActivity\Controllers\GroupController@edit',              ['auth'], 'sa.group.manage'],
    ['POST', '/sa/groups/{id:\d+}',                             'SportsActivity\Controllers\GroupController@update',            ['auth', 'csrf'], 'sa.group.manage'],
    ['POST', '/sa/groups/{id:\d+}/enroll',                      'SportsActivity\Controllers\GroupController@enroll',            ['auth', 'csrf'], 'sa.group.enroll'],
    ['POST', '/sa/groups/{id:\d+}/remove-player',               'SportsActivity\Controllers\GroupController@removePlayer',      ['auth', 'csrf'], 'sa.group.manage'],
    ['POST', '/sa/groups/{id:\d+}/schedule',                    'SportsActivity\Controllers\GroupController@saveSchedule',      ['auth', 'csrf'], 'sa.group.manage'],
    ['POST', '/sa/groups/{id:\d+}/generate-sessions',           'SportsActivity\Controllers\GroupController@generateSessions',  ['auth', 'csrf'], 'sa.schedule.manage'],

    // Schedule
    ['GET',  '/sa/schedule',                                    'SportsActivity\Controllers\ScheduleController@calendar',       ['auth'], 'sa.schedule.view'],
    ['GET',  '/sa/schedule/daily/{date}',                       'SportsActivity\Controllers\ScheduleController@daily',          ['auth'], 'sa.schedule.view'],
    ['GET',  '/sa/schedule/weekly',                             'SportsActivity\Controllers\ScheduleController@weekly',         ['auth'], 'sa.schedule.view'],
    ['POST', '/sa/schedule/generate',                           'SportsActivity\Controllers\ScheduleController@generate',       ['auth', 'csrf'], 'sa.schedule.manage'],

    // Booking Wizard
    ['GET',  '/sa/booking-wizard',                              'SportsActivity\Controllers\BookingWizardController@index',     ['auth'], 'sa.booking_wizard.use'],
    ['POST', '/sa/booking-wizard/lookup',                       'SportsActivity\Controllers\BookingWizardController@lookup',    ['auth', 'csrf'], 'sa.booking_wizard.use'],
    ['GET',  '/sa/booking-wizard/units',                        'SportsActivity\Controllers\BookingWizardController@units',     ['auth'], 'sa.booking_wizard.use'],
    ['GET',  '/sa/booking-wizard/slots',                        'SportsActivity\Controllers\BookingWizardController@slots',     ['auth'], 'sa.booking_wizard.use'],
    ['POST', '/sa/booking-wizard/book',                         'SportsActivity\Controllers\BookingWizardController@book',      ['auth', 'csrf'], 'sa.booking_wizard.use'],

    // Bookings
    ['GET',  '/sa/bookings',                                    'SportsActivity\Controllers\BookingController@index',           ['auth'], 'sa.booking.view'],
    ['GET',  '/sa/bookings/create',                             'SportsActivity\Controllers\BookingController@create',          ['auth'], 'sa.booking.create'],
    ['POST', '/sa/bookings',                                    'SportsActivity\Controllers\BookingController@store',           ['auth', 'csrf'], 'sa.booking.create'],
    ['GET',  '/sa/bookings/{id:\d+}',                           'SportsActivity\Controllers\BookingController@show',            ['auth'], 'sa.booking.view'],
    ['POST', '/sa/bookings/{id:\d+}/cancel',                    'SportsActivity\Controllers\BookingController@cancel',          ['auth', 'csrf'], 'sa.booking.manage'],
    ['POST', '/sa/bookings/{id:\d+}/checkin',                   'SportsActivity\Controllers\BookingController@checkin',         ['auth', 'csrf'], 'sa.booking.manage'],
    ['POST', '/sa/bookings/{id:\d+}/checkout',                  'SportsActivity\Controllers\BookingController@checkout',        ['auth', 'csrf'], 'sa.booking.manage'],

    // Pricing
    ['GET',  '/sa/pricing',                                     'SportsActivity\Controllers\PricingController@index',           ['auth'], 'sa.pricing.view'],
    ['GET',  '/sa/pricing/rules',                               'SportsActivity\Controllers\PricingController@rules',           ['auth'], 'sa.pricing.manage'],
    ['POST', '/sa/pricing/rules',                               'SportsActivity\Controllers\PricingController@storeRule',       ['auth', 'csrf'], 'sa.pricing.manage'],
    ['POST', '/sa/pricing/rules/{id:\d+}',                      'SportsActivity\Controllers\PricingController@updateRule',      ['auth', 'csrf'], 'sa.pricing.manage'],
    ['POST', '/sa/pricing/rules/{id:\d+}/deactivate',           'SportsActivity\Controllers\PricingController@deactivateRule',  ['auth', 'csrf'], 'sa.pricing.manage'],

    // Subscriptions
    ['GET',  '/sa/subscriptions',                               'SportsActivity\Controllers\SubscriptionController@index',      ['auth'], 'sa.subscription.view'],
    ['POST', '/sa/subscriptions/generate',                      'SportsActivity\Controllers\SubscriptionController@generate',   ['auth', 'csrf'], 'sa.subscription.generate'],
    ['GET',  '/sa/subscriptions/{id:\d+}',                      'SportsActivity\Controllers\SubscriptionController@show',       ['auth'], 'sa.subscription.view'],
    ['POST', '/sa/subscriptions/{id:\d+}/pay',                  'SportsActivity\Controllers\SubscriptionController@pay',        ['auth', 'csrf'], 'sa.subscription.collect'],
    ['POST', '/sa/subscriptions/{id:\d+}/void',                 'SportsActivity\Controllers\SubscriptionController@void',       ['auth', 'csrf'], 'sa.subscription.collect'],
    ['POST', '/sa/subscriptions/{id:\d+}/exempt',               'SportsActivity\Controllers\SubscriptionController@exempt',     ['auth', 'csrf'], 'sa.subscription.exempt'],

    // Attendance
    ['GET',  '/sa/attendance',                                  'SportsActivity\Controllers\AttendanceController@index',        ['auth'], 'sa.attendance.view'],
    ['GET',  '/sa/attendance/record/{bookingId:\d+}',           'SportsActivity\Controllers\AttendanceController@record',       ['auth'], 'sa.attendance.manage'],
    ['POST', '/sa/attendance/record/{bookingId:\d+}',           'SportsActivity\Controllers\AttendanceController@store',        ['auth', 'csrf'], 'sa.attendance.manage'],
    ['GET',  '/sa/attendance/report',                           'SportsActivity\Controllers\AttendanceController@report',       ['auth'], 'sa.attendance.view'],

    // Mirror (read-only display)
    ['GET',  '/sa/mirror',                                      'SportsActivity\Controllers\MirrorController@index',            ['auth'], 'sa.mirror.view'],
    ['GET',  '/sa/mirror/{id:\d+}',                             'SportsActivity\Controllers\MirrorController@facility',         ['auth'], 'sa.mirror.view'],
    ['GET',  '/sa/mirror/{id:\d+}/{date}',                      'SportsActivity\Controllers\MirrorController@facilityDate',     ['auth'], 'sa.mirror.view'],
    ['GET',  '/sa/mirror/facility/{id:\d+}',                    'SportsActivity\Controllers\MirrorController@facility',         ['auth'], 'sa.mirror.view'],
    ['GET',  '/sa/mirror/facility/{id:\d+}/{date}',             'SportsActivity\Controllers\MirrorController@facilityDate',     ['auth'], 'sa.mirror.view'],

    // Waitlist
    ['GET',  '/sa/waitlist',                                    'SportsActivity\Controllers\WaitlistController@index',          ['auth'], 'sa.waitlist.view'],
    ['POST', '/sa/waitlist/{id:\d+}/offer',                     'SportsActivity\Controllers\WaitlistController@offer',          ['auth', 'csrf'], 'sa.waitlist.manage'],
    ['POST', '/sa/waitlist/{id:\d+}/cancel',                    'SportsActivity\Controllers\WaitlistController@cancel',         ['auth', 'csrf'], 'sa.waitlist.manage'],

    // Lockers
    ['GET',  '/sa/lockers',                                        'SportsActivity\Controllers\LockerController@index',             ['auth'], 'sa.locker.view'],
    ['GET',  '/sa/lockers/create',                                 'SportsActivity\Controllers\LockerController@create',            ['auth'], 'sa.locker.manage'],
    ['POST', '/sa/lockers',                                        'SportsActivity\Controllers\LockerController@store',             ['auth', 'csrf'], 'sa.locker.manage'],
    ['GET',  '/sa/lockers/{id:\d+}',                               'SportsActivity\Controllers\LockerController@show',              ['auth'], 'sa.locker.view'],
    ['GET',  '/sa/lockers/{id:\d+}/edit',                          'SportsActivity\Controllers\LockerController@edit',              ['auth'], 'sa.locker.manage'],
    ['POST', '/sa/lockers/{id:\d+}',                               'SportsActivity\Controllers\LockerController@update',            ['auth', 'csrf'], 'sa.locker.manage'],
    ['POST', '/sa/lockers/{id:\d+}/toggle',                        'SportsActivity\Controllers\LockerController@toggle',            ['auth', 'csrf'], 'sa.locker.manage'],

    // Locker Rentals
    ['GET',  '/sa/locker-rentals',                                 'SportsActivity\Controllers\LockerRentalController@index',       ['auth'], 'sa.locker_rental.view'],
    ['GET',  '/sa/locker-rentals/create',                          'SportsActivity\Controllers\LockerRentalController@create',      ['auth'], 'sa.locker_rental.create'],
    ['POST', '/sa/locker-rentals',                                 'SportsActivity\Controllers\LockerRentalController@store',       ['auth', 'csrf'], 'sa.locker_rental.create'],
    ['GET',  '/sa/locker-rentals/{id:\d+}',                        'SportsActivity\Controllers\LockerRentalController@show',        ['auth'], 'sa.locker_rental.view'],
    ['GET',  '/sa/locker-rentals/{id:\d+}/renew',                  'SportsActivity\Controllers\LockerRentalController@renew',       ['auth'], 'sa.locker_rental.create'],
    ['POST', '/sa/locker-rentals/{id:\d+}/renew',                  'SportsActivity\Controllers\LockerRentalController@storeRenew',  ['auth', 'csrf'], 'sa.locker_rental.create'],
    ['GET',  '/sa/locker-rentals/{id:\d+}/evict',                  'SportsActivity\Controllers\LockerRentalController@evict',       ['auth'], 'sa.locker_rental.evict'],
    ['POST', '/sa/locker-rentals/{id:\d+}/evict',                  'SportsActivity\Controllers\LockerRentalController@storeEvict',  ['auth', 'csrf'], 'sa.locker_rental.evict'],

    // Pool Grid Management
    ['GET',  '/sa/pool-grid',                                       'SportsActivity\Controllers\PoolGridController@index',              ['auth'], 'sa.pool-grid.manage'],
    ['GET',  '/sa/pool-grid/{id:\d+}',                              'SportsActivity\Controllers\PoolGridController@manage',             ['auth'], 'sa.pool-grid.manage'],

    // JSON APIs (AJAX)
    ['GET',  '/api/sa/schedule/availability',                   'SportsActivity\Controllers\Api\ScheduleApiController@availability',  ['auth'], 'sa.schedule.view'],
    ['GET',  '/api/sa/schedule/conflicts',                      'SportsActivity\Controllers\Api\ScheduleApiController@conflicts',     ['auth'], 'sa.schedule.view'],
    ['GET',  '/api/sa/bookings/price-preview',                  'SportsActivity\Controllers\Api\BookingApiController@pricePreview',   ['auth'], 'sa.booking.view'],
    ['GET',  '/api/sa/players/search',                          'SportsActivity\Controllers\Api\PlayerSearchApiController@search',    ['auth'], 'sa.player.view'],
    ['GET',  '/api/sa/mirror/{id:\d+}/state',                   'SportsActivity\Controllers\Api\MirrorApiController@state',           ['auth'], 'sa.mirror.view'],
    ['GET',  '/api/sa/pool-grid/{id:\d+}/state',                'SportsActivity\Controllers\Api\PoolGridApiController@state',         ['auth'], 'sa.pool-grid.manage'],
    ['POST', '/api/sa/pool-grid/{id:\d+}/assign',               'SportsActivity\Controllers\Api\PoolGridApiController@assign',        ['auth', 'csrf'], 'sa.pool-grid.manage'],
    ['POST', '/api/sa/pool-grid/{id:\d+}/clear',                'SportsActivity\Controllers\Api\PoolGridApiController@clear',         ['auth', 'csrf'], 'sa.pool-grid.manage'],
    ['POST', '/api/sa/pool-grid/{id:\d+}/update-grid',          'SportsActivity\Controllers\Api\PoolGridApiController@updateGrid',    ['auth', 'csrf'], 'sa.pool-grid.manage'],
    ['POST', '/api/sa/pool-grid/{id:\d+}/copy-slot',            'SportsActivity\Controllers\Api\PoolGridApiController@copySlot',      ['auth', 'csrf'], 'sa.pool-grid.manage'],

    // Pool Grid Templates
    ['GET',  '/api/sa/pool-grid/{id:\d+}/templates',                                      'SportsActivity\Controllers\Api\PoolGridTemplateApiController@list',     ['auth'], 'sa.pool-grid.manage'],
    ['POST', '/api/sa/pool-grid/{id:\d+}/templates',                                      'SportsActivity\Controllers\Api\PoolGridTemplateApiController@store',    ['auth', 'csrf'], 'sa.pool-grid.manage'],
    ['POST', '/api/sa/pool-grid/{id:\d+}/templates/{tid:\d+}',                            'SportsActivity\Controllers\Api\PoolGridTemplateApiController@update',   ['auth', 'csrf'], 'sa.pool-grid.manage'],
    ['POST', '/api/sa/pool-grid/{id:\d+}/templates/{tid:\d+}/delete',                     'SportsActivity\Controllers\Api\PoolGridTemplateApiController@delete',   ['auth', 'csrf'], 'sa.pool-grid.manage'],
    ['POST', '/api/sa/pool-grid/{id:\d+}/templates/{tid:\d+}/expand',                     'SportsActivity\Controllers\Api\PoolGridTemplateApiController@expand',   ['auth', 'csrf'], 'sa.pool-grid.manage'],
    ['POST', '/api/sa/pool-grid/{id:\d+}/templates/{tid:\d+}/runs/{rid:\d+}/rollback',    'SportsActivity\Controllers\Api\PoolGridTemplateApiController@rollback', ['auth', 'csrf'], 'sa.pool-grid.manage'],

    // ─── Registration Wizard ────────────────────────────────────────────────────
    ['GET',  '/sa/registration/report',                   'SportsActivity\Controllers\RegistrationWizardController@report',         ['auth'], 'sa.registration.view'],
    ['GET',  '/sa/registration',                          'SportsActivity\Controllers\RegistrationWizardController@index',          ['auth'], 'sa.registration.manage'],
    ['POST', '/sa/registration/lookup',                   'SportsActivity\Controllers\RegistrationWizardController@lookupPlayer',   ['auth', 'csrf'], 'sa.registration.manage'],
    ['GET',  '/sa/registration/{id:\d+}',                 'SportsActivity\Controllers\RegistrationWizardController@wizardStep',     ['auth'], 'sa.registration.manage'],
    ['POST', '/sa/registration/{id:\d+}/pay-form',        'SportsActivity\Controllers\RegistrationWizardController@submitFormPayment', ['auth', 'csrf'], 'sa.registration.manage'],
    ['POST', '/sa/registration/{id:\d+}/photo',           'SportsActivity\Controllers\RegistrationWizardController@uploadPhoto',    ['auth', 'csrf'], 'sa.registration.manage'],
    ['POST', '/sa/registration/{id:\d+}/activity',        'SportsActivity\Controllers\RegistrationWizardController@selectActivity', ['auth', 'csrf'], 'sa.registration.manage'],
    ['POST', '/sa/registration/{id:\d+}/pay',             'SportsActivity\Controllers\RegistrationWizardController@submitPayment',  ['auth', 'csrf'], 'sa.registration.manage'],
    ['GET',  '/sa/registration/{id:\d+}/print-form',      'SportsActivity\Controllers\RegistrationWizardController@printForm',      ['auth'], 'sa.registration.manage'],
    ['POST', '/sa/registration/{id:\d+}/generate-card',   'SportsActivity\Controllers\RegistrationWizardController@generateCard',   ['auth', 'csrf'], 'sa.registration.manage'],
    ['GET',  '/sa/registration/{id:\d+}/print-card',      'SportsActivity\Controllers\RegistrationWizardController@printCard',      ['auth'], 'sa.registration.manage'],
    ['POST', '/sa/registration/{id:\d+}/cancel',          'SportsActivity\Controllers\RegistrationWizardController@cancel',         ['auth', 'csrf'], 'sa.registration.manage'],

    // ─── SA Player Cards ────────────────────────────────────────────────────────
    ['GET',  '/sa/cards/report',              'SportsActivity\Controllers\SaCardController@report',      ['auth'], 'sa.card.view'],
    ['GET',  '/sa/cards',                     'SportsActivity\Controllers\SaCardController@index',       ['auth'], 'sa.card.view'],
    ['GET',  '/sa/cards/{id:\d+}',            'SportsActivity\Controllers\SaCardController@show',        ['auth'], 'sa.card.view'],
    ['POST', '/sa/cards/{id:\d+}/suspend',    'SportsActivity\Controllers\SaCardController@suspend',     ['auth', 'csrf'], 'sa.card.manage'],
    ['POST', '/sa/cards/{id:\d+}/revoke',     'SportsActivity\Controllers\SaCardController@revoke',      ['auth', 'csrf'], 'sa.card.manage'],
    ['POST', '/sa/cards/{id:\d+}/reactivate', 'SportsActivity\Controllers\SaCardController@reactivate',  ['auth', 'csrf'], 'sa.card.manage'],
    ['GET',  '/sa/cards/{id:\d+}/print',      'SportsActivity\Controllers\SaCardController@print',       ['auth'], 'sa.card.print'],

    // ─── Gate Access ────────────────────────────────────────────────────────────
    ['GET',  '/sa/gate',          'SportsActivity\Controllers\GateController@index',  ['auth'], 'sa.gate.view'],
    ['POST', '/sa/gate/scan',     'SportsActivity\Controllers\GateController@scan',   ['auth', 'csrf'], 'sa.gate.scan'],
    ['GET',  '/sa/gate/log',      'SportsActivity\Controllers\GateController@log',    ['auth'], 'sa.gate.view'],
    ['GET',  '/sa/gate/report',   'SportsActivity\Controllers\GateController@report', ['auth'], 'sa.gate.view'],

    // ─── Academy Pricing ────────────────────────────────────────────────────────
    ['GET',  '/sa/academy-pricing',                      'SportsActivity\Controllers\AcademyPricingController@index',           ['auth'], 'sa.pricing.view'],
    ['GET',  '/sa/academy-pricing/academies',            'SportsActivity\Controllers\AcademyPricingController@academies',       ['auth'], 'sa.pricing.view'],
    ['GET',  '/sa/academy-pricing/academy/{code}',       'SportsActivity\Controllers\AcademyPricingController@academyDetail',   ['auth'], 'sa.pricing.view'],
    ['GET',  '/sa/academy-pricing/session-cards',        'SportsActivity\Controllers\AcademyPricingController@sessionCards',    ['auth'], 'sa.pricing.view'],
    ['GET',  '/sa/academy-pricing/lane-rentals',         'SportsActivity\Controllers\AcademyPricingController@laneRentals',     ['auth'], 'sa.pricing.view'],
    ['GET',  '/sa/academy-pricing/facility-rentals',     'SportsActivity\Controllers\AcademyPricingController@facilityRentals', ['auth'], 'sa.pricing.view'],
    ['POST', '/sa/academy-pricing/calculate',            'SportsActivity\Controllers\AcademyPricingController@calculate',       ['auth', 'csrf'], 'sa.pricing.view'],
];
