import base64

from minio import Minio

from app.core.config import MINIO_URL, MINIO_ACCESS, MINIO_SECRET, MINIO_SECURE

minio_client = Minio(MINIO_URL, access_key=MINIO_ACCESS, secret_key=MINIO_SECRET, secure=MINIO_SECURE)


def minio_url_to_base64(minio_url: str) -> str:
    bucket_name, object_name = minio_url.split("/", 1)

    try:
        response = minio_client.get_object(bucket_name, object_name)
        image_data = response.read()
        return base64.b64encode(image_data).decode('utf-8')
    except Exception as e:
        raise RuntimeError(f"Failed to get object: {e}")
    finally:
        if 'response' in locals():
            response.close()