60 lines
6.5 KiB
PHP
60 lines
6.5 KiB
PHP
<?php
|
|
|
|
use App\Http\Controllers\InvestmentLegalSourceController;
|
|
use App\Http\Controllers\InvestmentZoneAttachmentController;
|
|
use App\Http\Controllers\InvestmentZoneController;
|
|
use App\Http\Controllers\InvestmentZoneGeometryController;
|
|
use App\Http\Controllers\InvestmentZoneLinkController;
|
|
use App\Http\Controllers\InvestmentZoneRelationController;
|
|
use App\Http\Controllers\SimulationTaxRuleGovernanceController;
|
|
use App\Http\Middleware\CorrelationId;
|
|
use App\Http\Middleware\PrivateInvestmentResponse;
|
|
use App\Http\Middleware\RequireZoneMfa;
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
Route::get('/zonas', [InvestmentZoneController::class, 'index'])->name('investment.zones');
|
|
Route::get('/api/v2/investment/zone-map', [InvestmentZoneGeometryController::class, 'map'])->middleware('throttle:api');
|
|
Route::get('/zonas/{id}', [InvestmentZoneController::class, 'show'])->whereUuid('id');
|
|
Route::get('/api/v2/investment/zones', [InvestmentZoneController::class, 'index'])->middleware('throttle:api');
|
|
Route::get('/api/v2/investment/zones/export.csv', [InvestmentZoneController::class, 'export'])->middleware('throttle:api');
|
|
Route::get('/api/v2/investment/zones/{id}', [InvestmentZoneController::class, 'show'])->whereUuid('id')->middleware('throttle:api');
|
|
Route::get('/zonas/{zone}/anexos/{attachment}', [InvestmentZoneAttachmentController::class, 'downloadPublic'])->whereUuid(['zone', 'attachment'])->middleware('throttle:api');
|
|
Route::middleware([CorrelationId::class, 'auth', 'verified', \App\Http\Middleware\EnsureScopedPortalAdministration::class, RequireZoneMfa::class, PrivateInvestmentResponse::class, 'throttle:30,1'])->group(function () {
|
|
Route::post('/api/v2/investment/admin/tax-rule-sources', [\App\Http\Controllers\SimulationFiscalSourceController::class, 'store']);
|
|
Route::get('/api/v2/investment/admin/legal-sources', [InvestmentLegalSourceController::class, 'index']);
|
|
Route::post('/api/v2/investment/admin/legal-sources', [InvestmentLegalSourceController::class, 'store']);
|
|
Route::post('/api/v2/investment/admin/legal-sources/{id}/{action}', [InvestmentLegalSourceController::class, 'transition'])->whereUuid('id')->whereIn('action', ['validate', 'revoke']);
|
|
Route::get('/api/v2/investment/admin/tax-rules', [SimulationTaxRuleGovernanceController::class, 'index']);
|
|
Route::post('/api/v2/investment/admin/tax-rules', [SimulationTaxRuleGovernanceController::class, 'store']);
|
|
Route::get('/api/v2/investment/admin/tax-rules/{id}', [SimulationTaxRuleGovernanceController::class, 'show'])->whereUuid('id');
|
|
Route::put('/api/v2/investment/admin/tax-rules/{id}', [SimulationTaxRuleGovernanceController::class, 'update'])->whereUuid('id');
|
|
Route::post('/api/v2/investment/admin/tax-rules/{id}/qa-preview', [SimulationTaxRuleGovernanceController::class, 'qaPreview'])->whereUuid('id');
|
|
Route::get('/management/investment/tax-rules/{id}/qa-review', [SimulationTaxRuleGovernanceController::class, 'qaReview'])->whereUuid('id');
|
|
Route::post('/api/v2/investment/admin/tax-rules/{id}/{action}', [SimulationTaxRuleGovernanceController::class, 'transition'])
|
|
->whereUuid('id')->whereIn('action', ['submit', 'review', 'reject', 'approve', 'publish', 'suspend', 'archive']);
|
|
Route::get('/management/investment/zones/operational-install',function(\Illuminate\Http\Request $r,\App\Services\InvestmentZoneOperationalDetailsInstallation $s){return response()->json(['plan'=>$s->preview($r->user())]);});
|
|
Route::post('/management/investment/zones/operational-install',function(\Illuminate\Http\Request $r,\App\Services\InvestmentZoneOperationalDetailsInstallation $s){return response()->json(['receipt'=>$s->apply($r->user(),$r->all())]);});
|
|
Route::get('/management/investment/zones/profile-install',function(\Illuminate\Http\Request $r,\App\Services\InvestmentZoneProfileInstallation $s){return response()->json(['plan'=>$s->preview($r->user())]);});
|
|
Route::post('/management/investment/zones/profile-install',function(\Illuminate\Http\Request $r,\App\Services\InvestmentZoneProfileInstallation $s){return response()->json(['receipt'=>$s->apply($r->user(),$r->all())]);});
|
|
Route::get('/management/investment/zones', [InvestmentZoneController::class, 'index']);
|
|
Route::post('/api/v2/investment/admin/zones/{id}/relations', [InvestmentZoneRelationController::class, 'store'])->whereUuid('id');
|
|
Route::post('/api/v2/investment/admin/zone-relations/{id}/{action}', [InvestmentZoneRelationController::class, 'review'])->whereUuid('id')->whereIn('action', ['validate', 'revoke']);
|
|
Route::post('/api/v2/investment/admin/zones/{id}/geometries', [InvestmentZoneGeometryController::class, 'store'])->whereUuid('id');
|
|
Route::post('/api/v2/investment/admin/zone-geometries/{id}/{action}', [InvestmentZoneGeometryController::class, 'review'])->whereUuid('id')->whereIn('action', ['validate', 'revoke']);
|
|
Route::get('/management/investment/zones/{id}', [InvestmentZoneController::class, 'show'])->whereUuid('id');
|
|
Route::post('/api/v2/investment/admin/zones/{id}/attachments', [InvestmentZoneAttachmentController::class, 'store'])->whereUuid('id');
|
|
Route::post('/api/v2/investment/admin/zone-attachments/{id}/{action}', [InvestmentZoneAttachmentController::class, 'review'])->whereUuid('id')->whereIn('action', ['review', 'select-public', 'withdraw-public']);
|
|
Route::get('/management/investment/zones/{zone}/attachments/{attachment}', [InvestmentZoneAttachmentController::class, 'downloadPrivate'])->whereUuid(['zone', 'attachment']);
|
|
Route::post('/api/v2/investment/admin/zones/{id}/links', [InvestmentZoneLinkController::class, 'store'])->whereUuid('id');
|
|
Route::post('/api/v2/investment/admin/zone-locations/{id}/validate', [InvestmentZoneController::class, 'validateLocation'])->whereUuid('id');
|
|
Route::post('/api/v2/investment/admin/zone-links/{id}/{action}', [InvestmentZoneLinkController::class, 'transition'])->whereUuid('id')->whereIn('action', ['validate', 'revoke']);
|
|
Route::prefix('api/v2/investment/admin/zones')->group(function () {
|
|
Route::get('/', [InvestmentZoneController::class, 'index']);
|
|
Route::get('/{id}', [InvestmentZoneController::class, 'show'])->whereUuid('id');
|
|
Route::post('/', [InvestmentZoneController::class, 'save']);
|
|
Route::put('/{id}', [InvestmentZoneController::class, 'save'])->whereUuid('id');
|
|
Route::post('/{id}/{action}', [InvestmentZoneController::class, 'transition'])->whereUuid('id')->whereIn('action', ['publish', 'suspend', 'reconcile']);
|
|
Route::get('/{id}/revisions', [InvestmentZoneController::class, 'revisions'])->whereUuid('id');
|
|
});
|
|
});
|