feat(sales): Этап 2 — сервис-канал поиск→портал (managers + ingest)
Портал публикует /api/sales/integration/{managers,prospects} под сервис-токеном
(X-Sales-Token, config sales.integration_token). ingest создаёт карточки stage=new
с полным payload, дедуп по (sales_user_id, inn|phone), assigned_by=начальник.
Гейты: 8/8 Pest, Larastan 0. Финдер-сторона — следующим коммитом.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -5,6 +5,7 @@ use App\Http\Controllers\Api\Sales\SalesAuthController;
|
||||
use App\Http\Controllers\Api\Sales\SalesClientsController;
|
||||
use App\Http\Controllers\Api\Sales\SalesDashboardController;
|
||||
use App\Http\Controllers\Api\Sales\SalesIncomeController;
|
||||
use App\Http\Controllers\Api\Sales\SalesIntegrationController;
|
||||
use App\Http\Controllers\Api\Sales\SalesInvoiceController;
|
||||
use App\Http\Controllers\Api\Sales\SalesManagersController;
|
||||
use App\Http\Controllers\Api\Sales\SalesPayoutController;
|
||||
@@ -294,6 +295,13 @@ Route::middleware(['admin-db', 'auth:sales', 'sales-portal'])->prefix('api/sales
|
||||
// managers, dashboard
|
||||
});
|
||||
|
||||
// Сервис-канал «Поиск → Портал» (Этап 2). Токен вместо пользователя (sales-integration),
|
||||
// admin-db — чтобы писать в sales_prospects под crm_admin_user. Дизайн §7.
|
||||
Route::middleware(['admin-db', 'sales-integration'])->prefix('api/sales/integration')->group(function () {
|
||||
Route::get('/managers', [SalesIntegrationController::class, 'managers']);
|
||||
Route::post('/prospects', [SalesIntegrationController::class, 'ingest']);
|
||||
});
|
||||
|
||||
// Plan 4 Task 11: tenant charges ledger (read-only + CSV export).
|
||||
// RLS изоляция через SetTenantContext (auth:sanctum + tenant) — текущий tenant
|
||||
// видит только свои lead_charges. Pagination 20/page, фильтры period/source.
|
||||
|
||||
Reference in New Issue
Block a user