import mysql.connector
from config import DATABASE

class Database:
    def __init__(self):
        self.connection   = mysql.connector.connect(**DATABASE)
        self.db = self.connection.cursor(buffered=True)

    def __enter__(self):
        return self

    def __exit__(self, exc_type, exc_val, exc_tb):
        self.db.close()
        self.connection.close()


    def get_media_task(self, id: int, search_column: str, get: str = '*', order: str = 'ORDER BY id ASC', op: str = '='):
        sql = "SELECT {} FROM media_tasks WHERE {}{}%s {}".format(get,search_column,op,order)
        self.db.execute(sql, (id,))
        return self.db.fetchall()

    def update_media_task(self, id: int, column: str, entry):
        sql = "UPDATE media_tasks SET {} = %s WHERE id = %s".format(column)
        self.db.execute(sql, (entry, id,))
        self.connection.commit()
        return

    def get_package(self, id: int, search_column: str, get: str = '*', order: str = 'ORDER BY id ASC'):
        sql = "SELECT {} FROM task_packages WHERE {}=%s {}".format(get,search_column,order)
        self.db.execute(sql, (id,))
        return self.db.fetchall()