# Arquitectura y Componentes

La arquitectura se organiza alrededor de tres piezas: el Portal IEA, el bus de integración REST y Lirion.

## Arquitectura lógica

El portal Flutter consume endpoints REST de iDempiere. Las operaciones de negocio se ejecutan sobre modelos, ventanas y procesos configurados en Lirion.

<div drawio-diagram="98"><img src="https://docs.primware.net/uploads/images/drawio/2026-05/L9K1EGgE4o7dv25K-drawing-1-1778728689.png" alt=""/></div>

## Endpoints principales del BUS (API)

<table id="bkmrk-endpointusoad_userco" style="width: 100%; border-collapse: collapse; margin: 12px 0 20px 0;"><thead><tr><th style="border: 1px solid #d8dee9; padding: 12px; background: #eef2f7; text-align: left;">Endpoint</th><th style="border: 1px solid #d8dee9; padding: 12px; background: #eef2f7; text-align: left;">Uso</th></tr></thead><tbody><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`AD_User`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Contactos, usuarios, correo, teléfono y vínculo con tercero.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`C_BPartner`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Terceros: profesionales, empresas, titulares y asistentes.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`C_BP_Relation`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Relaciones entre tercero y tercero, por ejemplo Profesional Responsable, Representante Legal o Asistente.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`CDS_Professional`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Registro base del Profesional Responsable.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`CDS_Company`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Registro base de Empresa.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`CDS_CompanyDetails`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Relación de Empresa con profesional, titular, representante legal y otros roles.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`CDS_Assistant`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Registro base del Asistente.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`CDS_ProfessionalDetails`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Relación Asistente - Profesional - Empresa.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`R_Request`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Solicitudes/trámites del portal.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`C_Order`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Cotizaciones generadas desde solicitudes.</td></tr></tbody></table>

## Procesos invocados

- `setpassword`: asigna contraseña a un usuario de Lirion.
- `cds_authuser`: asigna rol según posición y marca el registro como público.
- `cotizacion-iea`: genera o procesa la cotización relacionada con una orden.