Approval Store
Component Detail
Data Layer
medium complexity
backend
0
Dependencies
2
Dependents
4
Entities
0
Integrations
Description
Data access layer managing activity approval records and review queue queries. Handles status transitions on the activities table, creates activity_approvals records, and writes structured audit log entries. Implements optimistic locking via version columns to prevent concurrent approval conflicts.
approval-store
Responsibilities
- Query pending activities scoped by local association
- Persist approval and rejection decisions with reviewer metadata
- Manage activity status transitions (pending_review → approved/rejected)
- Write audit log entries for all approval workflow actions
- Enforce optimistic locking via row versioning
Interfaces
findPendingActivities(associationId: string, filters: ReviewFilters, pagination: Pagination): Promise<PaginatedResult<Activity>>
findActivityById(activityId: string): Promise<ActivityWithVersion>
createApprovalRecord(approval: ActivityApproval): Promise<ActivityApproval>
updateActivityStatus(activityId: string, status: string, version: number): Promise<boolean>
createAuditEntry(entry: AuditLogEntry): Promise<void>
bulkUpdateStatus(activityIds: string[], status: string, reviewerId: string): Promise<BulkUpdateResult>
getApprovalHistory(activityId: string): Promise<ApprovalRecord[]>
Relationships
Dependents (2)
Components that depend on this component
Related Data Entities (4)
Data entities managed by this component