40 lines
1.9 KiB
SQL
Executable File
40 lines
1.9 KiB
SQL
Executable File
-- ========= ЮРИДИЧЕСКИЙ ОТДЕЛ: ИСТОРИЯ ПРОВЕРОК КОНТРАГЕНТОВ =========
|
||
-- Миграция для создания таблицы истории проверок контрагентов через DaData
|
||
|
||
CREATE TABLE IF NOT EXISTS counterparty_checks (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
inn TEXT NOT NULL,
|
||
kpp TEXT,
|
||
ogrn TEXT,
|
||
name TEXT NOT NULL,
|
||
short_name TEXT,
|
||
type VARCHAR(20) CHECK (type IN ('LEGAL', 'INDIVIDUAL')),
|
||
status VARCHAR(20),
|
||
registration_date DATE,
|
||
liquidation_date DATE,
|
||
address TEXT,
|
||
okved TEXT,
|
||
okveds JSONB,
|
||
management_name TEXT,
|
||
management_post TEXT,
|
||
finance_data JSONB, -- Полные финансовые данные
|
||
authorities_data JSONB, -- Данные о налоговой, ПФР, ФСС
|
||
phones JSONB,
|
||
emails JSONB,
|
||
employee_count INTEGER,
|
||
risk_level VARCHAR(10) NOT NULL CHECK (risk_level IN ('low', 'medium', 'high')),
|
||
risk_reasons TEXT[],
|
||
raw_data JSONB, -- Полные данные от DaData
|
||
checked_by TEXT, -- Кто провел проверку
|
||
checked_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||
notes TEXT,
|
||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||
);
|
||
|
||
CREATE INDEX IF NOT EXISTS idx_counterparty_checks_inn ON counterparty_checks(inn);
|
||
CREATE INDEX IF NOT EXISTS idx_counterparty_checks_risk_level ON counterparty_checks(risk_level);
|
||
CREATE INDEX IF NOT EXISTS idx_counterparty_checks_checked_at ON counterparty_checks(checked_at DESC);
|
||
CREATE INDEX IF NOT EXISTS idx_counterparty_checks_name ON counterparty_checks(name);
|
||
|
||
COMMENT ON TABLE counterparty_checks IS 'История проверок контрагентов через DaData API';
|