"""
사용자 플랜 확인 유틸리티
"""
from utils.common import get_db_connection


def get_user_plan(user_id):
    """
    사용자의 플랜 정보를 조회합니다.
    
    Args:
        user_id: 사용자 ID 또는 이메일
        
    Returns:
        str: 플랜 이름 ('free', 'plus', 'pro')
    """
    conn = get_db_connection()
    cur = conn.cursor()
    try:
        if '@' in str(user_id):
            cur.execute('SELECT plan FROM users WHERE email = %s', (user_id,))
        else:
            cur.execute('SELECT plan FROM users WHERE id = %s', (user_id,))
        result = cur.fetchone()
        return result[0] if result and result[0] else 'free'
    except Exception as e:
        print(f"플랜 조회 오류: {e}")
        return 'free'
    finally:
        cur.close()
        conn.close()


def is_pro_plan(user_id):
    """
    사용자가 Pro 플랜인지 확인합니다.
    
    Args:
        user_id: 사용자 ID 또는 이메일
        
    Returns:
        bool: Pro 플랜이면 True
    """
    plan = get_user_plan(user_id)
    return plan.lower() == 'pro'


def can_use_evaluation(user_id):
    """
    사용자가 상태평가 기능을 사용할 수 있는지 확인합니다.
    Pro 플랜만 사용 가능합니다.
    
    Args:
        user_id: 사용자 ID 또는 이메일
        
    Returns:
        bool: 사용 가능하면 True
    """
    return is_pro_plan(user_id)

