import os
import mysql.connector
from mysql.connector import Error

# DB Configuration
# - Prefer environment variables when present.
# - Fallback to the existing defaults used in other migration scripts.
DB_CONFIG = {
    "host": os.environ.get("DB_HOST", "officialsite.kr"),
    "port": int(os.environ.get("DB_PORT", "23306")),
    "user": os.environ.get("DB_USER", "admin"),
    "password": os.environ.get("DB_PASSWORD", "dlgks~123"),
    "database": os.environ.get("DB_NAME", "app_master"),
}


AD_BANNERS_ALTERS = [
    "ALTER TABLE babynote_ad_banners ADD COLUMN badge_title_en VARCHAR(100) NULL COMMENT '배지 타이틀(en)' AFTER badge_title",
    "ALTER TABLE babynote_ad_banners ADD COLUMN badge_title_ja VARCHAR(100) NULL COMMENT '배지 타이틀(ja)' AFTER badge_title_en",
    "ALTER TABLE babynote_ad_banners ADD COLUMN badge_title_zh VARCHAR(100) NULL COMMENT '배지 타이틀(zh)' AFTER badge_title_ja",
    "ALTER TABLE babynote_ad_banners ADD COLUMN title_en VARCHAR(255) NULL COMMENT '제목(en)' AFTER title",
    "ALTER TABLE babynote_ad_banners ADD COLUMN title_ja VARCHAR(255) NULL COMMENT '제목(ja)' AFTER title_en",
    "ALTER TABLE babynote_ad_banners ADD COLUMN title_zh VARCHAR(255) NULL COMMENT '제목(zh)' AFTER title_ja",
    "ALTER TABLE babynote_ad_banners ADD COLUMN description_en TEXT NULL COMMENT '간단 설명(en)' AFTER description",
    "ALTER TABLE babynote_ad_banners ADD COLUMN description_ja TEXT NULL COMMENT '간단 설명(ja)' AFTER description_en",
    "ALTER TABLE babynote_ad_banners ADD COLUMN description_zh TEXT NULL COMMENT '간단 설명(zh)' AFTER description_ja",
    "ALTER TABLE babynote_ad_banners ADD COLUMN content_en LONGTEXT NULL COMMENT '본문 (HTML, en)' AFTER content",
    "ALTER TABLE babynote_ad_banners ADD COLUMN content_ja LONGTEXT NULL COMMENT '본문 (HTML, ja)' AFTER content_en",
    "ALTER TABLE babynote_ad_banners ADD COLUMN content_zh LONGTEXT NULL COMMENT '본문 (HTML, zh)' AFTER content_ja",
    "ALTER TABLE babynote_ad_banners ADD COLUMN thumbnail_image_en TEXT NULL COMMENT '대표 이미지 URL(en)' AFTER thumbnail_image",
    "ALTER TABLE babynote_ad_banners ADD COLUMN thumbnail_image_ja TEXT NULL COMMENT '대표 이미지 URL(ja)' AFTER thumbnail_image_en",
    "ALTER TABLE babynote_ad_banners ADD COLUMN thumbnail_image_zh TEXT NULL COMMENT '대표 이미지 URL(zh)' AFTER thumbnail_image_ja",
    "ALTER TABLE babynote_ad_banners ADD COLUMN images_en JSON NULL COMMENT '추가 이미지들(en, JSON 배열)' AFTER images",
    "ALTER TABLE babynote_ad_banners ADD COLUMN images_ja JSON NULL COMMENT '추가 이미지들(ja, JSON 배열)' AFTER images_en",
    "ALTER TABLE babynote_ad_banners ADD COLUMN images_zh JSON NULL COMMENT '추가 이미지들(zh, JSON 배열)' AFTER images_ja",
]


def run():
    conn = None
    cursor = None
    try:
        conn = mysql.connector.connect(**DB_CONFIG)
        cursor = conn.cursor()
        print("DB Connected")

        for query in AD_BANNERS_ALTERS:
            try:
                cursor.execute(query)
                conn.commit()
                print("OK:", query)
            except Error as e:
                # 1060: Duplicate column name
                if e.errno == 1060:
                    print("SKIP (already exists):", query)
                else:
                    raise

        print("\n=== babynote_ad_banners i18n migration completed ===")
    finally:
        if cursor is not None:
            cursor.close()
        if conn is not None and conn.is_connected():
            conn.close()
            print("DB connection closed")


if __name__ == "__main__":
    run()

