From 14ff80a05ea511a7d0cfd17e9e599aa47cd6f47c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Tue, 21 Jul 2026 16:21:00 +0300 Subject: [PATCH] =?UTF-8?q?feat(=D0=BF=D1=80=D0=BE=D0=B3=D1=80=D0=B5=D0=B2?= =?UTF-8?q?):=20=D1=82=D0=B8=D0=BF=D1=8B=20firmRow/prospect.warming=20+=20?= =?UTF-8?q?=D0=BE=D0=B1=D1=91=D1=80=D1=82=D0=BA=D0=B0=20assignAdAudienceFi?= =?UTF-8?q?rm?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/resources/js/api/sales.ts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/app/resources/js/api/sales.ts b/app/resources/js/api/sales.ts index 71463d6d..72666873 100644 --- a/app/resources/js/api/sales.ts +++ b/app/resources/js/api/sales.ts @@ -966,6 +966,12 @@ export interface SalesAdAudienceFirmRow { ch_yandex: boolean; ch_vk: boolean; ch_mts: boolean; + rubric: string | null; // ниша + warmup_started_at: string | null; // дата запуска, ISO + manager_id: number | null; // назначенный менеджер + manager_name: string | null; + warming_active: boolean; // ещё греется / прогрет + warming_channels: Array<'yandex' | 'vk' | 'mts' | 'sms'>; // чем грелась } /** @@ -1108,6 +1114,20 @@ export async function assignWarmingFirm( return data; } +/** + * POST /api/sales/ad-audience/firms/{firm}/assign (Bearer, начальник) → { prospect_id } + * Назначение менеджера без привязки к площадке — для экрана «Прогрев СМС». + * Уже назначенная фирма → 422. + */ +export async function assignAdAudienceFirm(firmId: number, salesUserId: number): Promise<{ prospect_id: number }> { + const { data } = await axios.post<{ prospect_id: number }>( + `/api/sales/ad-audience/firms/${firmId}/assign`, + { sales_user_id: salesUserId }, + { headers: { Accept: 'application/json', 'X-Requested-With': 'XMLHttpRequest', ...authHeaders() } }, + ); + return data; +} + /** * GET /api/sales/warming/mts/file (Bearer, начальник) — файл со списком * номеров для ручной загрузки в МТС Маркетолог (программного доступа к рекламе @@ -1206,6 +1226,8 @@ export interface SalesProspect { reason: string | null; registered_email: string | null; notes: string | null; + /** Состояние прогрева фирмы этой карточки (пункт 5). */ + warming?: { active: boolean; channels: Array<'yandex' | 'vk' | 'mts' | 'sms'> }; } export interface ProspectsResponse {