import mysql.connector
from mysql.connector import Error
from config import DB_CONFIG

def get_db_connection():
    """
    បង្កើត និងប្រគល់ Connection ទៅកាន់ MySQL Database លើ cPanel
    """
    try:
        connection = mysql.connector.connect(**DB_CONFIG)
        if connection.is_connected():
            return connection
    except Error as e:
        print(f"❌ បរាជ័យក្នុងការតភ្ជាប់ទៅ Database: {e}")
        return None

def execute_query(query, params=None, fetch_one=False, fetch_all=False, commit=False):
    """
    Function រួមសម្រាប់ប្រតិបត្តិការ Queries (SELECT, INSERT, UPDATE) ងាយស្រួលប្រើ និងសុវត្ថិភាព
    """
    conn = get_db_connection()
    if not conn:
        return None

    cursor = conn.cursor(dictionary=True)
    result = None

    try:
        cursor.execute(query, params or ())

        if commit:
            conn.commit()
            result = cursor.lastrowid
        elif fetch_one:
            result = cursor.fetchone()
        elif fetch_all:
            result = cursor.fetchall()

    except Error as e:
        print(f"❌ Database Query Error: {e}")
    finally:
        cursor.close()
        conn.close()

    return result