import os
import mysql.connector


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"),
}


CREATE_TABLE_QUERY = """
CREATE TABLE IF NOT EXISTS babynote_family_activity_logs (
    id VARCHAR(36) PRIMARY KEY,
    family_id VARCHAR(36) NOT NULL,
    user_id VARCHAR(36) NOT NULL,
    activity_type VARCHAR(50) NOT NULL COMMENT '가족 활동 타입 (share, family_bio_update)',
    target_type VARCHAR(50) NULL COMMENT '대상 타입 (diary, profile 등)',
    target_id VARCHAR(36) NULL COMMENT '대상 ID',
    content TEXT NULL COMMENT '활동 관련 본문',
    metadata_json TEXT NULL COMMENT '추가 메타데이터(JSON 문자열)',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    INDEX idx_family_created_at (family_id, created_at),
    INDEX idx_user_created_at (user_id, created_at),
    INDEX idx_activity_type (activity_type)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
"""


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

        cursor.execute(CREATE_TABLE_QUERY)
        connection.commit()
        print("OK: babynote_family_activity_logs")
        print("\n=== babynote family activity logs migration completed ===")
    finally:
        if cursor is not None:
            cursor.close()
        if connection is not None and connection.is_connected():
            connection.close()
            print("DB connection closed")


if __name__ == "__main__":
    run()
