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.

Feature: Contact List & Search

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