<?php

// Web routes  for payment.

include('routes.php');


if (Trans::isMultilingual()) {
    Route::group(
        [
            'prefix' => '{trans}',
            'where'  => ['trans' => Trans::keys('|')],
        ],
        function () {
            include('routes.php');

        }
    );
}

// Workflow routes for detail

Route::prefix('{guard}/detail')->group(function () {

    Route::get('/workflow/{detail}/{user}', 'DetailWorkflowController@get')
        ->name('bixo.payment.workflow');
    Route::post('/workflow/{detail}/{user}', 'DetailWorkflowController@post');

    Route::get('/action/{detail}/{user}', 'DetailActionController@get')
        ->name('bixo.payment.action');
    Route::post('/action/{detail}/{user}', 'DetailActionController@post');

});


// Workflow routes for refund

Route::prefix('{guard}/refund')->group(function () {

    Route::get('/workflow/{refund}/{user}', 'RefundWorkflowController@get')
        ->name('bixo.payment.workflow');
    Route::post('/workflow/{refund}/{user}', 'RefundWorkflowController@post');

    Route::get('/action/{refund}/{user}', 'RefundActionController@get')
        ->name('bixo.payment.action');
    Route::post('/action/{refund}/{user}', 'RefundActionController@post');

});


// Workflow routes for invoice

Route::prefix('{guard}/invoice')->group(function () {

    Route::get('/workflow/{invoice}/{user}', 'InvoiceWorkflowController@get')
        ->name('bixo.payment.workflow');
    Route::post('/workflow/{invoice}/{user}', 'InvoiceWorkflowController@post');

    Route::get('/action/{invoice}/{user}', 'InvoiceActionController@get')
        ->name('bixo.payment.action');
    Route::post('/action/{invoice}/{user}', 'InvoiceActionController@post');

});


// Workflow routes for gateway

Route::prefix('{guard}/gateway')->group(function () {

    Route::get('/workflow/{gateway}/{user}', 'GatewayWorkflowController@get')
        ->name('bixo.payment.workflow');
    Route::post('/workflow/{gateway}/{user}', 'GatewayWorkflowController@post');

    Route::get('/action/{gateway}/{user}', 'GatewayActionController@get')
        ->name('bixo.payment.action');
    Route::post('/action/{gateway}/{user}', 'GatewayActionController@post');

});


// Workflow routes for payment

Route::prefix('{guard}/payment')->group(function () {

    Route::get('/workflow/{payment}/{user}', 'PaymentWorkflowController@get')
        ->name('bixo.payment.workflow');
    Route::post('/workflow/{payment}/{user}', 'PaymentWorkflowController@post');

    Route::get('/action/{payment}/{user}', 'PaymentActionController@get')
        ->name('bixo.payment.action');
    Route::post('/action/{payment}/{user}', 'PaymentActionController@post');

});