import matplotlib.pyplot as plt
import base64
from io import BytesIO
from datetime import datetime

class GenericImageGenerator:
    @staticmethod
    def generate_base64_image(timestamps, values,title):
        # Si los timestamps ya son objetos datetime, omite la conversión
        if isinstance(timestamps[0], str):
            timestamps = [datetime.strptime(ts, '%Y-%m-%dT%H:%M:%SZ') for ts in timestamps]

        # Crea una figura y una gráfica usando los datos
        plt.figure(figsize=(10, 5))
        plt.plot(timestamps, values, marker='o')
        plt.xlabel("Time")
        plt.ylabel("Target Response Time (s)")
        plt.title(title)
        plt.grid()

        # Guarda la imagen en un buffer de Bytes
        buffer = BytesIO()
        plt.savefig(buffer, format="png")
        buffer.seek(0)

        # Codificar la imagen en base64
        image_base64 = base64.b64encode(buffer.read()).decode("utf-8")
        
        # Cierra la figura
        plt.close()
        buffer.close()
        
        return image_base64