# Copyright (c) 2025 Patrick Motsch # Trustee node definitions - map to methodTrustee actions. # Pipeline: extractFromFiles -> processDocuments -> syncToAccounting. TRUSTEE_NODES = [ { "id": "trustee.refreshAccountingData", "category": "trustee", "label": {"en": "Refresh Accounting Data", "de": "Buchhaltungsdaten aktualisieren", "fr": "Actualiser données comptables"}, "description": { "en": "Import/refresh accounting data from external system (e.g. Abacus). Skips import if data is fresh unless forceRefresh is set.", "de": "Buchhaltungsdaten aus externem System importieren/aktualisieren (z.B. Abacus). Überspringt Import wenn Daten frisch sind, ausser forceRefresh ist gesetzt.", "fr": "Importer/actualiser les données comptables depuis le système externe (ex. Abacus).", }, "parameters": [ {"name": "featureInstanceId", "type": "string", "required": True, "description": {"en": "Trustee feature instance ID", "de": "Trustee Feature-Instanz-ID", "fr": "ID instance Trustee"}}, {"name": "forceRefresh", "type": "boolean", "required": False, "description": {"en": "Force re-import even if data is fresh (default: false)", "de": "Import erzwingen auch wenn Daten frisch sind", "fr": "Forcer la réimportation"}, "default": False}, {"name": "dateFrom", "type": "string", "required": False, "description": {"en": "Start date filter (YYYY-MM-DD)", "de": "Startdatum-Filter (JJJJ-MM-TT)", "fr": "Date début (AAAA-MM-JJ)"}, "default": ""}, {"name": "dateTo", "type": "string", "required": False, "description": {"en": "End date filter (YYYY-MM-DD)", "de": "Enddatum-Filter (JJJJ-MM-TT)", "fr": "Date fin (AAAA-MM-JJ)"}, "default": ""}, ], "inputs": 1, "outputs": 1, "meta": {"icon": "mdi-database-refresh", "color": "#4CAF50"}, "_method": "trustee", "_action": "refreshAccountingData", "_paramMap": {"featureInstanceId": "featureInstanceId", "forceRefresh": "forceRefresh", "dateFrom": "dateFrom", "dateTo": "dateTo"}, }, { "id": "trustee.extractFromFiles", "category": "trustee", "label": {"en": "Extract Documents", "de": "Dokumente extrahieren", "fr": "Extraire documents"}, "description": { "en": "Extract document type and data from PDF/JPG via AI (from fileIds or SharePoint folder)", "de": "Dokumenttyp und Daten aus PDF/JPG per AI extrahieren (aus Dateien oder SharePoint-Ordner)", "fr": "Extraire type et données de PDF/JPG par IA", }, "parameters": [ {"name": "connectionId", "type": "string", "required": False, "description": {"en": "SharePoint connection (if reading from SharePoint)", "de": "SharePoint-Verbindung (falls aus SharePoint)", "fr": "Connexion SharePoint"}, "default": ""}, {"name": "sharepointFolder", "type": "string", "required": False, "description": {"en": "SharePoint folder path (e.g. /sites/MySite/Documents/Expenses)", "de": "SharePoint-Ordnerpfad", "fr": "Chemin dossier SharePoint"}, "default": ""}, {"name": "featureInstanceId", "type": "string", "required": True, "description": {"en": "Trustee feature instance ID", "de": "Trustee Feature-Instanz-ID", "fr": "ID instance Trustee"}}, {"name": "prompt", "type": "string", "required": False, "description": {"en": "AI prompt for extraction (optional)", "de": "AI-Prompt für Extraktion (optional)", "fr": "Prompt IA pour extraction"}, "default": ""}, ], "inputs": 1, "outputs": 1, "meta": {"icon": "mdi-file-document-scan", "color": "#4CAF50"}, "_method": "trustee", "_action": "extractFromFiles", "_paramMap": {"connectionId": "connectionReference", "sharepointFolder": "sharepointFolder", "featureInstanceId": "featureInstanceId", "prompt": "prompt"}, }, { "id": "trustee.processDocuments", "category": "trustee", "label": {"en": "Process Documents", "de": "Dokumente verarbeiten", "fr": "Traiter documents"}, "description": { "en": "Create TrusteeDocument + TrusteePosition from extraction result", "de": "TrusteeDocument + TrusteePosition aus Extraktionsergebnis erstellen", "fr": "Créer TrusteeDocument + TrusteePosition à partir du résultat", }, "parameters": [ {"name": "documentList", "type": "string", "required": True, "description": {"en": "Reference to extractFromFiles result", "de": "Referenz auf extractFromFiles-Ergebnis", "fr": "Référence au résultat extractFromFiles"}}, {"name": "featureInstanceId", "type": "string", "required": True, "description": {"en": "Trustee feature instance ID", "de": "Trustee Feature-Instanz-ID", "fr": "ID instance Trustee"}}, ], "inputs": 1, "outputs": 1, "meta": {"icon": "mdi-file-document-check", "color": "#4CAF50"}, "_method": "trustee", "_action": "processDocuments", "_paramMap": {"documentList": "documentList", "featureInstanceId": "featureInstanceId"}, }, { "id": "trustee.syncToAccounting", "category": "trustee", "label": {"en": "Sync to Accounting", "de": "In Buchhaltung synchronisieren", "fr": "Synchroniser comptabilité"}, "description": { "en": "Push trustee positions to accounting system", "de": "Trustee-Positionen in Buchhaltungssystem übertragen", "fr": "Transférer les positions vers la comptabilité", }, "parameters": [ {"name": "documentList", "type": "string", "required": True, "description": {"en": "Reference to processDocuments result", "de": "Referenz auf processDocuments-Ergebnis", "fr": "Référence au résultat processDocuments"}}, {"name": "featureInstanceId", "type": "string", "required": True, "description": {"en": "Trustee feature instance ID", "de": "Trustee Feature-Instanz-ID", "fr": "ID instance Trustee"}}, ], "inputs": 1, "outputs": 1, "meta": {"icon": "mdi-calculator", "color": "#4CAF50"}, "_method": "trustee", "_action": "syncToAccounting", "_paramMap": {"documentList": "documentList", "featureInstanceId": "featureInstanceId"}, }, ]