<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\api\UsersController;
use App\Http\Controllers\api\ProjectController;
use App\Http\Controllers\TelescopeCleanupController;




Route::prefix('v1')->group(function () {

        Route::middleware('auth:api')->group(function () {
            Route::post('telescope/prune', [TelescopeCleanupController::class, 'prune']);
            Route::post('telescope/clear', [TelescopeCleanupController::class, 'clear']);

       });


    // User Routes
    Route::prefix('users')->group(function () {

        Route::post('login', [UsersController::class, 'login']);
        Route::post('refresh-token-credentials', [UsersController::class, 'refreshTokenWithCredentials']);
        Route::post('forgot-password', [UsersController::class, 'sendResetLinkEmail']);
        Route::post('otp-verification', [UsersController::class, 'otpVerification']);
        Route::post('reset-password', [UsersController::class, 'resetPassword']);
        Route::middleware('auth:api')->group(function () {
            Route::post('refresh-token', [UsersController::class, 'refreshToken']);
            Route::post('logout', [UsersController::class, 'logout']);
            Route::post('change-password', [UsersController::class, 'changePassword']);
            Route::post('save-token', [UsersController::class, 'saveToken']);

        });
    });

    // Project Routes
    Route::prefix('projects')->group(function () {
        Route::get('final/output', [ProjectController::class, 'finalOutout'])->name('finalOutout');

        Route::get('version', [ProjectController::class, 'getVersion']);
        Route::post('update-Image-json', [ProjectController::class, 'updateImageJson']);

        Route::get('get-correction-Image-json-data', [ProjectController::class, 'getCorrectionImageJsonData']);
        Route::get('get-coping-corrected-Image-json', [ProjectController::class, 'getCopingCorrectedImageJson']);


        Route::post('upload-images-json', [ProjectController::class, 'uploadImagesJson']);
        Route::post('freeform-coping-connection', [ProjectController::class, 'freeformCopingConnection']);
        Route::get('get-freeform-coping-connection', [ProjectController::class, 'getfreeformCopingConnection']);
        Route::get('get-Images-json', [ProjectController::class, 'getImagesJson']);
        Route::post('upload-image-s3', [ProjectController::class, 'uploadImageS3']);
        Route::post('send-main-image-processing-queue', [ProjectController::class, 'mainImageProcessingQueue']);
        Route::get('get-Lambda-status', [ProjectController::class, 'getLambdaStatus']);
        Route::post('failed-json-data', [ProjectController::class, 'uploadFailedJsonData']);
        Route::get('get-pool-classification-model', [ProjectController::class, 'getClassificationImagesJson']);
        Route::post('send-mobile-notification', [ProjectController::class, 'sendMobileNotification']);

        Route::get('get-coping-original-image', [ProjectController::class, 'getCopingOriginalImageJson']);
        Route::middleware('auth:api')->group(function () {

            Route::get('get-initial-Image-json-data', [ProjectController::class, 'getinitialImageJsonData']);
            Route::get('get-decking-corrected-Image-json', [ProjectController::class, 'getDeckingCorrectedImageJson']);
            Route::get('get-water-corrected-Image-json', [ProjectController::class, 'getWaterCorrectedImageJson']);

            Route::post('add', [ProjectController::class, 'store']);
            Route::post('update', [ProjectController::class, 'update']);
            Route::post('upload-images', [ProjectController::class, 'uploadImages']);
            Route::get('get-project-images', [ProjectController::class, 'getProjectImages']);
            Route::post('replace-image', [ProjectController::class, 'replaceImage']);
            Route::get('get-component', [ProjectController::class, 'getComponent']);
            Route::get('get-component-options', [ProjectController::class, 'getComponentOptions']);
            Route::get('get-component-products', [ProjectController::class, 'getComponentProduct']);
            Route::get('get-product-samples', [ProjectController::class, 'getProductSamples']);
            Route::post('save-selected-product', [ProjectController::class, 'saveSelectedProduct']);
            Route::get('get-selected-product', [ProjectController::class, 'getSelectedProduct']);
            Route::get('get-search-selected-product', [ProjectController::class, 'searchComponentProduct']);
            Route::get('get-pool-shape', [ProjectController::class, 'getpoolshape']);
            Route::post('upload-pool-shape', [ProjectController::class, 'uploadPoolShape']);
            Route::get('get-original-image', [ProjectController::class, 'getOriginalImage']);

            //favourite Combination api
            Route::post('save-favourite-selected-product', [ProjectController::class, 'saveFavouriteSelectedProduct']);
            Route::get('get-favourite-selected-product', [ProjectController::class, 'getfavouriteSelectedProduct']);
            Route::delete('delete-favourite-combination', [ProjectController::class, 'deleteCombination']);
            Route::post('update-combination-name', [ProjectController::class, 'updateCombinationName']);
            Route::post('reorder-combination', [ProjectController::class, 'reorderCombination']);

            Route::get('final-image-output', [ProjectController::class, 'getFinalImageOutput']);
            Route::get('get-component-product-listing', [ProjectController::class, 'getComponentProductListing']);


            Route::get('get-project', [ProjectController::class, 'getProject']);
            Route::post('update-isfavourite', [ProjectController::class, 'updateIsFavourite']);
            Route::delete('delete-project', [ProjectController::class, 'deleteProject']);
            Route::post('update-project-status', [ProjectController::class, 'updateProjectStatus']);
            Route::get('get-output-link', [ProjectController::class, 'getOutputLink']);
            Route::get('get-search-project', [ProjectController::class, 'searchProjects']);


            Route::get('get-output-link', [ProjectController::class, 'getOutputLink']);
            Route::get('get-output-link', [ProjectController::class, 'getOutputLink']);
            Route::get('get-state', [ProjectController::class, 'getState']);
            Route::post('store-state', [ProjectController::class, 'storeState']);

            Route::get('get-complete-project', [ProjectController::class, 'getCompleteProject']);
            Route::get('update-completed-projects', [ProjectController::class, 'updateProjectStatusToComplete']);

            Route::get('process-coping-images', [ProjectController::class, 'processCopingImages']);
            Route::get('process-mobile-images', [ProjectController::class, 'processMobileImages']);

        });
    });
});


