import base64
import os
import sys

try:
    # El script se ejecuta dentro del shell de Odoo
    # env ya está disponible en el contexto
    
    print("Iniciando actualización de logo...")
    
    # Buscar la empresa principal
    company = env['res.company'].search([('id', '=', 1)], limit=1)
    if not company:
        print("ERROR: No se encontró la empresa principal")
        sys.exit(1)
    
    print(f"Empresa encontrada: {company.name}")
    
    # Leer el archivo de logo
    logo_path = '/mnt/extra-addons/lims_management/static/img/lab_logo.png'
    if not os.path.exists(logo_path):
        print(f"ERROR: No se encontró el archivo de logo en: {logo_path}")
        sys.exit(1)
    
    print(f"Archivo de logo encontrado en: {logo_path}")
    
    # Leer y codificar la imagen
    with open(logo_path, 'rb') as logo_file:
        logo_data = logo_file.read()
        logo_base64 = base64.b64encode(logo_data).decode('utf-8')
    
    print(f"Logo leído correctamente, tamaño: {len(logo_data)} bytes")
    
    # Actualizar el logo y nombre de la empresa
    company.write({
        'logo': logo_base64,
        'name': 'Laboratorio Clínico LIMS'
    })
    
    print(f"Logo actualizado exitosamente para la empresa: {company.name}")
    
    # También actualizar el partner asociado
    if company.partner_id:
        company.partner_id.write({
            'image_1920': logo_base64
        })
        print(f"Logo del partner también actualizado (ID: {company.partner_id.id})")
    
    # El commit se hace automáticamente al salir del shell
    print("\nLogo de la empresa actualizado exitosamente en la base de datos.")
    
except Exception as e:
    print(f"ERROR al actualizar el logo: {str(e)}")
    import traceback
    traceback.print_exc()
    sys.exit(1)