Data Layer medium complexity backend
0
Dependencies
0
Dependents
1
Entities
0
Integrations

Description

Data access layer responsible for persisting and querying expense claims and their associated approval audit records. It provides filtered reads for queue display and writes for recording decisions, ensuring all decision rows include actor ID and timestamp for audit compliance.

Feature: Expense Approval Queue

expense-approval-repository

Sources & reasoning

Line 70 states directly that claims above the threshold require manual attestation, implying a queue for those cases. Line 342 places reimbursement handling in Phase 2 of the roadmap, which maps to v1.0. The feature is the admin-side counterpart to the mobile expense registration flow and is required for HLF compliance.

Responsibilities

  • Query pending expense claims with support for status, date, and type filters
  • Persist approval decisions with administrator ID and decision timestamp
  • Store and retrieve receipt attachment references linked to claims
  • Update claim status atomically when a decision is recorded
  • Provide audit trail reads for resolved claims

Interfaces

findClaims(filters: QueueFilters): Promise<ExpenseClaim[]>
findClaimById(claimId: string): Promise<ExpenseClaim>
saveDecision(decision: ApprovalDecision): Promise<AuditRecord>
updateClaimStatus(claimId: string, status: ClaimStatus): Promise<void>
getAuditTrail(claimId: string): Promise<AuditRecord[]>

Related Data Entities (1)

Data entities managed by this component