Referrals Repository
Component Detail
Data Layer
medium complexity
backend
0
Dependencies
2
Dependents
1
Entities
0
Integrations
Description
Data access layer for the referrals table. Provides CRUD operations and aggregation queries used by the tracking service and coordinator reporting views, with GDPR-compliant nullification support.
referrals-repository
Responsibilities
- Read and write referral records including status and referrer/referred user IDs
- Aggregate referral counts by status for a given user or local association
- Support paginated queries with status filtering for coordinator views
- Nullify referrer_id and referred_user_id on GDPR deletion while retaining status-count data
Interfaces
findByReferrer(referrerId: String, filter: ReferralFilter, page: int): Promise<PagedResult<Referral>>
getSummaryByReferrer(referrerId: String): Promise<ReferralSummary>
getSummaryByAssociation(associationId: String): Promise<CoordinatorReferralStats>
updateStatus(referralId: String, status: ReferralStatus): Promise<void>
anonymise(referralId: String): Promise<void>
create(referral: CreateReferralDto): Promise<Referral>
Relationships
Dependents (2)
Components that depend on this component