Rule Engine / Match Engine
Il Rule Engine è il motore che riconcilia i movimenti bancari con la gestione immobiliare.
L'obiettivo è trasformare movimenti grezzi importati dalla banca in informazioni contabili utilizzabili:
- movimenti ignorati perché non legati alla gestione affitti;
- incassi affitto collegati a rate attese;
- spese attese collegate a movimenti bancari;
- spese classificate;
- movimenti suddivisi in più quote contabili.
Oggetti principali
| Oggetto | Ruolo |
|---|---|
bank_transactions | Movimenti bancari grezzi da riconciliare. |
reconciliation_rules | Regole di match e azione. |
reconciliation_runs | Esecuzioni del motore. |
reconciliation_decisions | Audit delle decisioni prese. |
bank_transaction_splits | Suddivisione contabile del movimento. |
expenses | Spese effettive create o aggiornate. |
rent_payment_matches | Collegamento tra movimento e rata affitto. |
expense_payment_matches | Collegamento tra movimento e spesa attesa. |
Principio di sicurezza
Il reconciliation-service non accede direttamente al database.
Tutte le letture e scritture passano da data-service, che applica il filtro sull'utente autenticato usando lo user id estratto dal token.
Questo significa che ogni utente vede e riconcilia solo:
- le proprie regole;
- i movimenti dei propri bank account;
- proprietà, contratti, rate e spese attese a cui ha accesso.
Tipi di regola
| Tipo | Effetto |
|---|---|
IGNORE | Marca il movimento come riconciliato da ignorare. |
RENT_MATCH | Collega il movimento a una rata affitto e crea lo split. |
EXPECTED_EXPENSE_MATCH | Collega il movimento a una spesa attesa e crea/aggiorna la spesa effettiva. |
CLASSIFY | Classifica il movimento e crea/aggiorna una spesa effettiva. |
SPLIT | Divide il movimento in più righe contabili. |