Expense Rule Validation Engine
Component Detail
Service Layer
medium complexity
backend
0
Dependencies
1
Dependents
2
Entities
0
Integrations
Description
Stateless rule-evaluation service that applies the expense type configuration rules (mutual-exclusivity groups, documentation requirements, amount thresholds) to a given expense or set of expense lines. Invoked server-side at submission time to prevent race conditions where rules have changed since the mobile client last cached the catalogue. Returns structured validation errors for display in the app or admin portal approval queue.
expense-rule-validation-engine
Responsibilities
- Evaluate mutual-exclusivity constraints across selected expense types
- Check whether required documentation has been attached for each type
- Validate per-type amount thresholds and flag violations
- Return structured, localised validation error messages
- Support both single-expense and batch validation modes
Interfaces
validateSingleExpense(expense: ExpenseSubmission, catalogue: ExpenseTypeCatalogue): ValidationResult
validateBatch(expenses: ExpenseSubmission[], catalogue: ExpenseTypeCatalogue): BatchValidationResult
checkExclusivityViolations(selectedTypeIds: string[], rules: ExclusivityGroup[]): string[]
checkDocumentationRequirements(typeId: string, attachments: Attachment[]): boolean
checkThresholdViolation(typeId: string, amountNok: number): ThresholdViolation | null
buildValidationReport(results: ValidationResult[]): ValidationReport
Relationships
Related Data Entities (2)
Data entities managed by this component