-- Migration 012: подготовка схемы для шифрования чувствительных полей
-- birth_date и passport_issue_date меняем с DATE на TEXT (для хранения зашифрованных значений)
-- Добавляем passport_search_token — HMAC-индекс для поиска без расшифровки

-- ── guests ────────────────────────────────────────────────────────────────────
ALTER TABLE guests
  ALTER COLUMN birth_date TYPE TEXT USING birth_date::TEXT;

ALTER TABLE guests
  ADD COLUMN IF NOT EXISTS passport_search_token VARCHAR(64);

CREATE INDEX IF NOT EXISTS idx_guests_passport_token
  ON guests(hotel_id, passport_search_token)
  WHERE passport_search_token IS NOT NULL;

-- ── booking_guests ────────────────────────────────────────────────────────────
ALTER TABLE booking_guests
  ALTER COLUMN birth_date       TYPE TEXT USING birth_date::TEXT;

ALTER TABLE booking_guests
  ALTER COLUMN passport_issue_date TYPE TEXT USING passport_issue_date::TEXT;

ALTER TABLE booking_guests
  ADD COLUMN IF NOT EXISTS passport_search_token VARCHAR(64);

CREATE INDEX IF NOT EXISTS idx_booking_guests_passport_token
  ON booking_guests(hotel_id, passport_search_token)
  WHERE passport_search_token IS NOT NULL;
