<?php
declare(strict_types=1);

return [
    // Auth
    ['POST', '/api/v1/coach/auth/login', 'TrainerPortal\Controllers\Api\CoachAuthController@login', ['cors'], null],
    ['POST', '/api/v1/coach/auth/logout', 'TrainerPortal\Controllers\Api\CoachAuthController@logout', ['cors', 'coach_auth'], null],

    // Profile & Academy
    ['GET', '/api/v1/coach/profile', 'TrainerPortal\Controllers\Api\CoachProfileController@profile', ['cors', 'coach_auth'], null],
    ['GET', '/api/v1/coach/academy', 'TrainerPortal\Controllers\Api\CoachProfileController@academy', ['cors', 'coach_auth'], null],

    // Schedule
    ['GET', '/api/v1/coach/schedule', 'TrainerPortal\Controllers\Api\CoachScheduleController@weeklySchedule', ['cors', 'coach_auth'], null],
    ['GET', '/api/v1/coach/sessions', 'TrainerPortal\Controllers\Api\CoachScheduleController@sessions', ['cors', 'coach_auth'], null],
    ['GET', '/api/v1/coach/groups', 'TrainerPortal\Controllers\Api\CoachScheduleController@groups', ['cors', 'coach_auth'], null],
    ['GET', '/api/v1/coach/groups/{id:\d+}/players', 'TrainerPortal\Controllers\Api\CoachScheduleController@groupPlayers', ['cors', 'coach_auth'], null],

    // Day Off
    ['POST', '/api/v1/coach/day-off', 'TrainerPortal\Controllers\Api\DayOffController@request', ['cors', 'coach_auth'], null],
    ['GET', '/api/v1/coach/day-off', 'TrainerPortal\Controllers\Api\DayOffController@myRequests', ['cors', 'coach_auth'], null],
    ['GET', '/api/v1/coach/day-off/{id:\d+}', 'TrainerPortal\Controllers\Api\DayOffController@requestDetails', ['cors', 'coach_auth'], null],

    // Replacement
    ['GET', '/api/v1/coach/replacements', 'TrainerPortal\Controllers\Api\ReplacementController@available', ['cors', 'coach_auth'], null],
    ['POST', '/api/v1/coach/replacements/{id:\d+}/volunteer', 'TrainerPortal\Controllers\Api\ReplacementController@volunteer', ['cors', 'coach_auth'], null],

    // Attendance Marking
    ['GET', '/api/v1/coach/sessions/{id:\d+}/attendance', 'TrainerPortal\Controllers\Api\AttendanceController@show', ['cors', 'coach_auth'], null],
    ['POST', '/api/v1/coach/sessions/{id:\d+}/attendance', 'TrainerPortal\Controllers\Api\AttendanceController@mark', ['cors', 'coach_auth'], null],

    // Evaluations
    ['GET', '/api/v1/coach/groups/{id:\d+}/evaluation-criteria', 'TrainerPortal\Controllers\Api\EvaluationController@criteria', ['cors', 'coach_auth'], null],
    ['POST', '/api/v1/coach/evaluations', 'TrainerPortal\Controllers\Api\EvaluationController@store', ['cors', 'coach_auth'], null],
    ['GET', '/api/v1/coach/evaluations', 'TrainerPortal\Controllers\Api\EvaluationController@index', ['cors', 'coach_auth'], null],

    // Notifications
    ['GET', '/api/v1/coach/notifications', 'TrainerPortal\Controllers\Api\NotificationController@list', ['cors', 'coach_auth'], null],
    ['POST', '/api/v1/coach/notifications/{id:\d+}/read', 'TrainerPortal\Controllers\Api\NotificationController@markRead', ['cors', 'coach_auth'], null],
    ['POST', '/api/v1/coach/notifications/read-all', 'TrainerPortal\Controllers\Api\NotificationController@markAllRead', ['cors', 'coach_auth'], null],
    ['GET', '/api/v1/coach/notifications/unread-count', 'TrainerPortal\Controllers\Api\NotificationController@unreadCount', ['cors', 'coach_auth'], null],

    // Device / Push Token
    ['POST', '/api/v1/coach/device', 'TrainerPortal\Controllers\Api\DeviceController@register', ['cors', 'coach_auth'], null],
    ['DELETE', '/api/v1/coach/device', 'TrainerPortal\Controllers\Api\DeviceController@unregister', ['cors', 'coach_auth'], null],

    // Profile Photo
    ['POST', '/api/v1/coach/profile/photo', 'TrainerPortal\Controllers\Api\PhotoController@upload', ['cors', 'coach_auth'], null],
];
