Contact Search Service
Component Detail
Service Layer
medium complexity
mobile
0
Dependencies
0
Dependents
2
Entities
0
Integrations
Description
Business logic layer that executes debounced, role-scoped contact searches against Supabase. Applies organisation membership filtering and enforces role-based result scoping. Returns paginated results and manages local cache invalidation via Riverpod.
contact-search-service
Responsibilities
- Execute debounced search queries scoped to the authenticated user's organisation and role
- Apply filter parameters (status, area, custom fields) before querying Supabase
- Manage paginated result loading and cache refresh for low-connectivity scenarios
Interfaces
searchContacts(query: String, filters: ContactFilters) Future<List<Contact>>
searchPeerMentors(query: String, filters: ContactFilters) Future<List<PeerMentor>>
getPagedContacts(page: int, pageSize: int) Future<PagedResult<Contact>>
invalidateCache()
preloadForOffline()
Related Data Entities (2)
Data entities managed by this component