dana-medical-site/internal/storage/migrations/0018_pbx.sql
2026-10-14 13:33:13 +00:00

42 lines
2.3 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- Звонки из Виртуальной АТС МегаФон. Номера клиентов — персональные данные: доступ только
-- из админки, записи разговоров не храним — только ссылку АТС.
CREATE TABLE pbx_calls (
uid text PRIMARY KEY, -- идентификатор звонка в АТС
type text NOT NULL DEFAULT '', -- in | out | missed
status text NOT NULL DEFAULT '', -- success | missed | busy | notavailable…
client text NOT NULL DEFAULT '', -- номер клиента, как прислала АТС
client_key text NOT NULL DEFAULT '', -- ключ номера (10 цифр), как в отчёте по каналам
via text NOT NULL DEFAULT '', -- номер «Через»: на какой номер клиники звонили
via_key text NOT NULL DEFAULT '',
user_login text NOT NULL DEFAULT '',
user_name text NOT NULL DEFAULT '',
started_at timestamptz NOT NULL,
wait int NOT NULL DEFAULT 0,
duration int NOT NULL DEFAULT 0,
record_url text NOT NULL DEFAULT '',
raw jsonb NOT NULL DEFAULT '{}',
synced_at timestamptz NOT NULL DEFAULT now()
);
CREATE INDEX pbx_calls_started_idx ON pbx_calls (started_at);
CREATE INDEX pbx_calls_client_idx ON pbx_calls (client_key, started_at);
CREATE INDEX pbx_calls_via_idx ON pbx_calls (via_key);
-- Номер клиники → канал рекламы. Задаётся в админке; один канал может иметь несколько номеров.
CREATE TABLE pbx_lines (
via_key text PRIMARY KEY,
channel text NOT NULL,
updated_at timestamptz NOT NULL DEFAULT now()
);
-- Журнал загрузок из АТС: когда и что забрали, чем закончилось.
CREATE TABLE pbx_sync_log (
id bigserial PRIMARY KEY,
started_at timestamptz NOT NULL DEFAULT now(),
finished_at timestamptz,
period_from timestamptz NOT NULL,
period_to timestamptz NOT NULL,
calls int NOT NULL DEFAULT 0,
error text NOT NULL DEFAULT '',
manual boolean NOT NULL DEFAULT false
);