<?php

use Illuminate\Support\Facades\Route;

use App\Http\Controllers\API\Company\WorkerRequest\WorkerRequestController;
use App\Http\Controllers\API\Company\WorkerRequest\WorkerRequestManagementController; 
use App\Http\Controllers\API\Company\WorkerRequest\WorkerRequestApplicationManagementController; 



Route::prefix('worker-request')->group(function ()
    {
        Route::get('', [WorkerRequestController::class, 'index']);
        Route::get('/get-workerrequest', [WorkerRequestController::class, 'getWorkerRequest']);
        Route::get('/fetch-workers', [WorkerRequestController::class, 'fetchWorkers']);
        Route::post('/apply-workers', [WorkerRequestController::class, 'applyWorkers']);
        Route::post('/add', [WorkerRequestController::class, 'add']);
        Route::get('/get-radius-limit', [WorkerRequestController::class, 'getRadiusLimit']);
    }
);

Route::group(
    [
        'prefix' => 'worker-request-management'
    ],
    function () 
    {
        Route::get( '',                       [ WorkerRequestManagementController::class, 'index'         ]);
        Route::get( '{id}/view',              [ WorkerRequestManagementController::class, 'view'          ]);
        Route::post('create',                 [ WorkerRequestManagementController::class, 'create'        ]);
        Route::put( '{id}/update',            [ WorkerRequestManagementController::class, 'update'        ]);
        Route::delete(    '{id}/destroy',                   [ WorkerRequestManagementController::class, 'destroy'       ]);

        Route::patch( '{id}/activate',        [ WorkerRequestManagementController::class, 'activate'  ]);
        Route::patch( '{id}/disable',         [ WorkerRequestManagementController::class, 'disable'  ]);
        Route::patch( '{id}/complete',        [ WorkerRequestManagementController::class, 'complete'  ]);


        Route::patch( 'batch-activate',       [ WorkerRequestManagementController::class, 'batchActivate' ]);
        Route::patch( 'batch-disable',        [ WorkerRequestManagementController::class, 'batchDisable'  ]);
        Route::patch( 'batch-complete',       [ WorkerRequestManagementController::class, 'batchComplete' ]);

        Route::delete( 'batch-delete',                      [ WorkerRequestManagementController::class, 'batchDelete'   ]);

        Route::group(
            [
                'prefix' => '{workerRequestId}/application'
            ],
            function () 
            {
                Route::get(   '',                       [ WorkerRequestApplicationManagementController::class, 'index'          ]);
                Route::get(   '{applicationId}/view',   [ WorkerRequestApplicationManagementController::class, 'view'           ]);
                
                Route::patch( '{applicationId}/accept', [ WorkerRequestApplicationManagementController::class, 'accept'         ]);
                Route::patch( '{applicationId}/decline',[ WorkerRequestApplicationManagementController::class, 'decline'        ]);
                Route::patch( '{applicationId}/cart',   [ WorkerRequestApplicationManagementController::class, 'cart'           ]);
                Route::patch( '{applicationId}/uncart', [ WorkerRequestApplicationManagementController::class, 'unCart'         ]);

                Route::patch( 'batch-accept',           [ WorkerRequestApplicationManagementController::class, 'batchAccept'    ]);
                Route::patch( 'batch-decline',          [ WorkerRequestApplicationManagementController::class, 'batchDecline'   ]);
                Route::patch( 'batch-cart',             [ WorkerRequestApplicationManagementController::class, 'batchCart'      ]);
                Route::patch( 'batch-uncart',           [ WorkerRequestApplicationManagementController::class, 'batchUnCart'    ]);
            }
        );
    }
);

