feat(прогрев): типы firmRow/prospect.warming + обёртка assignAdAudienceFirm

This commit is contained in:
Дмитрий
2026-07-21 16:21:00 +03:00
parent fc16500fea
commit 14ff80a05e
+22
View File
@@ -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 {