Route::prefix('v2')->group(function () {

    Route::prefix('projects')->group(function () {

         //for kunal and sunny
        Route::get('get-coping-original-image', [ProjectController::class, 'getCopingOriginalImageJson2']);
        Route::get('get-coping-corrected-Image-json', [ProjectController::class, 'getCopingCorrectedImageJson2']);
        Route::post('upload-eraser-image', [ProjectController::class, 'uploadEraserImage']);
        //..

         Route::get('get-project-selections', [ProjectController::class, 'getProjectSelections']);

        Route::middleware('auth:api')->group(function () {

            Route::post('save-selected-product', [ProjectController::class, 'saveSelectedProduct2']);
            Route::post('delete-selected-product', [ProjectController::class, 'deleteSelectedProduct']);
            Route::get('get-decking-corrected-Image-json', [ProjectController::class, 'getDeckingCorrectedImageJson2']);
            Route::post('upload-image-s3', [ProjectController::class, 'uploadImageS3_v2']);

            Route::get('get-water-corrected-Image-json', [ProjectController::class, 'getWaterCorrectedImageJson2']);
            Route::get('get-component-product-listing', [ProjectController::class, 'getComponentProductListing2']);

            //for kunal and sunny
            Route::get('get-eraser-image-url', [ProjectController::class, 'getEraserImageUrl']);
            //..

            Route::post('upload-mask-image', [ProjectController::class, 'uploadMaskImage']);
            Route::get('get-updated-og-image-url', [ProjectController::class, 'getUpdatedEraserImageUrl']);

            Route::get('get-favourite-combination-ids', [ProjectController::class, 'getAllFavouriteCombinationIds']);



        });
    });
});
zz
