Skip to main content

Services API

The services layer (shared-features/services) is the imperative API the hooks are built on. Use it directly for custom UIs, server-ish flows, or admin tooling. Functions return Promises and read/write the zaions_* Firestore collections.

Campaign services

FunctionPurpose
fetchCampaigns()All campaigns.
fetchActiveCampaigns()Active campaigns only.
getCampaignById(id)One campaign.
fetchProducts()All products.
getProductById(id)One product.
clearCampaignsCache(), clearProductsCache()Invalidate caches.

Analytics services

FunctionPurpose
recordImpression(...), trackImpression(...)Record an ad impression.
trackClick(...), trackClose(...)Record a click / close.
isEligibleForCampaign(...)Frequency-cap eligibility check.
getEligibleCampaignIds(...)Ids the user is currently eligible to see.
getCampaignHistory(...)Local impression history.

Broadcast services

FunctionPurpose
fetchBroadcasts(), fetchActiveBroadcasts()Read broadcasts.
fetchBroadcastsByVariant(variant)Read by variant.
getBroadcastById(id)One broadcast.
subscribeToBroadcasts(cb)Live listener.
recordBroadcastEvent(...)Generic analytics write.
trackBroadcastImpression / Click / Dismiss(...)Specific analytics writes.
isBroadcastDismissed(id), dismissBroadcast(id), clearDismissedBroadcasts()Local dismissal state.
clearBroadcastsCache()Invalidate cache.

Feature flag services

FunctionPurpose
fetchFeatureFlags()Read the flags document.
subscribeToFeatureFlags(cb)Live listener.
checkFeatureAvailability(id)Availability for one feature.
isFeatureEnabled(id), getFeatureVersion(id)Enabled state / version.
getSharedFeaturesStatus()Resolved status object.
initializeFeatureFlags()Seed the flags document (admin).
updateFeatureConfig(...), updateGlobalFlags(...)Admin writes.
clearFeatureFlagsCache()Invalidate cache.
COLLECTION_FEATURE_FLAGS, FEATURE_FLAGS_DOC_IDCollection/doc constants.

Common-feature read services

fetch* + subscribeTo* + clear*Cache per data type: fetchContactInfo, fetchDeveloperInfo, fetchAddressInfo, fetchSocialLinks, fetchPaymentOptions, fetchServices, fetchSkills, fetchTestimonials, fetchProjects, fetchProjectBySlug, plus clearAllCommonFeaturesCache().

Admin services (write side)

Admin only

The admin services write content and are intended for the aoneahsan.com admin panel — not normal consuming apps. Firestore security rules restrict writes to admins.

Notifications: adminNotificationService, createBroadcast, updateBroadcast, deleteBroadcast, getAllBroadcasts, getBroadcastsByStatus, publishBroadcast, scheduleBroadcast, pauseBroadcast, endBroadcast, createTemplate, updateTemplate, deleteTemplate, getAllTemplates, getTemplateById, getFirestoreTemplateByEventType, getBroadcastAnalytics, getOverallAnalytics.

Common features: saveContactInfo, updateContactInfo, saveDeveloperInfo, updateDeveloperInfo, saveAddressInfo, updateAddressInfo, and CRUD trios for social links, payment options, services, skills, testimonials, and projects (create*/update*/delete*). Each has a matching *Input type (ContactInfoInput, SocialLinkInput, …).

See the types reference for the data shapes these functions accept and return.