<?php

use Examyou\RestAPI\Facades\ApiRoute;
use Illuminate\Support\Facades\Route;

// Frontend view routes
Route::get('privacy-policy', function () {
    return view('frontend.privacy-policy');
})->name('privacy-policy');

Route::get('cancellation-and-refund-policy', function () {
    return view('frontend.cancellation-and-refund-policy');
})->name('cancellation-and-refund-policy');

Route::get('terms-and-conditions', function () {
    return view('frontend.terms-and-conditions');
})->name('terms-and-conditions');

ApiRoute::group(['namespace' => 'App\Http\Controllers\Api'], function () {
    ApiRoute::post('front-application-form', ['as' => 'api.extra.front-application-form', 'uses' => 'FrontController@frontApplicationForm']);

    // HRMS Login route (alias for auth/login)
    ApiRoute::post('hrms/login', ['as' => 'api.extra.hrms.login', 'uses' => 'AuthController@login']);

    // Face registration and attendance routes (with Bearer token authentication)
    ApiRoute::group(['middleware' => ['api.auth.check']], function () {
        // Face registration routes
        ApiRoute::get('users/missing-faces', ['as' => 'api.face.missing-faces', 'uses' => 'FaceController@missingFaces']);
        ApiRoute::get('face/sync', ['as' => 'api.face.sync', 'uses' => 'FaceController@sync']);
        ApiRoute::post('face/register', ['as' => 'api.face.register', 'uses' => 'FaceController@register']);
        ApiRoute::get('face/registration/{xid}', ['as' => 'api.face.registration.show', 'uses' => 'FaceController@showUserFaceRegistration']);
        ApiRoute::delete('face/registration/{xid}', ['as' => 'api.face.registration.clear', 'uses' => 'FaceController@clearUserFaceRegistration']);
        
        // Attendance routes
        ApiRoute::post('attendance/login', ['as' => 'api.attendance.login', 'uses' => 'AttendanceController@login']);
        ApiRoute::post('attendance/logout', ['as' => 'api.attendance.logout', 'uses' => 'AttendanceController@logout']);
    });
});
