Files

62 lines
5.0 KiB
PHP

<?php
use App\Http\Controllers\DeskRequestCheckpointController as Checkpoint;
use App\Http\Controllers\DeskServiceEditorController as ServiceEditor;
use App\Http\Controllers\InvestorGuidanceController as Guidance;
use App\Http\Controllers\VirtualDeskController as Desk;
use App\Http\Controllers\VirtualDeskInstallationController as Installation;
use App\Http\Controllers\VirtualDeskOperationsController as Operations;
use App\Http\Middleware\EnsureScopedPortalAdministration;
use App\Http\Middleware\PrivateInvestmentResponse;
use App\Http\Middleware\VirtualDeskInstalled;
use Illuminate\Support\Facades\Route;
Route::middleware(['auth', 'verified', PrivateInvestmentResponse::class])->group(function () {
Route::get('/balcao-virtual/servicos', [Desk::class, 'catalogue']);
Route::middleware([VirtualDeskInstalled::class, 'throttle:60,1'])->prefix('balcao-virtual')->group(function () {
Route::get('painel', [Desk::class, 'panel']);
Route::get('contextos', [Guidance::class, 'contexts']);
Route::post('dossiers', [Desk::class, 'createCase']);
Route::get('dossiers/{id}', [Desk::class, 'showCase'])->whereUuid('id');
Route::get('dossiers/{id}/pre-dossier', [Desk::class, 'preDossier'])->whereUuid('id');
Route::put('dossiers/{id}/estado', [Desk::class, 'caseState'])->whereUuid('id');
Route::post('dossiers/{id}/etapas', [Desk::class, 'stage'])->whereUuid('id');
Route::post('dossiers/{id}/pedidos', [Desk::class, 'createRequest'])->whereUuid('id');
Route::post('dossiers/{id}/documentos', [Desk::class, 'attach'])->whereUuid('id');
Route::get('dossiers/{id}/documentos-disponiveis', [Desk::class, 'availableDocuments'])->whereUuid('id');
Route::get('dossiers/{id}/documentos/{document}', [Desk::class, 'download'])->whereUuid(['id', 'document']);
Route::post('dossiers/{id}/documentos/{document}/conferencia', [Operations::class, 'documentReview'])->whereUuid(['id', 'document']);
Route::get('dossiers/{id}/orientacao', [Guidance::class, 'show'])->whereUuid('id');
Route::post('dossiers/{id}/pressupostos', [Guidance::class, 'assumptions'])->whereUuid('id');
Route::post('dossiers/{id}/recomendacoes', [Guidance::class, 'feedback'])->whereUuid('id');
Route::post('dossiers/{id}/tarefas', [Guidance::class, 'task'])->whereUuid('id');
Route::post('dossiers/{id}/tarefas/{task}', [Guidance::class, 'updateTask'])->whereUuid(['id', 'task']);
Route::post('dossiers/{id}/fontes', [Guidance::class, 'search'])->whereUuid('id');
Route::get('pedidos/{id}', [Desk::class, 'showRequest'])->whereUuid('id');
Route::put('pedidos/{id}', [Desk::class, 'save'])->whereUuid('id');
Route::get('pedidos/{id}/rascunho', [Checkpoint::class, 'show'])->whereUuid('id');
Route::post('pedidos/{id}/rascunho', [Checkpoint::class, 'save'])->whereUuid('id');
Route::post('pedidos/{id}/estado', [Desk::class, 'transition'])->whereUuid('id');
Route::post('pedidos/{id}/responsavel', [Desk::class, 'assign'])->whereUuid('id');
Route::post('pedidos/{id}/mensagens', [Desk::class, 'message'])->whereUuid('id');
Route::post('pedidos/{id}/pagamentos', [Operations::class, 'payment'])->whereUuid('id');
Route::put('pedidos/{id}/pagamentos/{payment}/comprovativo', [Operations::class, 'paymentDocument'])->whereUuid(['id', 'payment']);
Route::post('pedidos/{id}/pagamentos/{payment}/conferencia', [Operations::class, 'paymentReview'])->whereUuid(['id', 'payment']);
Route::post('pedidos/{id}/comunicacoes', [Operations::class, 'communication'])->whereUuid('id');
Route::get('pedidos/{id}/recibo', [Desk::class, 'receipt'])->whereUuid('id');
Route::post('notificacoes/{id}/ler', [Desk::class, 'notification'])->whereNumber('id');
Route::get('encaminhar/{id}', [Desk::class, 'redirectLink'])->whereUuid('id');
});
Route::middleware(EnsureScopedPortalAdministration::class)->group(function () {
Route::get('/management/balcao/atribuicoes', [Desk::class, 'assignments']);
Route::get('/management/balcao-install', [Installation::class, 'preview']);
Route::get('/management/balcao/fontes', [Installation::class, 'sources']);
Route::post('/management/balcao-install', [Installation::class, 'apply']);
Route::post('/management/balcao/servicos', [Installation::class, 'publishService'])->middleware(VirtualDeskInstalled::class);
Route::get('/management/balcao/servicos', [ServiceEditor::class, 'index'])->middleware(VirtualDeskInstalled::class);
Route::put('/management/balcao/servicos/{code}', [ServiceEditor::class, 'publish'])->where('code', '[a-z0-9-]+')->middleware(VirtualDeskInstalled::class);
Route::get('/management/balcao/servicos/{code}/versoes', [ServiceEditor::class, 'history'])->where('code', '[a-z0-9-]+')->middleware(VirtualDeskInstalled::class);
Route::post('/management/balcao/ligacoes/{id}/conferencia', [Installation::class, 'reviewLink'])->whereUuid('id')->middleware(VirtualDeskInstalled::class);
});
});