<?php

// API routes  for order
Route::prefix('{guard}/order')->group(function () {
    Route::get('order/form/{element}', 'OrderAPIController@form');
    Route::resource('order', 'OrderAPIController');
});

// Public routes for order
Route::get('orders/', 'OrderPublicController@index');
Route::get('orders/{slug?}', 'OrderPublicController@show');

if (Trans::isMultilingual()) {
    Route::group(
        [
            'prefix' => '{trans}',
            'where'  => ['trans' => Trans::keys('|')],
        ],
        function () {
            // Guard routes for orders
            Route::prefix('{guard}/order')->group(function () {
                Route::get('order/form/{element}', 'OrderAPIController@form');
                Route::apiResource('order', 'OrderAPIController');
            });
            // Public routes for orders
            Route::get('order/Order', 'OrderPublicController@getOrder');
        }
    );
}

// API routes  for product
Route::prefix('{guard}/order')->group(function () {
    Route::get('product/form/{element}', 'ProductAPIController@form');
    Route::resource('product', 'ProductAPIController');
});

// Public routes for product
Route::get('orders/', 'ProductPublicController@index');
Route::get('orders/{slug?}', 'ProductPublicController@show');

if (Trans::isMultilingual()) {
    Route::group(
        [
            'prefix' => '{trans}',
            'where'  => ['trans' => Trans::keys('|')],
        ],
        function () {
            // Guard routes for orders
            Route::prefix('{guard}/order')->group(function () {
                Route::get('product/form/{element}', 'ProductAPIController@form');
                Route::apiResource('product', 'ProductAPIController');
            });
            // Public routes for orders
            Route::get('order/Product', 'ProductPublicController@getProduct');
        }
    );
}

// API routes  for status
Route::prefix('{guard}/order')->group(function () {
    Route::get('status/form/{element}', 'StatusAPIController@form');
    Route::resource('status', 'StatusAPIController');
});

// Public routes for status
Route::get('orders/', 'StatusPublicController@index');
Route::get('orders/{slug?}', 'StatusPublicController@show');

if (Trans::isMultilingual()) {
    Route::group(
        [
            'prefix' => '{trans}',
            'where'  => ['trans' => Trans::keys('|')],
        ],
        function () {
            // Guard routes for orders
            Route::prefix('{guard}/order')->group(function () {
                Route::get('status/form/{element}', 'StatusAPIController@form');
                Route::apiResource('status', 'StatusAPIController');
            });
            // Public routes for orders
            Route::get('order/Status', 'StatusPublicController@getStatus');
        }
    );
}