-- Миграция: расширение профиля пользователя (план User Profile System)
-- Добавляет поля в portal_users и создает таблицу user_preferences

-- 1. Добавление полей в portal_users
ALTER TABLE portal_users ADD COLUMN IF NOT EXISTS phone VARCHAR(20);
ALTER TABLE portal_users ADD COLUMN IF NOT EXISTS given_name TEXT;
ALTER TABLE portal_users ADD COLUMN IF NOT EXISTS family_name TEXT;
ALTER TABLE portal_users ADD COLUMN IF NOT EXISTS birth_date DATE;
ALTER TABLE portal_users ADD COLUMN IF NOT EXISTS language VARCHAR(10) DEFAULT 'ru';
ALTER TABLE portal_users ADD COLUMN IF NOT EXISTS theme VARCHAR(20) DEFAULT 'light';
ALTER TABLE portal_users ADD COLUMN IF NOT EXISTS notification_email BOOLEAN DEFAULT true;
ALTER TABLE portal_users ADD COLUMN IF NOT EXISTS notification_push BOOLEAN DEFAULT true;
ALTER TABLE portal_users ADD COLUMN IF NOT EXISTS email_verified BOOLEAN DEFAULT false;
ALTER TABLE portal_users ADD COLUMN IF NOT EXISTS last_login TIMESTAMPTZ;
ALTER TABLE portal_users ADD COLUMN IF NOT EXISTS password_changed_at TIMESTAMPTZ;

-- 2. Создание таблицы user_preferences для расширяемых настроек
CREATE TABLE IF NOT EXISTS user_preferences (
  id BIGSERIAL PRIMARY KEY,
  user_id BIGINT NOT NULL REFERENCES portal_users(id) ON DELETE CASCADE,
  key TEXT NOT NULL,
  value JSONB,
  created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
  updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
  UNIQUE(user_id, key)
);

CREATE INDEX IF NOT EXISTS idx_user_preferences_user_id ON user_preferences(user_id);

COMMENT ON TABLE user_preferences IS 'Расширяемые настройки и предпочтения пользователя';
