Expense Service
Component Detail
Service Layer
high complexity
mobile
1
Dependencies
1
Dependents
9
Entities
0
Integrations
Description
Business logic service that manages expense creation, validation, and submission workflows. Fetches expense type definitions and mutual-exclusivity rules from the API, applies threshold-based auto-approval logic locally for optimistic UI, and submits expenses to the backend approval state machine (submitted → auto-approved / pending-review → approved / rejected).
expense-service
Responsibilities
- Fetch and cache expense type definitions with mutual-exclusivity rules
- Validate expense data against business rules before submission
- Submit expense claims to the REST API for approval routing
- Track expense submission status through the approval state machine
- Calculate total reimbursement amounts from individual line items
Interfaces
fetchExpenseTypes()
getExpenseTypeRules(typeId)
validateExpense(expenseData)
checkMutualExclusivity(selectedTypes)
submitExpense(expense)
getExpenseStatus(expenseId)
getExpensesForActivity(activityId)
getMyExpenses(filters)
calculateTotal(lineItems)
isAutoApprovable(expense)
cancelExpense(expenseId)
Relationships
Related Data Entities (9)
Data entities managed by this component