#!/usr/bin/env python3
"""
십전대보탕 약재별 효능 설명 추가
"""

import sqlite3

def update_sipjeondaebotang():
    """십전대보탕 약재별 효능 설명 업데이트"""

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

    try:
        # 십전대보탕 ID 확인
        cursor.execute("""
            SELECT formula_id, formula_name
            FROM formulas
            WHERE formula_code = 'SJDB01'
        """)

        result = cursor.fetchone()
        if not result:
            print("❌ 십전대보탕을 찾을 수 없습니다.")
            return False

        formula_id, formula_name = result
        print(f"📋 {formula_name} (ID: {formula_id}) 효능 설명 추가")
        print("="*60)

        # 각 약재별 효능 설명 업데이트
        herb_notes = {
            "숙지황": "보음보혈",
            "작약": "보혈지통",
            "인삼": "대보원기",
            "백출": "보기건비",
            "황기": "보기승양",
            "대추": "보중익기",
            "일당귀": "보혈활혈",
            "복령": "건비이수",
            "감초": "조화제약",
            "천궁": "활혈행기",
            "반하생강백반제": "화담지구"
        }

        print("\n약재별 효능 설명 추가:")
        print("-"*60)

        for herb_name, notes in herb_notes.items():
            # 약재 코드 찾기
            cursor.execute("""
                SELECT fi.ingredient_id, hm.herb_name, fi.notes
                FROM formula_ingredients fi
                JOIN herb_masters hm ON fi.ingredient_code = hm.ingredient_code
                WHERE fi.formula_id = ? AND hm.herb_name = ?
            """, (formula_id, herb_name))

            result = cursor.fetchone()
            if result:
                ingredient_id, actual_name, current_notes = result

                # 효능 설명 업데이트
                cursor.execute("""
                    UPDATE formula_ingredients
                    SET notes = ?
                    WHERE ingredient_id = ?
                """, (notes, ingredient_id))

                if current_notes:
                    print(f"  {actual_name}: '{current_notes}' → '{notes}'")
                else:
                    print(f"  {actual_name}: 효능 설명 추가 → '{notes}'")
            else:
                print(f"  ⚠️ {herb_name}: 약재를 찾을 수 없음")

        conn.commit()
        print(f"\n✅ 효능 설명 추가 완료!")

        # 업데이트 후 확인
        print(f"\n📊 업데이트된 십전대보탕 구성:")
        print("-"*60)

        cursor.execute("""
            SELECT hm.herb_name, fi.grams_per_cheop, fi.notes
            FROM formula_ingredients fi
            JOIN herb_masters hm ON fi.ingredient_code = hm.ingredient_code
            WHERE fi.formula_id = ?
            ORDER BY fi.sort_order
        """, (formula_id,))

        results = cursor.fetchall()
        for herb, amount, notes in results:
            check = "✅" if notes else "❌"
            print(f"  {check} {herb:15s}: {amount:5.1f}g - {notes if notes else '효능 설명 없음'}")

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

    return True

if __name__ == "__main__":
    print("🌿 십전대보탕 효능 설명 추가 프로그램")
    print("="*60)

    if update_sipjeondaebotang():
        print("\n✅ 업데이트 작업이 완료되었습니다.")
    else:
        print("\n❌ 업데이트 중 오류가 발생했습니다.")