-- ========= ЮРИДИЧЕСКИЙ ОТДЕЛ: ИСТОРИЯ ПРОВЕРОК КОНТРАГЕНТОВ =========
-- Миграция для создания таблицы истории проверок контрагентов через 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';
