#!/usr/bin/env python3
"""
formulas 테이블에 efficacy(주요 효능) 칼럼 추가
"""

import sqlite3

def add_efficacy_column():
    """formulas 테이블에 efficacy 칼럼 추가 및 데이터 입력"""

    conn = sqlite3.connect('database/kdrug.db')
    cursor = conn.cursor()

    try:
        # 1. efficacy 칼럼이 이미 있는지 확인
        cursor.execute("PRAGMA table_info(formulas)")
        columns = cursor.fetchall()
        column_names = [col[1] for col in columns]

        if 'efficacy' not in column_names:
            print("📝 efficacy 칼럼 추가 중...")
            cursor.execute("""
                ALTER TABLE formulas
                ADD COLUMN efficacy TEXT
            """)
            print("✅ efficacy 칼럼 추가 완료")
        else:
            print("ℹ️ efficacy 칼럼이 이미 존재합니다")

        # 2. 기존 처방들의 주요 효능 데이터 업데이트
        print("\n📋 처방별 주요 효능 데이터 추가:")
        print("-"*60)

        formula_efficacies = {
            "십전대보탕": "기혈양허(氣血兩虛)를 치료, 대보기혈(大補氣血), 병후 회복, 수술 후 회복, 만성 피로 개선",
            "소청룡탕": "외감풍한(外感風寒), 내정수음(內停水飮)으로 인한 기침, 천식 치료, 해표산한, 온폐화음",
            "갈근탕": "외감풍한으로 인한 두통, 발열, 오한, 항강 치료, 해표발한, 생진지갈",
            "쌍화탕": "기혈허약, 피로회복, 감기예방, 면역력 증강, 원기회복",
            "월비탕 1차": "비만치료 초기단계, 대사촉진, 체중감량, 부종개선",
            "월비탕 2차": "비만치료 중기단계, 대사촉진 강화, 체중감량, 부종개선",
            "월비탕 3차": "비만치료 후기단계, 대사촉진 최대화, 체중감량, 체질개선",
            "월비탕 4차": "비만치료 마무리단계, 체중유지, 체질개선, 요요방지",
            "삼소음": "리기화담(理氣化痰), 해표산한(解表散寒), 외감풍한과 내상식적으로 인한 기침, 가래 치료"
        }

        for formula_name, efficacy in formula_efficacies.items():
            cursor.execute("""
                UPDATE formulas
                SET efficacy = ?
                WHERE formula_name = ?
            """, (efficacy, formula_name))

            if cursor.rowcount > 0:
                print(f"✅ {formula_name}: 효능 추가됨")
            else:
                print(f"⚠️ {formula_name}: 처방을 찾을 수 없음")

        conn.commit()

        # 3. 업데이트 결과 확인
        print("\n📊 업데이트 결과 확인:")
        print("-"*60)

        cursor.execute("""
            SELECT formula_name, efficacy
            FROM formulas
            WHERE efficacy IS NOT NULL
            ORDER BY formula_id
        """)

        results = cursor.fetchall()
        for name, efficacy in results:
            print(f"\n{name}:")
            print(f"  {efficacy[:80]}...")

        # 4. 테이블 구조 최종 확인
        print("\n📋 formulas 테이블 최종 구조:")
        print("-"*60)

        cursor.execute("PRAGMA table_info(formulas)")
        columns = cursor.fetchall()

        for col in columns:
            if col[1] in ['formula_name', 'description', 'efficacy']:
                print(f"  {col[1]:20}: {col[2]}")

    except sqlite3.Error as e:
        print(f"❌ 데이터베이스 오류: {e}")
        conn.rollback()
        return False
    finally:
        conn.close()

    return True

if __name__ == "__main__":
    print("🌿 처방 효능 칼럼 추가 프로그램")
    print("="*60)

    if add_efficacy_column():
        print("\n✅ efficacy 칼럼 추가 및 데이터 업데이트 완료!")
    else:
        print("\n❌ 작업 중 오류가 발생했습니다.")