61 lines
5.2 KiB
PHP
61 lines
5.2 KiB
PHP
<?php
|
|
|
|
use App\Http\Controllers\InvestmentContextController;
|
|
use App\Http\Controllers\InvestmentDiscoveryController;
|
|
use App\Http\Controllers\InvestmentSubmissionController;
|
|
use App\Http\Controllers\InvestmentWorkspaceController;
|
|
use App\Http\Controllers\PortalContactController;
|
|
use App\Http\Controllers\PortalManagementController;
|
|
use App\Http\Middleware\PrivateInvestmentResponse;
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
Route::get('/educacao', [InvestmentDiscoveryController::class, 'index'])->name('investment.education');
|
|
Route::redirect('/clusters', '/carteira?kind=cluster');
|
|
Route::redirect('/corredores', '/carteira?kind=corridor');
|
|
Route::redirect('/projectos-ancora', '/carteira?kind=project');
|
|
Route::redirect('/portal-do-investidor', '/');
|
|
Route::redirect('/portal-do-investidor/oportunidades', '/oportunidades');
|
|
Route::get('/portal-do-investidor/oportunidades/{slug}', fn (string $slug) => redirect('/oportunidades/'.rawurlencode($slug), 301));
|
|
Route::inertia('/sobre', 'portal/about')->name('institutional.about');
|
|
Route::inertia('/contacto', 'portal/contact')->name('institutional.contact');
|
|
Route::post('/contacto/mensagem', [PortalContactController::class, 'store'])->middleware('throttle:10,1')->name('institutional.contact.store');
|
|
Route::prefix('api/v1/investment')->middleware('throttle:api')->group(function () {
|
|
foreach (['search', 'references', 'suggest', 'map', 'compare', 'export'] as $method) {
|
|
Route::get($method, [InvestmentDiscoveryController::class, $method]);
|
|
}
|
|
Route::get('opportunities/{slug}', [InvestmentDiscoveryController::class, 'detailApi']);
|
|
Route::post('favourites/{id}', [InvestmentDiscoveryController::class, 'favourite'])->whereNumber('id')->middleware(['auth', 'verified']);
|
|
});
|
|
Route::middleware(['auth', 'verified', PrivateInvestmentResponse::class])->group(function () {
|
|
foreach (['investidor', 'api/v1/investment'] as $prefix) {
|
|
Route::get($prefix.'/profile', [InvestmentWorkspaceController::class, 'profile']);
|
|
Route::put($prefix.'/profile', [InvestmentWorkspaceController::class, 'saveProfile'])->middleware('throttle:20,1');
|
|
Route::post($prefix.'/companies/{id?}', [InvestmentWorkspaceController::class, 'company'])->whereUuid('id')->middleware('throttle:20,1');
|
|
Route::put($prefix.'/organizations/{id}/country', [InvestmentWorkspaceController::class, 'organizationCountry'])->whereUuid('id')->middleware('throttle:20,1');
|
|
Route::post($prefix.'/companies/{id}/organization-country', [InvestmentWorkspaceController::class, 'reuseOrganizationCountry'])->whereUuid('id')->middleware('throttle:20,1');
|
|
Route::get($prefix.'/notifications', [InvestmentWorkspaceController::class, 'notifications']);
|
|
Route::post($prefix.'/notifications/{id}/read', [InvestmentWorkspaceController::class, 'readNotification'])->whereUuid('id');
|
|
}
|
|
foreach (['investidor/manifestacoes', 'api/v1/investment/submissions'] as $prefix) {
|
|
Route::get($prefix, [InvestmentSubmissionController::class, 'index']);
|
|
Route::post($prefix, [InvestmentSubmissionController::class, 'create'])->middleware('throttle:10,1');
|
|
Route::get($prefix.'/{id}', [InvestmentSubmissionController::class, 'show'])->whereUuid('id');
|
|
Route::put($prefix.'/{id}', [InvestmentSubmissionController::class, 'save'])->whereUuid('id')->middleware('throttle:30,1');
|
|
Route::post($prefix.'/{id}/contexto', [InvestmentSubmissionController::class, 'bindContext'])->whereUuid('id')->middleware('throttle:20,1');
|
|
Route::post($prefix.'/{id}/submit', [InvestmentSubmissionController::class, 'submit'])->whereUuid('id')->middleware('throttle:10,1');
|
|
Route::post($prefix.'/{id}/attachments', [InvestmentSubmissionController::class, 'attach'])->whereUuid('id')->middleware('throttle:10,1');
|
|
Route::post($prefix.'/{id}/messages', [InvestmentWorkspaceController::class, 'message'])->whereUuid('id')->middleware('throttle:10,1');
|
|
Route::get($prefix.'/{id}/revisions/{version}', [InvestmentWorkspaceController::class, 'revision'])->whereUuid('id')->whereNumber('version');
|
|
Route::get($prefix.'/{id}/attachments/{attachment}', [InvestmentSubmissionController::class, 'download'])->whereUuid(['id', 'attachment']);
|
|
}
|
|
});
|
|
Route::middleware(['auth', 'verified', 'can:manage-portal'])->group(function () {
|
|
Route::patch('/api/v1/investment/admin/interests/{interest}/status', [PortalManagementController::class, 'review'])->whereNumber('interest')->middleware(PrivateInvestmentResponse::class);
|
|
Route::get('/management/opportunities/{id}/context', [InvestmentContextController::class, 'edit'])->whereNumber('id');
|
|
Route::put('/management/opportunities/{id}/context', [InvestmentContextController::class, 'save'])->whereNumber('id');
|
|
Route::get('/management/investment/references', [InvestmentContextController::class, 'references']);
|
|
Route::post('/management/investment/references/{id?}', [InvestmentContextController::class, 'saveReference'])->whereNumber('id');
|
|
Route::put('/api/v1/investment/admin/opportunities/{id}/context', [InvestmentContextController::class, 'save'])->whereNumber('id');
|
|
Route::post('/api/v1/investment/admin/references/{id?}', [InvestmentContextController::class, 'saveReference'])->whereNumber('id');
|
|
});
|