import mysql.connector
import logging
from config.database import DB_CONFIG

class DatabaseConnection:
    """Maneja las conexiones a la base de datos MySQL"""
    
    def __init__(self):
        self.connection = None
        self.cursor = None
    
    def connect(self):
        """Establece conexión con la base de datos"""
        try:
            self.connection = mysql.connector.connect(**DB_CONFIG)
            self.cursor = self.connection.cursor()
            logging.info("Conexión a base de datos establecida")
            return True
        except mysql.connector.Error as e:
            logging.error(f"Error conectando a base de datos: {e}")
            return False
    
    def disconnect(self):
        """Cierra la conexión con la base de datos"""
        try:
            if self.cursor:
                self.cursor.close()
            if self.connection:
                self.connection.close()
            logging.debug("Conexión a base de datos cerrada")
        except Exception as e:
            logging.error(f"Error cerrando conexión: {e}")
    
    def get_cursor(self):
        """Retorna el cursor de la conexión"""
        return self.cursor
    
    def commit(self):
        """Confirma las transacciones"""
        if self.connection:
            self.connection.commit()
    
    def rollback(self):
        """Deshace las transacciones"""
        if self.connection:
            self.connection.rollback() 