Expense Rule Evaluation Engine
Component Detail
Service Layer
medium complexity
shared
0
Dependencies
0
Dependents
2
Entities
0
Integrations
Description
Stateless rule evaluation engine that processes the JSON rules field on expense type records to determine validity of expense submissions. Evaluates mutual-exclusivity groups, required-documentation flags, and per-type amount thresholds. Used both on the client for real-time form validation and on the backend for authoritative submission validation.
expense-rule-evaluation-engine
Responsibilities
- Parse and evaluate JSON-encoded expense type rules
- Check mutual-exclusivity constraints across selected expense types
- Verify documentation requirements are met for the selected type
- Validate amounts against per-type thresholds
- Return structured validation results with specific failure reasons
Interfaces
evaluateRules(ExpenseTypeRules rules, ExpenseData data): RuleEvaluationResult
checkMutualExclusivity(List<String> selectedTypes, List<ExclusivityGroup> groups): bool
checkDocumentationRequirements(String typeId, List<String> attachedDocs): DocumentCheckResult
checkAmountThreshold(String typeId, double amount): ThresholdCheckResult
getAllViolations(ExpenseSubmission submission, List<ExpenseTypeRules> rules): List<RuleViolation>
Related Data Entities (2)
Data entities managed by this component