import os
import logging
import mysql.connector
import time
from mysql.connector.pooling import MySQLConnectionPool

# Base DB settings
db_config = {
    'user': 'classgpt',
    'password': '511egoR551',
    'host': 'localhost',
    'port': '3306',
    'database': 'classgpt',
    'charset': 'utf8mb4'
}

logger = logging.getLogger(__name__)

# Create a global connection pool to reuse MySQL connections across requests
# Comments in English by request
POOL_NAME = os.getenv('DB_POOL_NAME', 'classgpt_pool')
POOL_SIZE = int(os.getenv('DB_POOL_SIZE', '20')) # Increased pool size to handle more concurrent users

# Connection pool initialization start time
pool_init_start_time = time.time()
connection_pool = MySQLConnectionPool(
    pool_name=POOL_NAME,
    pool_size=POOL_SIZE,
    pool_reset_session=True,
    **db_config
)
# Connection pool initialization end time
pool_init_end_time = time.time()
logger.info(f"Connection pool initialization time: {pool_init_end_time - pool_init_start_time:.4f} seconds")
