Expense Repository
Component Detail
Data Layer
medium complexity
mobilebackend
0
Dependencies
0
Dependents
3
Entities
0
Integrations
Description
Repository layer responsible for all CRUD operations on the `travel_expense_reports` and `expense_items` Supabase tables with RLS policies scoped to the submitting user. Handles creating new expense reports, appending expense items, fetching report history, and updating approval status.
expense-repository
Responsibilities
- Create new travel expense reports in Supabase with correct user scoping via RLS
- Insert individual expense items linked to a parent expense report
- Fetch expense report history for the authenticated user
- Handle optimistic updates and error rollback for offline-tolerant UX
Interfaces
createExpenseReport(report)
addExpenseItem(reportId, item)
getExpenseReports(userId)
getExpenseReportById(reportId)
getExpenseItems(reportId)
updateExpenseReport(reportId, updates)
deleteExpenseReport(reportId)
getReportsByStatus(userId, status)
Related Data Entities (3)
Data entities managed by this component