#!/usr/bin/env python3
"""
Script de validación para verificar el estado del logo y nombre de la empresa
"""
import odoo
import base64

def verify_company_logo_status():
    db_name = 'lims_demo'
    registry = odoo.registry(db_name)
    
    with registry.cursor() as cr:
        env = odoo.api.Environment(cr, odoo.SUPERUSER_ID, {})
        
        print("=" * 60)
        print("VERIFICACIÓN DE LOGO Y NOMBRE DE EMPRESA")
        print("=" * 60)
        
        # Buscar todas las empresas
        companies = env['res.company'].search([])
        
        for company in companies:
            print(f"\nEmpresa ID: {company.id}")
            print(f"Nombre actual: '{company.name}'")
            print(f"Nombre esperado: 'Laboratorio Clínico LIMS'")
            print(f"¿Nombre correcto?: {'✓ SÍ' if company.name == 'Laboratorio Clínico LIMS' else '✗ NO'}")
            
            # Verificar logo
            if company.logo:
                logo_size = len(base64.b64decode(company.logo))
                print(f"Logo presente: ✓ SÍ (tamaño: {logo_size:,} bytes)")
                
                # Verificar si es el logo correcto comparando tamaño
                expected_size = 1428899  # Tamaño del lab_logo.png
                if abs(logo_size - expected_size) < 1000:  # Margen de error pequeño
                    print(f"¿Logo correcto?: ✓ PROBABLEMENTE SÍ (tamaño coincide)")
                else:
                    print(f"¿Logo correcto?: ✗ PROBABLEMENTE NO (tamaño esperado: {expected_size:,} bytes)")
            else:
                print("Logo presente: ✗ NO")
            
            # Verificar partner asociado
            if company.partner_id:
                print(f"\nPartner asociado ID: {company.partner_id.id}")
                print(f"Nombre del partner: '{company.partner_id.name}'")
                if company.partner_id.image_1920:
                    partner_img_size = len(base64.b64decode(company.partner_id.image_1920))
                    print(f"Imagen del partner: ✓ SÍ (tamaño: {partner_img_size:,} bytes)")
                else:
                    print("Imagen del partner: ✗ NO")
            
            print("-" * 60)
        
        # Verificar configuración del sistema
        print("\nCONFIGURACIÓN DEL SISTEMA:")
        print("-" * 30)
        
        # Verificar parámetros del sistema
        param_obj = env['ir.config_parameter'].sudo()
        web_base_url = param_obj.get_param('web.base.url')
        print(f"URL base: {web_base_url}")
        
        # Verificar usuarios admin
        admin_users = env['res.users'].search([('id', '=', 2)])  # Usuario admin
        for user in admin_users:
            print(f"\nUsuario admin: {user.login}")
            print(f"Empresa del usuario: {user.company_id.name}")
            print(f"Empresas permitidas: {', '.join([c.name for c in user.company_ids])}")
        
        print("\n" + "=" * 60)
        
        # Resumen final
        company_ok = any(c.name == 'Laboratorio Clínico LIMS' for c in companies)
        logo_ok = any(c.logo for c in companies)
        
        print("\nRESUMEN:")
        print(f"Estado del nombre: {'✓ CORRECTO' if company_ok else '✗ INCORRECTO'}")
        print(f"Estado del logo: {'✓ PRESENTE' if logo_ok else '✗ AUSENTE'}")
        
        if not company_ok or not logo_ok:
            print("\n⚠️  ATENCIÓN: El logo o nombre no están configurados correctamente.")
            print("   Es posible que los cambios no se estén guardando en la base de datos.")
        else:
            print("\n✓ Todo parece estar configurado correctamente.")

if __name__ == '__main__':
    verify_company_logo_status()