From 5e73e0cf0fd2e83dd3b41b5227e8eaba9d2d1732 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: Sun, 17 May 2026 17:27:14 +0300 Subject: [PATCH] =?UTF-8?q?feat(deals):=20schema=20=E2=80=94=20lead=5Fstat?= =?UTF-8?q?uses=20funnel=2014->5=20(new/viewed/in=5Fprogress/won/lost)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/CHANGELOG_schema.md | 10 ++++++++-- db/schema.sql | 25 ++++++++----------------- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/db/CHANGELOG_schema.md b/db/CHANGELOG_schema.md index 600ffbf3..46e70ce2 100644 --- a/db/CHANGELOG_schema.md +++ b/db/CHANGELOG_schema.md @@ -1,11 +1,17 @@ # CHANGELOG schema.sql — Лидерра -**Назначение:** консолидированный журнал изменений `schema.sql`. Содержит двадцать одну запись в обратном хронологическом порядке (v8.22 → v8.21 → v8.20 → v8.19 → v8.18 → v8.17 → v8.16 → v8.15 → v8.14 → v8.13 → v8.12 → v8.11 → v8.10 → v8.9 → v8.8 → v8.7 → v8.6 → v8.5 → v8.4 → v8.3 → v8.2), как принято в keep-a-changelog. +**Назначение:** консолидированный журнал изменений `schema.sql`. Содержит двадцать две записи в обратном хронологическом порядке (v8.23 → v8.22 → v8.21 → v8.20 → v8.19 → v8.18 → v8.17 → v8.16 → v8.15 → v8.14 → v8.13 → v8.12 → v8.11 → v8.10 → v8.9 → v8.8 → v8.7 → v8.6 → v8.5 → v8.4 → v8.3 → v8.2), как принято в keep-a-changelog. -**Файл схемы:** `schema.sql` (текущая версия — v8.22, консолидированная — разворачивает БД с нуля). +**Файл схемы:** `schema.sql` (текущая версия — v8.23, консолидированная — разворачивает БД с нуля). **История записей:** +## v8.23 — 2026-05-17 — Редизайн «Сделки» (воронка статусов 14 → 5) + +**Изменения:** + +Воронка статусов 14 → 5: seed `lead_statuses` (`new`/`viewed`/`in_progress`/`won`/`lost`). Инкрементальная миграция `2026_05_17_120000_deals_funnel_14_to_5_statuses.php` ремапит `deals.status`, `tenant_status_overrides.status_slug`, `import_unknown_statuses.mapped_to_slug`. Редизайн страницы «Сделки», спека `docs/superpowers/specs/2026-05-17-deals-page-redesign-design.md`. **Структурных изменений нет** — только seed `lead_statuses` (14 → 5 строк); schema baseline без изменений (64 базовых таблиц / 12 партиций / 119 индексов / 40 RLS / 5 функций / 13 триггеров). + ## v8.22 — 2026-05-17 — Plan 6 (C9 — Subject-level regions) **Изменения:** diff --git a/db/schema.sql b/db/schema.sql index 34f9614d..ba1590eb 100644 --- a/db/schema.sql +++ b/db/schema.sql @@ -1,6 +1,6 @@ -- ============================================================================= -- schema.sql — единая схема БД для SaaS-аналога crm.bp-gr.ru («Лидерра») --- Версия: v8.22 (17.05.2026 — Plan 6 (C9): projects.regions INT[] subject-level filtering + GIN-индекс idx_projects_regions) +-- Версия: v8.23 (17.05.2026 — Редизайн «Сделки»: seed lead_statuses 14→5 (new/viewed/in_progress/won/lost)) -- Метрики: 64 базовые таблицы (62 regular + 2 partitioned parents: deals + supplier_lead_costs) + 12 партиций / 119 индексов / 40 RLS-политик / 5 функций / 13 триггеров -- Базовая версия: v8.20 (11.05.2026 — Plan 5 frontend projects UI: projects.archived_at TIMESTAMPTZ NULL для soft archive flow; tenants.limits JSONB NOT NULL DEFAULT '{}' для per-tenant project/user лимитов) -- Базовая версия: v8.19 (11.05.2026 — Plan 4 billing+csv+admin: tenants.delivered_in_month, lead_charges.charge_source + CHECK, supplier_leads.recovered_from_csv_at, supplier_csv_reconcile_log) @@ -316,7 +316,7 @@ CREATE TABLE tariff_plans ( -- ----------------------------------------------------------------------------- -- lead_statuses — справочник статусов воронки (раздел 7.3, 8.1) --- 14 статусов: 6 системных + 8 настраиваемых +-- 5 статусов воронки (все системные) -- ----------------------------------------------------------------------------- CREATE TABLE lead_statuses ( slug VARCHAR(50) PRIMARY KEY, @@ -2574,22 +2574,13 @@ CREATE INDEX idx_admin_audit_pending ON saas_admin_audit_log(approved_at) WHERE -- 11. ЗАПОЛНЕНИЕ СПРАВОЧНИКОВ -- ============================================================================= --- 14 статусов воронки (раздел 7.3, 8.1) +-- 5 статусов воронки (редизайн «Сделки» 2026-05-17 — было 14) INSERT INTO lead_statuses (slug, name_ru, is_system, sort_order, color_hex) VALUES - ('new', 'Новые', TRUE, 1, '#3B82F6'), - ('viewed', 'Просмотрено', TRUE, 2, '#8B5CF6'), - ('worked', 'Проработан', TRUE, 3, '#06B6D4'), - ('base', 'База', FALSE, 4, '#64748B'), - ('missed', 'Недозвон', FALSE, 5, '#F59E0B'), - ('negotiations', 'Переговоры', FALSE, 6, '#EAB308'), - ('waiting_payment', 'Ожидаем оплаты', FALSE, 7, '#A78BFA'), - ('partnership', 'Партнерка', FALSE, 8, '#EC4899'), - ('paid', 'Оплачено', TRUE, 9, '#10B981'), - ('closed', 'Закрыто и не реализовано', TRUE, 10, '#6B7280'), - ('test_drive', 'Тест драйв', FALSE,11, '#14B8A6'), - ('hot', 'Горячий', FALSE,12, '#EF4444'), - ('replacement', 'На замену', FALSE,13, '#F97316'), - ('final_missed', 'Конечный недозвон', TRUE, 14, '#1F2937'); + ('new', 'Новая сделка', TRUE, 1, '#3B82F6'), + ('viewed', 'Просмотрено', TRUE, 2, '#8B5CF6'), + ('in_progress', 'В работе', TRUE, 3, '#06B6D4'), + ('won', 'Сделка', TRUE, 4, '#10B981'), + ('lost', 'Не реализовано', TRUE, 5, '#6B7280'); -- НОВОЕ в v8.2: каталог поставщиков B1/B2/B3