feat(frontend): add Odoo node components to FlowBuilder
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -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 />}
|
||||||
|
|||||||
Reference in New Issue
Block a user