<?php

// Routes for map.

// Guard routes for transaction
Route::prefix('{guard}/map')->group(function () {

    Route::post('transaction/exim/{exim}', 'TransactionEximController');
    Route::patch('transaction/actions/{action}', 'TransactionActionsController');
    Route::patch('transaction/action/{transaction}/{action}', 'TransactionActionController');
    Route::patch('transaction/workflow/{transaction}/{transition}', 'TransactionWorkflowController');
    Route::resource('transaction', 'TransactionResourceController');
});

// Guard routes for project
Route::prefix('{guard}/map')->group(function () {

    Route::post('project/exim/{exim}', 'ProjectEximController');
    Route::patch('project/actions/{action}', 'ProjectActionsController');
    Route::patch('project/action/{project}/{action}', 'ProjectActionController');
    Route::patch('project/workflow/{project}/{transition}', 'ProjectWorkflowController');
    Route::resource('project', 'ProjectResourceController');
});

// Guard routes for building
Route::prefix('{guard}/map')->group(function () {

    Route::post('building/exim/{exim}', 'BuildingEximController');
    Route::resource('building', 'BuildingResourceController');
});

// Guard routes for developer
Route::prefix('{guard}/map')->group(function () {

    Route::post('developer/exim/{exim}', 'DeveloperEximController');
    Route::resource('developer', 'DeveloperResourceController');
});

// Guard routes for unit
Route::prefix('{guard}/map')->group(function () {

    Route::post('unit/exim/{exim}', 'UnitEximController');
    Route::patch('unit/actions/{action}', 'UnitActionsController');
    Route::patch('unit/action/{unit}/{action}', 'UnitActionController');
    Route::patch('unit/workflow/{unit}/{transition}', 'UnitWorkflowController');
    Route::resource('unit', 'UnitResourceController');
});



// Public routes for map
Route::get('maps/', 'MapPublicController@index');
Route::get('map/{slug?}', 'MapPublicController@show');