-- Исправление триггера create_initial_profile и колонки looking_for
-- Дата: 2025-11-06

-- 1. Удаляем старую функцию триггера
DROP FUNCTION IF EXISTS create_initial_profile() CASCADE;

-- 2. Создаём исправленную функцию с полем looking_for
CREATE OR REPLACE FUNCTION create_initial_profile()
RETURNS TRIGGER AS $$
BEGIN
    INSERT INTO profiles (user_id, name, age, gender, looking_for, interested_in)
    VALUES (NEW.id, COALESCE(NEW.first_name, 'User'), 18, 'other', 'both', 'both');
    
    RETURN NEW;
END;
$$ LANGUAGE plpgsql;

-- 3. Пересоздаём триггер
DROP TRIGGER IF EXISTS create_profile_on_user_insert ON users;
DROP TRIGGER IF EXISTS create_profile_trigger ON users;

CREATE TRIGGER create_profile_on_user_insert
    AFTER INSERT ON users
    FOR EACH ROW
    EXECUTE FUNCTION create_initial_profile();

-- 4. Делаем looking_for необязательным с дефолтным значением
ALTER TABLE profiles ALTER COLUMN looking_for DROP NOT NULL;
ALTER TABLE profiles ALTER COLUMN looking_for SET DEFAULT 'both';

-- 5. Добавляем interested_in как синоним для looking_for
ALTER TABLE profiles ADD COLUMN IF NOT EXISTS interested_in VARCHAR(20) DEFAULT 'both' 
    CHECK (interested_in IN ('male', 'female', 'both'));

-- 6. Обновляем существующие записи
UPDATE profiles SET looking_for = 'both' WHERE looking_for IS NULL;
UPDATE profiles SET interested_in = COALESCE(looking_for, 'both') WHERE interested_in IS NULL;

-- 7. Создаём индекс для поиска по interested_in
CREATE INDEX IF NOT EXISTS idx_profiles_interested_in ON profiles(interested_in);

COMMENT ON COLUMN profiles.looking_for IS 'Предпочитаемый пол для знакомства (устаревшее, используйте interested_in)';
COMMENT ON COLUMN profiles.interested_in IS 'Предпочитаемый пол для знакомства: male, female, both';
