f44d57629f
- GET /api/eterra/counties — distinct county list from GisUat - POST /api/eterra/sync-county — background sync all UATs in a county (TERENURI + CLADIRI + INTRAVILAN), magic mode for enriched UATs, concurrency guard, creates notification on completion - In-app notification service (KeyValueStore, CRUD, unread count) - GET/PATCH /api/notifications/app — list and mark-read endpoints - NotificationBell component in header with popover + polling - Monitor page: county select dropdown + SyncTestButton with customBody Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
27 lines
574 B
TypeScript
27 lines
574 B
TypeScript
export type {
|
|
NotificationType,
|
|
NotificationTypeInfo,
|
|
NotificationPreference,
|
|
DigestSection,
|
|
DigestItem,
|
|
DigestResult,
|
|
EmailPayload,
|
|
} from "./types";
|
|
export { NOTIFICATION_TYPES, defaultPreference } from "./types";
|
|
export { sendEmail } from "./email-service";
|
|
export {
|
|
getPreference,
|
|
savePreference,
|
|
getAllPreferences,
|
|
runDigest,
|
|
} from "./notification-service";
|
|
export {
|
|
createAppNotification,
|
|
getAppNotifications,
|
|
getUnreadCount,
|
|
markAsRead,
|
|
markAllAsRead,
|
|
type AppNotification,
|
|
type AppNotificationType,
|
|
} from "./app-notifications";
|