Initial commit MKD fixes

This commit is contained in:
Arsen
2026-02-04 00:17:04 +05:00
commit de94ad707b
312 changed files with 138754 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
-- ========= АГРЕГИРОВАННЫЕ ПОКАЗАТЕЛИ NPS ПО ДОМУ И ПЕРИОДУ =========
-- Сохранение цифр NPS (score, кол-во ответов, промоутеры и т.д.) для отчетов
CREATE TABLE IF NOT EXISTS nps_building_stats (
id BIGSERIAL PRIMARY KEY,
building_id VARCHAR(50) NOT NULL REFERENCES buildings(id) ON DELETE CASCADE,
period_start DATE NOT NULL,
period_end DATE NOT NULL,
total_responses INTEGER NOT NULL DEFAULT 0,
nps_score INTEGER NOT NULL DEFAULT 0, -- NPS = % промоутеров - % критиков
avg_score NUMERIC(4,2) NOT NULL DEFAULT 0, -- средняя оценка 0-10
promoters INTEGER NOT NULL DEFAULT 0, -- оценка 9-10
passives INTEGER NOT NULL DEFAULT 0, -- оценка 7-8
detractors INTEGER NOT NULL DEFAULT 0, -- оценка 0-6
promoter_percent NUMERIC(5,2) DEFAULT 0,
detractor_percent NUMERIC(5,2) DEFAULT 0,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
UNIQUE(building_id, period_start, period_end)
);
CREATE INDEX IF NOT EXISTS idx_nps_building_stats_building ON nps_building_stats(building_id);
CREATE INDEX IF NOT EXISTS idx_nps_building_stats_period ON nps_building_stats(period_start, period_end);
COMMENT ON TABLE nps_building_stats IS 'Агрегированные показатели NPS по дому за период (для отчетов жителям)';