{"version":3,"sources":["../src/user/user.schemas.ts"],"names":["HostProfileResponseSchema","z","EventCategory","VendorProfileResponseSchema","VendorTeamSize","VendorExperienceLevel","PublicVendorListCategorySchema","VendorVerificationStatus","UserResponseSchema","AccountStatus","KycStatus","UpdateUserRequestSchema","CreateHostProfileRequestSchema","UpdateHostProfileRequestSchema","CreateVendorProfileRequestSchema","SetProfilePinSchema","RESERVED_DISPLAY_NAMES","DisplayNameSchema","v","UpdateViewerProfileRequestSchema","UpdateViewerCurrencyRequestSchema","USER_CATEGORY","NotificationCategory","NotificationPreferenceItemSchema","UpdateNotificationPreferencesRequestSchema","items","i","SendFeedbackRequestSchema","FeedbackCategory","ViewerMeResponseSchema","NotificationPreferencesResponseSchema","SendFeedbackResponseSchema"],"mappings":"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","file":"chunk-4Y7TYUBB.mjs","sourcesContent":["import { z } from 'zod';\nimport {\n  AccountStatus,\n  FeedbackCategory,\n  KycStatus,\n  NotificationCategory,\n  VendorExperienceLevel,\n  VendorTeamSize,\n  VendorVerificationStatus,\n} from './user.enums';\nimport { EventCategory } from '../event';\nimport { PublicVendorListCategorySchema } from '../marketplace';\n\nexport const HostProfileResponseSchema = z.object({\n  id: z.uuid(),\n  userId: z.uuid(),\n  businessName: z.string(),\n  totalEvents: z.number(),\n  totalSpent: z.number(),\n  averageRating: z.number(),\n  /** Count of vendor→host marketplace reviews reflected in `averageRating`. */\n  totalReviews: z.number().int().nonnegative(),\n  defaultCurrency: z.string(),\n  description: z.string().optional(),\n  category: z.array(z.enum(EventCategory)),\n  logoUrl: z.url().optional(),\n  hasPin: z.boolean(),\n  businessRegNumber: z.string().optional(),\n  taxId: z.string().optional(),\n  settlementBankCode: z.string().optional(),\n  settlementAccountNumber: z.string().optional(),\n  settlementAccountName: z.string().optional(),\n  paystackSubaccountCode: z.string().optional(),\n  createdAt: z.iso.datetime(),\n});\n\nexport const VendorProfileResponseSchema = z.object({\n  id: z.uuid(),\n  userId: z.uuid(),\n  companyName: z.string(),\n  bio: z.string(),\n  yearsExperience: z.number().optional(),\n  teamSize: z.enum(VendorTeamSize).optional(),\n  experienceLevel: z.enum(VendorExperienceLevel),\n  equipmentManifest: z.array(z.record(z.string(), z.any())),\n  serviceCategories: z.array(PublicVendorListCategorySchema),\n  equipmentItems: z.array(PublicVendorListCategorySchema),\n  verificationStatus: z.enum(VendorVerificationStatus),\n  averageRating: z.number().positive().multipleOf(0.01),\n  totalReviews: z.number(),\n  completionRate: z.number(),\n  isAvailable: z.boolean(),\n  hasPin: z.boolean(),\n  createdAt: z.iso.datetime(),\n});\n\nexport const UserResponseSchema = z.object({\n  id: z.uuid(),\n  email: z.email().toLowerCase(),\n  emailVerified: z.boolean(),\n  emailVerifiedAt: z.iso.datetime().optional(),\n  phoneNumber: z.string().optional(),\n  firstName: z.string().optional(),\n  lastName: z.string().optional(),\n  displayName: z.string().optional(),\n  avatarUrl: z.url().optional(),\n  roles: z.number().min(1).max(15),\n  accountStatus: z.enum(AccountStatus),\n  kycStatus: z.enum(KycStatus),\n  hostProfile: HostProfileResponseSchema.optional(),\n  vendorProfile: VendorProfileResponseSchema.optional(),\n  createdAt: z.iso.datetime(),\n  updatedAt: z.iso.datetime(),\n  eventCategory: z.array(z.enum(EventCategory)).optional(),\n});\n\nexport const UpdateUserRequestSchema = z.object({\n  firstName: z.string().optional(),\n  lastName: z.string().optional(),\n  displayName: z.string().optional(),\n  avatarUrl: z.url().optional(),\n  phoneNumber: z.string().optional(),\n  eventCategory: z.array(z.enum(EventCategory)).optional(),\n});\n\nexport const CreateHostProfileRequestSchema = z.object({\n  businessName: z.string(),\n  description: z.string().optional(),\n  logoUrl: z.string().optional(),\n  category: z.array(z.enum(EventCategory)).min(1),\n});\n\nexport const UpdateHostProfileRequestSchema = z.object({\n  businessName: z.string().min(1).max(120).optional(),\n  description: z.string().max(2000).optional(),\n  logoUrl: z.string().optional(),\n  category: z.array(z.enum(EventCategory)).min(1).optional(),\n  businessRegNumber: z.string().max(64).optional(),\n  taxId: z.string().max(64).optional(),\n});\n\nexport const CreateVendorProfileRequestSchema = z.object({\n  companyName: z.string(),\n  bio: z.string(),\n  logoUrl: z.string().optional(),\n  serviceCategoryIds: z.array(z.uuid()).optional(),\n  serviceCategoryCodes: z.array(z.string().min(1).max(64)).optional(),\n  equipmentItemIds: z.array(z.uuid()).optional(),\n  equipmentItemCodes: z.array(z.string().min(1).max(64)).optional(),\n  yearsExperience: z.number(),\n  experienceLevel: z.enum(VendorExperienceLevel),\n  teamSize: z.enum(VendorTeamSize).optional(),\n  minFee: z.number(),\n  maxFee: z.number(),\n  isAvailable: z.boolean(),\n});\n\nexport const SetProfilePinSchema = z.object({\n  pin: z\n    .string()\n    .trim()\n    .regex(/^\\d{5}$/, 'pin must be 5 digits'),\n  currentPin: z\n    .string()\n    .trim()\n    .regex(/^\\d{5}$/, 'currentPin must be 5 digits')\n    .optional(),\n});\n\nexport const RESERVED_DISPLAY_NAMES: ReadonlySet<string> = new Set([\n  'admin',\n  'support',\n  'livdot',\n  'host',\n  'vendor',\n  'system',\n  'null',\n  'undefined',\n  'me',\n  'settings',\n  'viewer',\n  'auth',\n  'events',\n  'streaming',\n  'vendors',\n  'marketplace',\n  'users',\n]);\n\n/** Handle constraints — see viewer-settings.md §3.1. */\nexport const DisplayNameSchema = z\n  .string()\n  .trim()\n  .toLowerCase()\n  .min(3, 'Display name must be at least 3 characters')\n  .max(30, 'Display name must be at most 30 characters')\n  .regex(/^[a-z0-9_]+$/, 'Display name may only contain lowercase letters, digits, and underscores')\n  .refine((v) => !RESERVED_DISPLAY_NAMES.has(v), {\n    message: 'This display name is reserved',\n  });\n\nexport const UpdateViewerProfileRequestSchema = z\n  .object({\n    displayName: DisplayNameSchema,\n  })\n  .strict();\n\nexport const UpdateViewerCurrencyRequestSchema = z\n  .object({\n    preferredCurrency: z\n      .string()\n      .trim()\n      .toUpperCase()\n      .length(3)\n      .regex(/^[A-Z]{3}$/),\n  })\n  .strict();\nconst USER_CATEGORY = z.enum([\n  NotificationCategory.LIVE_ALERTS,\n  NotificationCategory.RECOMMENDATIONS,\n  NotificationCategory.EVENT_REMINDERS,\n]);\n\nexport const NotificationPreferenceItemSchema = z.object({\n  category: USER_CATEGORY,\n  enabled: z.boolean(),\n});\n\nexport const UpdateNotificationPreferencesRequestSchema = z\n  .object({\n    preferences: z\n      .array(NotificationPreferenceItemSchema)\n      .min(1)\n      .max(10)\n      .refine((items) => new Set(items.map((i) => i.category)).size === items.length, {\n        message: 'Duplicate category in preferences',\n      }),\n  })\n  .strict();\n\nexport const SendFeedbackRequestSchema = z\n  .object({\n    category: z.enum(FeedbackCategory),\n    message: z.string().trim().min(10).max(2000),\n  })\n  .strict();\n\nexport const ViewerMeResponseSchema = z.object({\n  id: z.uuid(),\n  email: z.email(),\n  emailVerified: z.boolean(),\n  displayName: z.string().nullable(),\n  avatarUrl: z.url().nullable(),\n  roles: z.number().int(),\n  preferredCurrency: z.string(),\n  notificationsEnabledCount: z.number().int(),\n  hasPushDevice: z.boolean(),\n});\n\nexport const NotificationPreferencesResponseSchema = z.object({\n  preferences: z.record(USER_CATEGORY, z.boolean()),\n});\n\nexport const SendFeedbackResponseSchema = z.object({\n  id: z.uuid(),\n});\n"]}