-- 012_add_rating_column_simple.sql
-- USER_LIST 테이블에 RATING 컬럼 추가 (MariaDB 호환, 간단한 방식)

-- 1. 기존 RATING 컬럼 확인
SELECT 
    CASE 
        WHEN COUNT(*) > 0 THEN 'RATING 컬럼이 이미 존재합니다'
        ELSE 'RATING 컬럼을 추가합니다'
    END as status
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = DATABASE() 
AND TABLE_NAME = 'USER_LIST' 
AND COLUMN_NAME = 'RATING';

-- 2. RATING 컬럼 추가 (존재하지 않으면 추가됨, 존재하면 오류 발생하지만 무시 가능)
-- 이 명령은 컬럼이 이미 존재하면 오류가 발생합니다. 이는 정상적인 동작입니다.
ALTER TABLE USER_LIST 
ADD COLUMN RATING DECIMAL(3,1) DEFAULT 0.0 COMMENT '사용자 평점 (0.0~5.0)';

-- 3. 인덱스 추가 (존재하지 않으면 추가됨)
-- 이 명령도 인덱스가 이미 존재하면 오류가 발생합니다. 이는 정상적인 동작입니다.
CREATE INDEX idx_user_rating ON USER_LIST (RATING DESC);

-- 4. RATING 기본값 업데이트 (NULL인 경우에만)
UPDATE USER_LIST 
SET RATING = 0.0 
WHERE RATING IS NULL;

-- 5. 최종 검증
SELECT 
    COLUMN_NAME, 
    DATA_TYPE, 
    IS_NULLABLE, 
    COLUMN_DEFAULT,
    COLUMN_COMMENT
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = DATABASE() 
AND TABLE_NAME = 'USER_LIST' 
AND COLUMN_NAME = 'RATING';

-- 6. 인덱스 확인
SELECT 
    INDEX_NAME,
    COLUMN_NAME,
    SEQ_IN_INDEX
FROM INFORMATION_SCHEMA.STATISTICS 
WHERE TABLE_SCHEMA = DATABASE() 
AND TABLE_NAME = 'USER_LIST' 
AND INDEX_NAME = 'idx_user_rating';

SELECT '🎉 USER_LIST 테이블 RATING 컬럼 추가 완료!' as result; 