feat: Add manual customer linking endpoint (v1.3.106)

This commit is contained in:
Christian 2026-01-05 14:15:04 +01:00
parent fa55e6b98e
commit 9336edd5cc

View File

@ -128,6 +128,54 @@ async def test_vtiger_connection():
raise HTTPException(status_code=500, detail=str(e))
@router.post("/sync/manual-link-customer", tags=["Sync"])
async def manual_link_customer(tmodule_customer_id: int, hub_customer_id: int):
"""
🔗 Manually link en tmodule_customer til en Hub customer.
Brug dette når auto-linking fejler pga. navn-forskelle eller andre edge cases.
"""
try:
logger.info(f"🔗 Manual linking tmodule {tmodule_customer_id} → Hub {hub_customer_id}")
# Get Hub customer's economic number
hub_query = "SELECT economic_customer_number FROM customers WHERE id = %s"
hub_result = execute_query(hub_query, (hub_customer_id,))
if not hub_result:
raise HTTPException(status_code=404, detail=f"Hub customer {hub_customer_id} not found")
economic_number = hub_result[0]['economic_customer_number']
# Update tmodule_customer
update_query = """
UPDATE tmodule_customers
SET hub_customer_id = %s,
economic_customer_number = %s,
updated_at = NOW()
WHERE id = %s
RETURNING id, name, hub_customer_id, economic_customer_number
"""
result = execute_query(update_query, (hub_customer_id, economic_number, tmodule_customer_id))
if not result:
raise HTTPException(status_code=404, detail=f"tmodule_customer {tmodule_customer_id} not found")
logger.info(f"✅ Manual link complete: {result[0]}")
return {
"success": True,
"linked_customer": result[0]
}
except HTTPException:
raise
except Exception as e:
logger.error(f"❌ Manual linking failed: {e}")
raise HTTPException(status_code=500, detail=str(e))
@router.post("/sync/relink-customers", tags=["Sync"])
async def relink_customers():
"""