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.

Feature: Recruitment Tracking

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

Related Data Entities (1)

Data entities managed by this component