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.

Feature: Expense Types & Requirements

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