import mysql.connector from database.connection import get_db_connection import logging # 모든 설정 조회 def get_all_settings(): settings = [] try: with get_db_connection() as conn: with conn.cursor(dictionary=True) as cursor: cursor.execute("SELECT `id`, `setting_group`, `setting_key`, `setting_value`, `setting_type`, `description` FROM settings") results = cursor.fetchall() for row in results: settings.append({ "id": row['id'], "setting_group": row['setting_group'], "setting_key": row['setting_key'], "setting_value": row['setting_value'], "setting_type": row['setting_type'], "description": row['description'] }) return settings except mysql.connector.Error as err: logging.error(f"Error getting all settings: {err}") return [] # 특정 설정 조회 def get_setting(key): try: with get_db_connection() as conn: with conn.cursor(dictionary=True) as cursor: cursor.execute("SELECT `setting_value`, `setting_type` FROM settings WHERE `setting_key` = %s", (key,)) result = cursor.fetchone() if result: value = result['setting_value'] value_type = result['setting_type'] if value_type == 'integer': return int(value) elif value_type == 'decimal': return float(value) elif value_type == 'boolean': return value.lower() in ('true', '1', 't') else: return value return None except mysql.connector.Error as err: logging.error(f"Error getting setting for key {key}: {err}") return None # 설정 업데이트 def update_settings(settings_data): try: with get_db_connection() as conn: with conn.cursor() as cursor: sql = """ UPDATE settings SET `setting_value` = %s WHERE `setting_key` = %s """ values_to_update = [] for setting in settings_data: key = setting.get('setting_key') value = setting.get('setting_value') if key is not None and value is not None: values_to_update.append((str(value), key)) if values_to_update: cursor.executemany(sql, values_to_update) conn.commit() return True except mysql.connector.Error as err: logging.error(f"Error updating settings: {err}") return False