feat(frontend): add Odoo node components to FlowBuilder

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Claude AI
2026-01-29 22:30:03 +00:00
parent d1d1aa58e1
commit 2820ffc3cf

View File

@@ -154,6 +154,54 @@ const AISentimentNode = () => (
</div> </div>
); );
const OdooSearchPartnerNode = () => (
<div style={{ padding: 10, border: '2px solid #714B67', borderRadius: 8, background: '#f9f0ff' }}>
<strong>🔍 Buscar Cliente Odoo</strong>
</div>
);
const OdooCreatePartnerNode = () => (
<div style={{ padding: 10, border: '2px solid #714B67', borderRadius: 8, background: '#f9f0ff' }}>
<strong> Crear Cliente Odoo</strong>
</div>
);
const OdooGetBalanceNode = () => (
<div style={{ padding: 10, border: '2px solid #714B67', borderRadius: 8, background: '#f9f0ff' }}>
<strong>💰 Saldo Cliente</strong>
</div>
);
const OdooSearchOrdersNode = () => (
<div style={{ padding: 10, border: '2px solid #714B67', borderRadius: 8, background: '#f9f0ff' }}>
<strong>📦 Buscar Pedidos</strong>
</div>
);
const OdooGetOrderNode = () => (
<div style={{ padding: 10, border: '2px solid #714B67', borderRadius: 8, background: '#f9f0ff' }}>
<strong>📋 Detalle Pedido</strong>
</div>
);
const OdooSearchProductsNode = () => (
<div style={{ padding: 10, border: '2px solid #714B67', borderRadius: 8, background: '#f9f0ff' }}>
<strong>🏷 Buscar Productos</strong>
</div>
);
const OdooCheckStockNode = () => (
<div style={{ padding: 10, border: '2px solid #714B67', borderRadius: 8, background: '#f9f0ff' }}>
<strong>📊 Verificar Stock</strong>
</div>
);
const OdooCreateLeadNode = () => (
<div style={{ padding: 10, border: '2px solid #714B67', borderRadius: 8, background: '#f9f0ff' }}>
<strong>🎯 Crear Lead CRM</strong>
</div>
);
const nodeTypes: NodeTypes = { const nodeTypes: NodeTypes = {
trigger: TriggerNode, trigger: TriggerNode,
message: MessageNode, message: MessageNode,
@@ -176,6 +224,14 @@ const nodeTypes: NodeTypes = {
http_request: HttpRequestNode, http_request: HttpRequestNode,
ai_response: AIResponseNode, ai_response: AIResponseNode,
ai_sentiment: AISentimentNode, ai_sentiment: AISentimentNode,
odoo_search_partner: OdooSearchPartnerNode,
odoo_create_partner: OdooCreatePartnerNode,
odoo_get_balance: OdooGetBalanceNode,
odoo_search_orders: OdooSearchOrdersNode,
odoo_get_order: OdooGetOrderNode,
odoo_search_products: OdooSearchProductsNode,
odoo_check_stock: OdooCheckStockNode,
odoo_create_lead: OdooCreateLeadNode,
}; };
interface Flow { interface Flow {
@@ -306,6 +362,22 @@ export default function FlowBuilder() {
> >
<Button>+ Avanzados</Button> <Button>+ Avanzados</Button>
</Dropdown> </Dropdown>
<Dropdown
menu={{
items: [
{ key: 'odoo_search_partner', label: '🔍 Buscar Cliente', onClick: () => addNode('odoo_search_partner') },
{ key: 'odoo_create_partner', label: ' Crear Cliente', onClick: () => addNode('odoo_create_partner') },
{ key: 'odoo_get_balance', label: '💰 Saldo Cliente', onClick: () => addNode('odoo_get_balance') },
{ key: 'odoo_search_orders', label: '📦 Buscar Pedidos', onClick: () => addNode('odoo_search_orders') },
{ key: 'odoo_get_order', label: '📋 Detalle Pedido', onClick: () => addNode('odoo_get_order') },
{ key: 'odoo_search_products', label: '🏷️ Buscar Productos', onClick: () => addNode('odoo_search_products') },
{ key: 'odoo_check_stock', label: '📊 Verificar Stock', onClick: () => addNode('odoo_check_stock') },
{ key: 'odoo_create_lead', label: '🎯 Crear Lead CRM', onClick: () => addNode('odoo_create_lead') },
],
}}
>
<Button style={{ background: '#714B67', color: 'white', borderColor: '#714B67' }}>+ Odoo</Button>
</Dropdown>
<Button <Button
type="primary" type="primary"
icon={<SaveOutlined />} icon={<SaveOutlined />}