import os

import firebase_admin
from firebase_admin import credentials, db
from ..config import settings


def initialize_firebase():
    # cred = credentials.Certificate(os.path.join('/app/config', 'firebase_config.json'))
    cred = credentials.Certificate('../../config/firebase_config.json')

    firebase_admin.initialize_app(cred, {
        'storageBucket': settings.FIREBASE_STORAGE_BUCKET,
        'databaseURL': settings.FIREBASE_DATABASE_URL
    })


async def update_db_image(filename: str, public_url: str, is_input: bool = True):
    try:
        folder = 'input' if is_input else 'output'

        ref = db.reference(folder)
        ref.push().set({
            'fileName': filename,
            'status': 'uploaded',
            'url': public_url
        })
    except Exception as e:
        return {'filename': filename, 'status': 'error', 'details': str(e)}
