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.

Feature: Activity Review & Approval

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