Activity Deduplication Repository
Component Detail
Data Layer
medium complexity
backend
0
Dependencies
0
Dependents
6
Entities
0
Integrations
Description
Data access layer responsible for executing the similarity queries used by the Duplicate Detection Service. Queries the activities table using indexed columns (user_id, activity_date, activity_type_id) within a configurable time window and returns candidate conflicting records. Optimized for low-latency lookups to avoid blocking the registration flow.
activity-deduplication-repository
Responsibilities
- Query activities by user_id, activity_date, and activity_type_id within the configured time window
- Return full activity records for conflict comparison including duration and contact_id
- Support batch lookup for bulk registration duplicate checks
- Expose query configuration for time window and fuzzy match tolerances
Interfaces
findPotentialDuplicates(userId, activityDate, activityTypeId, windowHours): Activity[]
findPotentialDuplicatesBatch(candidates[]): Map<string, Activity[]>
getActivityByIdForComparison(activityId): Activity
countDuplicatesInPeriod(userId, startDate, endDate): number
Related Data Entities (6)
Data entities managed by this component