{"version":3,"sources":["../src/notification/notification.enums.ts","../src/notification/notification.schemas.ts"],"names":["NotificationPriority","NotificationChannel","NotificationType","NotificationProfileIdSchema","z","NotificationResponseSchema","EXPO_TOKEN_REGEX","RegisterPushDeviceRequestSchema","RegisterPushDeviceResponseSchema","ListNotificationsQuerySchema","PaginationParamsSchema","value","NotificationInboxScopeQuerySchema","ListNotificationsResponseSchema","PaginationResponseSchema","NotificationsUnreadCountResponseSchema","MarkNotificationReadResponseSchema","MarkAllNotificationsReadResponseSchema","ClearAllNotificationsResponseSchema","NotificationSocketEvents","NotificationConnectedPayloadSchema","NotificationCreatedPayloadSchema","NotificationUpdatedPayloadSchema","NotificationReadPayloadSchema","NotificationReadAllPayloadSchema","NotificationClearedPayloadSchema","NotificationUnreadCountsPayloadSchema","HOST_CATEGORY","NotificationCategory","VENDOR_CATEGORY","HostNotificationPreferenceItemSchema","VendorNotificationPreferenceItemSchema","HostNotificationPreferencesResponseSchema","VendorNotificationPreferencesResponseSchema","UpdateHostNotificationPreferencesRequestSchema","UpdateVendorNotificationPreferencesRequestSchema"],"mappings":"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","file":"chunk-TI5N5FOW.mjs","sourcesContent":["export const NotificationPriority = {\n  LOW: 'LOW',\n  NORMAL: 'NORMAL',\n  HIGH: 'HIGH',\n  URGENT: 'URGENT',\n} as const;\nexport type NotificationPriority = (typeof NotificationPriority)[keyof typeof NotificationPriority];\n\nexport const NotificationChannel = {\n  IN_APP: 'IN_APP',\n  EMAIL: 'EMAIL',\n  SMS: 'SMS',\n  PUSH: 'PUSH',\n} as const;\nexport type NotificationChannel = (typeof NotificationChannel)[keyof typeof NotificationChannel];\n\nexport const NotificationType = {\n  BOOKING_REQUESTED: 'BOOKING_REQUESTED',\n  BOOKING_ACCEPTED: 'BOOKING_ACCEPTED',\n  BOOKING_REJECTED: 'BOOKING_REJECTED',\n  BOOKING_CONFIRMED: 'BOOKING_CONFIRMED',\n  BOOKING_CANCELLED: 'BOOKING_CANCELLED',\n  BOOKING_COMPLETED: 'BOOKING_COMPLETED',\n  PAYMENT_FAILED: 'PAYMENT_FAILED',\n  PAYMENT_RECEIVED: 'PAYMENT_RECEIVED',\n  PAYOUT_PROCESSED: 'PAYOUT_PROCESSED',\n  EVENT_GOING_LIVE: 'EVENT_GOING_LIVE',\n  EVENT_CANCELLED: 'EVENT_CANCELLED',\n  ENTITLEMENT_WITHDRAWN: 'ENTITLEMENT_WITHDRAWN',\n  DISPUTE_OPENED: 'DISPUTE_OPENED',\n  DISPUTE_RESOLVED: 'DISPUTE_RESOLVED',\n  KYC_APPROVED: 'KYC_APPROVED',\n  KYC_REJECTED: 'KYC_REJECTED',\n  VENDOR_VERIFIED: 'VENDOR_VERIFIED',\n  JOB_LISTING_NEW_INTEREST: 'JOB_LISTING_NEW_INTEREST',\n  JOB_LISTING_IOI_REJECTED: 'JOB_LISTING_IOI_REJECTED',\n  JOB_LISTING_IOI_SHORTLISTED: 'JOB_LISTING_IOI_SHORTLISTED',\n  HIRING_THREAD_NEW_MESSAGE: 'HIRING_THREAD_NEW_MESSAGE',\n  CREW_ASSIGNMENT_INVITED: 'CREW_ASSIGNMENT_INVITED',\n  CREW_ASSIGNMENT_REJECTED: 'CREW_ASSIGNMENT_REJECTED',\n  EVENT_RESCHEDULED: 'EVENT_RESCHEDULED',\n  EVENT_CANCELLED_NO_SHOW: 'EVENT_CANCELLED_NO_SHOW',\n  EVENT_FAILED_OUTAGE: 'EVENT_FAILED_OUTAGE',\n  EVENT_RENAMED: 'EVENT_RENAMED',\n  EVENT_DETAILS_UPDATED: 'EVENT_DETAILS_UPDATED',\n  STREAM_DISCONNECTED: 'STREAM_DISCONNECTED',\n  EVENT_ENDING_SOON: 'EVENT_ENDING_SOON',\n  EVENT_ENDED: 'EVENT_ENDED',\n  ACCOUNT_SECURITY: 'ACCOUNT_SECURITY',\n} as const;\nexport type NotificationType = (typeof NotificationType)[keyof typeof NotificationType];\n","import { z } from 'zod';\nimport { NotificationType, NotificationPriority, NotificationChannel } from './notification.enums';\nimport { PaginationParamsSchema, PaginationResponseSchema } from '../common/common.schemas';\nimport { NotificationCategory } from '../user';\n\n/** Inbox the row belongs to: `null` = viewer inbox, uuid = that host or vendor profile's inbox. */\nconst NotificationProfileIdSchema = z.uuid().nullable();\n\nexport const NotificationResponseSchema = z.object({\n  id: z.uuid(),\n  userId: z.uuid(),\n  profileId: NotificationProfileIdSchema,\n  type: z.enum(NotificationType),\n  title: z.string(),\n  body: z.string(),\n  actionUrl: z.url().optional(),\n  actionType: z.string().optional(),\n  channels: z.array(z.enum(NotificationChannel)),\n  isRead: z.boolean(),\n  readAt: z.iso.datetime().optional(),\n  deliveredAt: z.iso.datetime().optional(),\n  priority: z.enum(NotificationPriority),\n  metadata: z.record(z.string(), z.any()).optional(),\n  createdAt: z.iso.datetime(),\n});\n\nconst EXPO_TOKEN_REGEX = /^ExponentPushToken\\[[A-Za-z0-9_-]{18,32}\\]$/;\n\nexport const RegisterPushDeviceRequestSchema = z.object({\n  expoPushToken: z.string().regex(EXPO_TOKEN_REGEX),\n  platform: z.enum(['IOS', 'ANDROID', 'UNKNOWN']),\n  appVersion: z.string().max(24).optional(),\n  deviceLabel: z.string().max(80).optional(),\n});\n\nexport const RegisterPushDeviceResponseSchema = z.object({\n  deviceId: z.string(),\n  registeredAt: z.iso.datetime(),\n});\n\n/** `GET /notifications` — paged in-app notification inbox for the authenticated user. */\nexport const ListNotificationsQuerySchema = PaginationParamsSchema.extend({\n  profileId: z.uuid().optional(),\n  isRead: z\n    .enum(['true', 'false'])\n    .optional()\n    .transform((value) => (value === undefined ? undefined : value === 'true')),\n  /**\n   * Case-insensitive match on title, body, or type\n   * (UI: search by role, name, or status copy).\n   */\n  search: z.string().trim().min(2).max(100).optional(),\n});\n\n/** Shared optional inbox scope for mark-all / clear-all. */\nexport const NotificationInboxScopeQuerySchema = z.object({\n  profileId: z.uuid().optional(),\n});\n\nexport const ListNotificationsResponseSchema = z.object({\n  items: z.array(NotificationResponseSchema),\n  ...PaginationResponseSchema.shape,\n});\n\nexport const NotificationsUnreadCountResponseSchema = z.object({\n  count: z.number().int().nonnegative(),\n});\n\nexport const MarkNotificationReadResponseSchema = z.object({\n  id: z.uuid(),\n  isRead: z.literal(true),\n  readAt: z.iso.datetime(),\n});\n\nexport const MarkAllNotificationsReadResponseSchema = z.object({\n  markedCount: z.number().int().nonnegative(),\n  /** True when more unread rows remain beyond the interactive write bound. */\n  hasMore: z.boolean().optional(),\n});\n\nexport const ClearAllNotificationsResponseSchema = z.object({\n  clearedCount: z.number().int().nonnegative(),\n  /** True when more rows remain beyond the interactive write bound. */\n  hasMore: z.boolean().optional(),\n});\n\n/** Server → client event names on the `/notifications` Socket.IO namespace. */\nexport const NotificationSocketEvents = {\n  Connected: 'notification.connected',\n  Created: 'notification.created',\n  Updated: 'notification.updated',\n  Read: 'notification.read',\n  ReadAll: 'notification.read_all',\n  Cleared: 'notification.cleared',\n  UnreadCounts: 'notification.unread_counts',\n} as const;\n\nexport const NotificationConnectedPayloadSchema = z.object({\n  userId: z.uuid(),\n});\n\nexport const NotificationCreatedPayloadSchema = z.object({\n  notification: NotificationResponseSchema,\n});\n\n/** A recent unread row was refreshed in place (coalesced burst) — upsert by `notification.id`. */\nexport const NotificationUpdatedPayloadSchema = z.object({\n  notification: NotificationResponseSchema,\n});\n\nexport const NotificationReadPayloadSchema = z.object({\n  id: z.uuid(),\n  profileId: NotificationProfileIdSchema,\n  readAt: z.iso.datetime(),\n});\n\nexport const NotificationReadAllPayloadSchema = z.object({\n  profileId: NotificationProfileIdSchema,\n  markedCount: z.number().int().nonnegative(),\n  readAt: z.iso.datetime(),\n});\n\nexport const NotificationClearedPayloadSchema = z.object({\n  profileId: NotificationProfileIdSchema,\n  clearedCount: z.number().int().nonnegative(),\n  clearedAt: z.iso.datetime(),\n});\n\n/** Full snapshot of unread badges across the user's inboxes; an inbox not listed has 0 unread. */\nexport const NotificationUnreadCountsPayloadSchema = z.object({\n  counts: z.array(\n    z.object({\n      profileId: NotificationProfileIdSchema,\n      count: z.number().int().positive(),\n    }),\n  ),\n});\n\nconst HOST_CATEGORY = z.enum([\n  NotificationCategory.EVENT_REMINDERS,\n  NotificationCategory.TICKET_PURCHASES,\n  NotificationCategory.CREW_UPDATES,\n]);\nconst VENDOR_CATEGORY = z.enum([\n  NotificationCategory.JOB_INVITATIONS,\n  NotificationCategory.JOB_CONFIRMATIONS,\n  NotificationCategory.MESSAGES,\n  NotificationCategory.PAYMENT_ALERTS,\n]);\n\nexport const HostNotificationPreferenceItemSchema = z.object({\n  category: HOST_CATEGORY,\n  enabled: z.boolean(),\n});\n\nexport const VendorNotificationPreferenceItemSchema = z.object({\n  category: VENDOR_CATEGORY,\n  enabled: z.boolean(),\n});\n\nexport const HostNotificationPreferencesResponseSchema = z.object({\n  preferences: z.record(HOST_CATEGORY, z.boolean()),\n});\n\nexport const VendorNotificationPreferencesResponseSchema = z.object({\n  preferences: z.record(VENDOR_CATEGORY, z.boolean()),\n});\n\nexport const UpdateHostNotificationPreferencesRequestSchema = z.object({\n  preferences: z.array(HostNotificationPreferenceItemSchema).min(1).max(10),\n});\n\nexport const UpdateVendorNotificationPreferencesRequestSchema = z.object({\n  preferences: z.array(VendorNotificationPreferenceItemSchema).min(1).max(10),\n});\n"]}