from models.database import execute_query, execute_single_query, execute_update_query

class TemperamentModel:
    @staticmethod
    def get_all_temperaments():
        query = "SELECT * FROM temperaments ORDER BY created_at DESC"
        return execute_query(query)
    
    @staticmethod
    def get_temperament_by_id(temperament_id):
        query = "SELECT * FROM temperaments WHERE id = %s"
        return execute_single_query(query, (temperament_id,))
    
    @staticmethod
    def create_temperament(name, description, color='#007bff', is_active=True):
        query = "INSERT INTO temperaments (name, description, color, is_active) VALUES (%s, %s, %s, %s)"
        return execute_update_query(query, (name, description, color, is_active))
    
    @staticmethod
    def update_temperament(temperament_id, name, description, color, is_active):
        query = "UPDATE temperaments SET name = %s, description = %s, color = %s, is_active = %s WHERE id = %s"
        return execute_update_query(query, (name, description, color, is_active, temperament_id))
    
    @staticmethod
    def delete_temperament(temperament_id):
        query = "DELETE FROM temperaments WHERE id = %s"
        return execute_update_query(query, (temperament_id,))
    
    @staticmethod
    def get_temperaments_count():
        query = "SELECT COUNT(*) as count FROM temperaments"
        result = execute_single_query(query)
        return result['count'] if result else 0