-- 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;