{"version":3,"sources":["../src/booking/booking-state-machine.ts","../src/booking/booking.schemas.ts","../src/booking/hiring.enums.ts","../src/booking/hiring.schemas.ts","../src/booking/thread.enums.ts","../src/booking/thread.schemas.ts","../src/booking/vendor-jobs.schemas.ts","../src/booking/booking-audit.schemas.ts","../src/booking/crew-assignment.enums.ts","../src/booking/crew-assignment.schemas.ts"],"names":["BOOKING_TERMINAL_STATES","BookingState","DISPUTE_EXCLUDED_FROM","VALID_BOOKING_TRANSITIONS","BOOKING_TRANSITION_ACTORS","BookingTransitionActor","BOOKING_TRANSITION_TARGETS_REQUIRING_REASON","bookingTransitionKey","from","to","getAllowedBookingTargetStates","base","isValidBookingTransition","getBookingTransitionActors","canActorPerformBookingTransition","actor","bookingTransitionRequiresReason","_from","CreateBookingRequestSchema","z","BookingOrigin","ConfirmBookingRequestSchema","BookingResponseSchema","BookingPaymentStatus","CreateJobListingRequestSchema","JobListingResponseSchema","JobListingState","JobLocation","JobListingCompensationTier","jsonRecordSchema","CreateMarketplaceBookingRequestSchema","data","ctx","MarketplaceBookingAssignedEventSchema","MarketplaceBookingResponseSchema","MoneySchema","CreateMarketplaceBookingResponseSchema","bookingTransitionReasonSchema","TransitionMarketplaceBookingRequestSchema","TransitionMarketplaceBookingResponseSchema","CompleteMarketplaceBookingRequestSchema","ForceCompleteMarketplaceBookingRequestSchema","CompleteMarketplaceBookingResponseSchema","jobListingEventTitleRefine","jobListingRequiredDateRefine","MarketplaceJobListingBodyFieldsSchema","MarketplaceJobListingBodySchema","PublishableJobListingBodyFieldsSchema","PublishableJobListingBodySchema","CreateMarketplaceJobListingRequestSchema","attached","result","issue","UpdateMarketplaceJobListingRequestSchema","ListMarketplaceJobListingsQuerySchema","PaginationParamsSchema","value","ListHostMarketplaceJobListingsQuerySchema","PublishReadyJobListingSchema","PublishMarketplaceJobListingResponseSchema","MarketplaceJobListingResponseSchema","CancelMarketplaceJobListingRequestSchema","CancelMarketplaceJobListingResponseSchema","CloseMarketplaceJobListingResponseSchema","OpenMarketplaceJobListingResponseSchema","SubmitMarketplaceIndicationOfInterestRequestSchema","MarketplaceIndicationOfInterestResponseSchema","JobInterestState","MarketplaceIndicationOfInterestHostItemSchema","HostIndicationOfInterestSortBy","SortOrder","ListHostMarketplaceIndicationsQuerySchema","MarketplaceHostIndicationOfInterestInboxItemSchema","ListVendorMarketplaceIndicationsQuerySchema","MarketplaceVendorIndicationOfInterestInboxItemSchema","MessageDeliveryStatus","MarketplaceHiringThreadSchema","StartMarketplaceHiringThreadRequestSchema","hasVendor","hasHost","MarketplaceHiringThreadAttachmentFileNameSchema","MarketplaceHiringThreadPendingAttachmentSchema","MarketplaceHiringMessageAttachmentSchema","MarketplaceHiringMessageSchema","ListMarketplaceHiringThreadMessagesQuerySchema","ListMarketplaceHiringThreadMessagesResponseSchema","PaginationResponseSchema","GetMarketplaceHiringThreadResponseSchema","PostMarketplaceHiringThreadMessageRequestSchema","PostMarketplaceHiringThreadMessageResponseSchema","UploadMarketplaceHiringThreadAttachmentResponseSchema","DeleteMarketplaceHiringThreadPendingAttachmentRequestSchema","DeleteMarketplaceHiringThreadMessageAttachmentResponseSchema","MarkMarketplaceHiringThreadReadRequestSchema","MarkMarketplaceHiringThreadReadResponseSchema","MarketplaceHiringThreadInboxItemSchema","ListMarketplaceHiringThreadsResponseSchema","VendorJobsTabSchema","VendorJobRowStatusSchema","VendorJobRowKindSchema","ListVendorJobsQuerySchema","VendorJobRowSchema","VendorJobsTabResponseSchema","VendorJobsTabCountsResponseSchema","BookingAuditActorSchema","AuditActorRoleSchema","BookingAuditRequestMetadataSchema","BookingAuditSnapshotSchema","BookingAuditStateTransitionDetailsSchema","BookingAuditMessageSentDetailsSchema","BookingAuditAttachmentAddedDetailsSchema","auditEntryBase","stateTransitionAuditEntry","action","AdminBookingAuditEntrySchema","BookingAuditAction","AdminBookingAuditResponseSchema","EventCrewAssignmentState","ExternalHireScheduleFields","refineExternalHireScheduleTogether","fields","provided","missing","key","RoleFieldsSchema","CreateEventCrewAssignmentRequestSchema","CreateExternalEventCrewAssignmentRequestSchema","UpdateEventCrewAssignmentRequestSchema","body","ReplaceEventCrewAssignmentRequestSchema","EventCrewAssignmentVendorSummarySchema","EventCrewAssignmentResponseSchema","ListEventCrewAssignmentsResponseSchema","ListEventCrewAssignmentsQuerySchema","raw","v","part","RejectEventCrewAssignmentRequestSchema","AcceptEventCrewAssignmentResponseSchema","ReplaceEventCrewAssignmentResponseSchema"],"mappings":"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","file":"chunk-ERFGUUYM.mjs","sourcesContent":["import { BookingState, BookingTransitionActor } from './booking.enums';\n\nexport type BookingTransitionKey = `${BookingState}->${BookingState}`;\n\nexport const BOOKING_TERMINAL_STATES: readonly BookingState[] = [\n  BookingState.REJECTED,\n  BookingState.CANCELLED,\n  BookingState.CLOSED,\n];\n\nconst DISPUTE_EXCLUDED_FROM: readonly BookingState[] = [\n  ...BOOKING_TERMINAL_STATES,\n  BookingState.IN_DISPUTE,\n];\n\n/** Valid target states per source (excludes dispute shortcut — see `getAllowedBookingTargetStates`). */\nexport const VALID_BOOKING_TRANSITIONS: Record<BookingState, readonly BookingState[]> = {\n  [BookingState.DRAFT]: [BookingState.AWAITING_VENDOR_RESPONSE, BookingState.CANCELLED],\n  [BookingState.REQUESTED]: [BookingState.AWAITING_VENDOR_RESPONSE, BookingState.CANCELLED],\n  [BookingState.AWAITING_VENDOR_RESPONSE]: [\n    BookingState.IN_NEGOTIATION,\n    BookingState.ACCEPTED,\n    BookingState.REJECTED,\n    BookingState.CANCELLED,\n  ],\n  [BookingState.IN_NEGOTIATION]: [\n    BookingState.ACCEPTED,\n    BookingState.REJECTED,\n    BookingState.CANCELLED,\n  ],\n  [BookingState.ACCEPTED]: [BookingState.AWAITING_ESCROW_FUNDING, BookingState.CANCELLED],\n  [BookingState.AWAITING_ESCROW_FUNDING]: [BookingState.CONFIRMED, BookingState.CANCELLED],\n  [BookingState.CONFIRMED]: [\n    BookingState.IN_PROGRESS,\n    BookingState.AWAITING_VENDOR_RECONFIRM,\n    BookingState.CANCELLED,\n  ],\n  [BookingState.AWAITING_VENDOR_RECONFIRM]: [BookingState.CONFIRMED, BookingState.CANCELLED],\n  [BookingState.IN_PROGRESS]: [BookingState.SERVICE_COMPLETED, BookingState.CANCELLED],\n  [BookingState.SERVICE_COMPLETED]: [BookingState.CLOSED],\n  [BookingState.IN_DISPUTE]: [BookingState.CLOSED],\n  [BookingState.REJECTED]: [],\n  [BookingState.CANCELLED]: [],\n  [BookingState.CLOSED]: [],\n};\n\n/** RBAC: which actor may perform each transition (dispute edges merged at runtime). */\nexport const BOOKING_TRANSITION_ACTORS: Partial<\n  Record<BookingTransitionKey, readonly BookingTransitionActor[]>\n> = {\n  [`${BookingState.DRAFT}->${BookingState.AWAITING_VENDOR_RESPONSE}`]: [\n    BookingTransitionActor.HOST,\n    BookingTransitionActor.SYSTEM,\n  ],\n  [`${BookingState.DRAFT}->${BookingState.CANCELLED}`]: [BookingTransitionActor.HOST],\n  [`${BookingState.REQUESTED}->${BookingState.AWAITING_VENDOR_RESPONSE}`]: [\n    BookingTransitionActor.HOST,\n    BookingTransitionActor.SYSTEM,\n  ],\n  [`${BookingState.REQUESTED}->${BookingState.CANCELLED}`]: [BookingTransitionActor.HOST],\n  [`${BookingState.AWAITING_VENDOR_RESPONSE}->${BookingState.IN_NEGOTIATION}`]: [\n    BookingTransitionActor.VENDOR,\n  ],\n  [`${BookingState.AWAITING_VENDOR_RESPONSE}->${BookingState.ACCEPTED}`]: [\n    BookingTransitionActor.VENDOR,\n  ],\n  [`${BookingState.AWAITING_VENDOR_RESPONSE}->${BookingState.REJECTED}`]: [\n    BookingTransitionActor.VENDOR,\n  ],\n  [`${BookingState.AWAITING_VENDOR_RESPONSE}->${BookingState.CANCELLED}`]: [\n    BookingTransitionActor.HOST,\n    BookingTransitionActor.VENDOR,\n  ],\n  [`${BookingState.IN_NEGOTIATION}->${BookingState.ACCEPTED}`]: [\n    BookingTransitionActor.HOST,\n    BookingTransitionActor.VENDOR,\n  ],\n  [`${BookingState.IN_NEGOTIATION}->${BookingState.REJECTED}`]: [\n    BookingTransitionActor.HOST,\n    BookingTransitionActor.VENDOR,\n  ],\n  [`${BookingState.IN_NEGOTIATION}->${BookingState.CANCELLED}`]: [\n    BookingTransitionActor.HOST,\n    BookingTransitionActor.VENDOR,\n  ],\n  [`${BookingState.ACCEPTED}->${BookingState.AWAITING_ESCROW_FUNDING}`]: [\n    BookingTransitionActor.HOST,\n    BookingTransitionActor.SYSTEM,\n  ],\n  [`${BookingState.ACCEPTED}->${BookingState.CANCELLED}`]: [\n    BookingTransitionActor.HOST,\n    BookingTransitionActor.VENDOR,\n  ],\n  [`${BookingState.AWAITING_ESCROW_FUNDING}->${BookingState.CONFIRMED}`]: [\n    BookingTransitionActor.SYSTEM,\n    BookingTransitionActor.ADMIN,\n  ],\n  [`${BookingState.AWAITING_ESCROW_FUNDING}->${BookingState.CANCELLED}`]: [\n    BookingTransitionActor.HOST,\n    BookingTransitionActor.VENDOR,\n    BookingTransitionActor.ADMIN,\n  ],\n  [`${BookingState.CONFIRMED}->${BookingState.IN_PROGRESS}`]: [\n    BookingTransitionActor.HOST,\n    BookingTransitionActor.VENDOR,\n    BookingTransitionActor.ADMIN,\n  ],\n  [`${BookingState.CONFIRMED}->${BookingState.AWAITING_VENDOR_RECONFIRM}`]: [\n    BookingTransitionActor.HOST,\n    BookingTransitionActor.SYSTEM,\n    BookingTransitionActor.ADMIN,\n  ],\n  [`${BookingState.CONFIRMED}->${BookingState.CANCELLED}`]: [\n    BookingTransitionActor.HOST,\n    BookingTransitionActor.VENDOR,\n    BookingTransitionActor.ADMIN,\n  ],\n  [`${BookingState.AWAITING_VENDOR_RECONFIRM}->${BookingState.CONFIRMED}`]: [\n    BookingTransitionActor.VENDOR,\n    BookingTransitionActor.ADMIN,\n  ],\n  [`${BookingState.AWAITING_VENDOR_RECONFIRM}->${BookingState.CANCELLED}`]: [\n    BookingTransitionActor.HOST,\n    BookingTransitionActor.VENDOR,\n    BookingTransitionActor.ADMIN,\n  ],\n  [`${BookingState.IN_PROGRESS}->${BookingState.SERVICE_COMPLETED}`]: [\n    BookingTransitionActor.VENDOR,\n    BookingTransitionActor.SYSTEM,\n    BookingTransitionActor.ADMIN,\n  ],\n  [`${BookingState.IN_PROGRESS}->${BookingState.CANCELLED}`]: [\n    BookingTransitionActor.HOST,\n    BookingTransitionActor.ADMIN,\n  ],\n  [`${BookingState.SERVICE_COMPLETED}->${BookingState.CLOSED}`]: [\n    BookingTransitionActor.HOST,\n    BookingTransitionActor.ADMIN,\n    BookingTransitionActor.SYSTEM,\n  ],\n  [`${BookingState.IN_DISPUTE}->${BookingState.CLOSED}`]: [\n    BookingTransitionActor.ADMIN,\n    BookingTransitionActor.HOST,\n  ],\n};\n\n/** Target states that require a `reason` on the transition request. */\nexport const BOOKING_TRANSITION_TARGETS_REQUIRING_REASON: readonly BookingState[] = [\n  BookingState.REJECTED,\n  BookingState.CANCELLED,\n  BookingState.IN_DISPUTE,\n];\n\nexport function bookingTransitionKey(from: BookingState, to: BookingState): BookingTransitionKey {\n  return `${from}->${to}`;\n}\n\nexport function getAllowedBookingTargetStates(from: BookingState): readonly BookingState[] {\n  const base = VALID_BOOKING_TRANSITIONS[from] ?? [];\n  if (!DISPUTE_EXCLUDED_FROM.includes(from)) {\n    return [...base, BookingState.IN_DISPUTE];\n  }\n  return base;\n}\n\nexport function isValidBookingTransition(from: BookingState, to: BookingState): boolean {\n  return getAllowedBookingTargetStates(from).includes(to);\n}\n\nexport function getBookingTransitionActors(\n  from: BookingState,\n  to: BookingState,\n): readonly BookingTransitionActor[] {\n  if (to === BookingState.IN_DISPUTE && !DISPUTE_EXCLUDED_FROM.includes(from)) {\n    return [BookingTransitionActor.HOST, BookingTransitionActor.VENDOR];\n  }\n  return BOOKING_TRANSITION_ACTORS[bookingTransitionKey(from, to)] ?? [];\n}\n\nexport function canActorPerformBookingTransition(\n  from: BookingState,\n  to: BookingState,\n  actor: BookingTransitionActor,\n): boolean {\n  return getBookingTransitionActors(from, to).includes(actor);\n}\n\nexport function bookingTransitionRequiresReason(_from: BookingState, to: BookingState): boolean {\n  return BOOKING_TRANSITION_TARGETS_REQUIRING_REASON.includes(to);\n}\n","import { z } from 'zod';\nimport {\n  BookingOrigin,\n  BookingState,\n  JobListingState,\n  BookingPaymentStatus,\n} from './booking.enums';\n\nexport const CreateBookingRequestSchema = z.object({\n  origin: z.enum(BookingOrigin),\n  eventId: z.uuid().optional(),\n  vendorId: z.uuid(),\n  agreedAmount: z.number().min(0),\n});\n\nexport const ConfirmBookingRequestSchema = z.object({\n  escrowReference: z.string(),\n});\n\nexport const BookingResponseSchema = z.object({\n  id: z.uuid(),\n  eventId: z.uuid().optional(),\n  hostId: z.uuid(),\n  vendorId: z.uuid(),\n  quotedPrice: z.number(),\n  currency: z.string(),\n  scopeOfWork: z.record(z.string(), z.any()).optional(),\n  requiredStartAt: z.iso.datetime(),\n  requiredEndAt: z.iso.datetime(),\n  bookingState: z.enum(BookingState),\n  paymentStatus: z.enum(BookingPaymentStatus),\n  escrowReference: z.string().optional(),\n  completedAt: z.iso.datetime().optional(),\n  createdAt: z.iso.datetime(),\n  updatedAt: z.iso.datetime(),\n});\n\nexport const CreateJobListingRequestSchema = z.object({\n  title: z.string().max(255),\n  description: z.string(),\n  requiredDate: z.iso.datetime(),\n  estimatedDurationMinutes: z.number().int().positive().optional(),\n  location: z.string(),\n  budgetRangeMin: z.number().optional(),\n  budgetRangeMax: z.number().optional(),\n});\n\nexport const JobListingResponseSchema = z.object({\n  id: z.uuid(),\n  hostProfileId: z.uuid(),\n  eventId: z.uuid().optional(),\n  title: z.string(),\n  description: z.string(),\n  requiredDate: z.iso.datetime(),\n  estimatedDurationMinutes: z.number().int().nullable().optional(),\n  location: z.string(),\n  budgetRangeMin: z.number().optional(),\n  budgetRangeMax: z.number().optional(),\n  state: z.enum(JobListingState),\n  proposalCount: z.number(),\n  createdAt: z.iso.datetime(),\n});\n","export const JobLocation = {\n  ONSITE: 'ONSITE',\n  REMOTE: 'REMOTE',\n} as const;\nexport type JobLocation = (typeof JobLocation)[keyof typeof JobLocation];\n\n/** Discover-jobs compensation bracket filter (NGN). */\nexport const JobListingCompensationTier = {\n  LOW: 'LOW',\n  MID: 'MID',\n  HIGH: 'HIGH',\n} as const;\nexport type JobListingCompensationTier =\n  (typeof JobListingCompensationTier)[keyof typeof JobListingCompensationTier];\n","import { z } from 'zod';\nimport { JobInterestState } from '../joblisting/listing.enum';\nimport { BookingOrigin, BookingState, JobListingState } from './booking.enums';\nimport { JobListingCompensationTier, JobLocation } from './hiring.enums';\nimport { MoneySchema, PaginationParamsSchema } from '../common';\n\nconst jsonRecordSchema = z.record(z.string(), z.unknown());\n\n/** `POST /marketplace/bookings` */\nexport const CreateMarketplaceBookingRequestSchema = z\n  .object({\n    vendorId: z.uuid(),\n    origin: z.enum(BookingOrigin),\n    eventId: z.uuid().optional(),\n    jobListingId: z.uuid().optional(),\n    sourceIoiId: z.uuid().optional(),\n    agreedAmount: z.coerce.number().nonnegative().optional(),\n    scopeOfWork: z.string().max(5000).optional(),\n  })\n  .superRefine((data, ctx) => {\n    if (data.origin === BookingOrigin.EVENT_DIRECT && !data.eventId) {\n      ctx.addIssue({\n        code: 'custom',\n        message: 'eventId is required when origin is EVENT_DIRECT',\n        path: ['eventId'],\n      });\n    }\n    if (data.origin === BookingOrigin.MARKETPLACE_DIRECT) {\n      if (data.eventId) {\n        ctx.addIssue({\n          code: 'custom',\n          message: 'eventId must not be set when origin is MARKETPLACE_DIRECT',\n          path: ['eventId'],\n        });\n      }\n      if (data.sourceIoiId) {\n        ctx.addIssue({\n          code: 'custom',\n          message: 'sourceIoiId must not be set when origin is MARKETPLACE_DIRECT',\n          path: ['sourceIoiId'],\n        });\n      }\n    }\n    if (data.origin === BookingOrigin.JOB_LISTING) {\n      if (!data.sourceIoiId) {\n        ctx.addIssue({\n          code: 'custom',\n          message: 'sourceIoiId is required when origin is JOB_LISTING',\n          path: ['sourceIoiId'],\n        });\n      }\n      if (data.eventId) {\n        ctx.addIssue({\n          code: 'custom',\n          message: 'eventId must not be set when origin is JOB_LISTING',\n          path: ['eventId'],\n        });\n      }\n    }\n    if (data.sourceIoiId && data.origin !== BookingOrigin.JOB_LISTING) {\n      ctx.addIssue({\n        code: 'custom',\n        message: 'sourceIoiId is only allowed when origin is JOB_LISTING',\n        path: ['sourceIoiId'],\n      });\n    }\n  });\n\n/**\n * Assigned-event execution context on a booking.\n * Schedule + go-live window for the linked event. Full readiness /\n * streaming live on `GET /marketplace/vendor/events/:id`.\n *\n * `requiredStartAt` / `requiredEndAt` are derived from the event\n * schedule until `Booking.requiredStartAt` / `requiredEndAt` are written.\n */\nexport const MarketplaceBookingAssignedEventSchema = z.object({\n  id: z.uuid(),\n  title: z.string(),\n  state: z.string(),\n  timezone: z.string(),\n  scheduledStart: z.iso.datetime(),\n  scheduledStartLocal: z.iso.datetime({ local: true, offset: false }),\n  scheduledEnd: z.iso.datetime(),\n  scheduledEndLocal: z.iso.datetime({ local: true, offset: false }),\n  requiredStartAt: z.iso.datetime(),\n  requiredEndAt: z.iso.datetime(),\n  /** Earliest go-live instant (scheduledStart − early window). */\n  goLiveEligibleAt: z.iso.datetime().nullable(),\n});\n\nexport const MarketplaceBookingResponseSchema = z.object({\n  id: z.uuid(),\n  eventId: z.uuid().nullable(),\n  eventLinked: z.boolean(),\n  hostProfileId: z.uuid(),\n  vendorProfileId: z.uuid(),\n  origin: z.enum(BookingOrigin),\n  jobListingId: z.uuid().nullable(),\n  sourceIoiId: z.uuid().nullable(),\n  state: z.enum(BookingState),\n  /** Server-inherited currency + minor-unit amount (MONEY_MULTI_CURRENCY.md §4). */\n  agreedAmount: MoneySchema.nullable(),\n  scopeOfWork: z.string().nullable(),\n  /**\n   * Direct Hire Assign Role fields from `Booking.serviceDetails`.\n   * Null when the booking has no structured role payload (non–Direct Hire).\n   */\n  role: z.string().nullable(),\n  /** Invite modal \"Description\" — same source as responsibilities when set. */\n  description: z.string().nullable(),\n  responsibilities: z.string().nullable(),\n  requirements: z.string().nullable(),\n  location: z.enum(JobLocation).nullable(),\n  notes: z.string().nullable(),\n  createdAt: z.string(),\n  updatedAt: z.string(),\n  /**\n   * Linked-event schedule + go-live context. Populated on vendor\n   * booking list/detail when `eventId` is set; otherwise null.\n   */\n  assignedEvent: MarketplaceBookingAssignedEventSchema.nullable(),\n});\n\n/** `POST /marketplace/bookings` — create acknowledgement */\nexport const CreateMarketplaceBookingResponseSchema = z.object({\n  bookingId: z.uuid(),\n  booking: MarketplaceBookingResponseSchema,\n});\n\nconst bookingTransitionReasonSchema = z.string().trim().min(5).max(500);\n\n/** `POST /marketplace/bookings/:id/transition` (host, vendor, admin) */\nexport const TransitionMarketplaceBookingRequestSchema = z\n  .object({\n    targetState: z.enum(BookingState),\n    reason: bookingTransitionReasonSchema.optional(),\n  })\n  .superRefine((data, ctx) => {\n    const requiresReason =\n      data.targetState === BookingState.REJECTED ||\n      data.targetState === BookingState.CANCELLED ||\n      data.targetState === BookingState.IN_DISPUTE;\n    if (requiresReason && data.reason === undefined) {\n      ctx.addIssue({\n        code: 'custom',\n        message: 'reason is required for this transition',\n        path: ['reason'],\n      });\n    }\n  });\n\nexport const TransitionMarketplaceBookingResponseSchema = z.object({\n  booking: MarketplaceBookingResponseSchema,\n});\n\n/** `POST /marketplace/bookings/:id/complete` — dual-ack manual completion */\nexport const CompleteMarketplaceBookingRequestSchema = z.object({\n  notes: z.string().max(2000).optional(),\n});\n\n/** `POST /marketplace/bookings/:id/admin-force-complete` — TRUST admin override */\nexport const ForceCompleteMarketplaceBookingRequestSchema = z.object({\n  notes: z.string().max(2000).optional(),\n});\n\nexport const CompleteMarketplaceBookingResponseSchema = z.object({\n  booking: MarketplaceBookingResponseSchema,\n  hostAcked: z.boolean(),\n  vendorAcked: z.boolean(),\n  completed: z.boolean(),\n  forced: z.boolean().optional(),\n});\n\nconst jobListingEventTitleRefine = (\n  data: {\n    eventId?: string | undefined;\n    eventTitle?: string | undefined;\n    title?: string | undefined;\n  },\n  ctx: z.RefinementCtx,\n) => {\n  if (data.eventId) {\n    return;\n  }\n  const standaloneTitle = data.eventTitle?.trim() || data.title?.trim();\n  if (!standaloneTitle) {\n    ctx.addIssue({\n      code: 'custom',\n      message: 'eventTitle is required when eventId is not provided',\n      path: ['eventTitle'],\n    });\n  }\n};\n\nconst jobListingRequiredDateRefine = (\n  data: {\n    requiredDateLocal?: string | undefined;\n    timezone?: string | undefined;\n  },\n  ctx: z.RefinementCtx,\n) => {\n  if (data.requiredDateLocal !== undefined && !data.timezone?.trim()) {\n    ctx.addIssue({\n      code: 'custom',\n      message: 'timezone is required when requiredDateLocal is provided',\n      path: ['timezone'],\n    });\n  }\n};\n\nconst MarketplaceJobListingBodyFieldsSchema = z.object({\n  /** Standalone event title — required when `eventId` is absent. Ignored when linked. */\n  eventTitle: z.string().min(1).max(200).optional(),\n  /** @deprecated Use `eventTitle`. Kept for backward compatibility. */\n  title: z.string().min(1).max(200).optional(),\n  description: z.string().min(1).max(5000),\n  responsibilities: z.string().min(1),\n  requirements: z.string().min(1),\n  role: z.string().min(1).max(120),\n  requiredCount: z.coerce.number().int().min(1),\n  /** Wall-clock local datetime in `timezone` — same contract as Event `scheduledStartLocal`. */\n  requiredDateLocal: z.iso.datetime({ local: true, offset: false }).optional(),\n  /** IANA timezone for `requiredDateLocal` (e.g. Africa/Lagos). */\n  timezone: z.string().min(1).optional(),\n  /**\n   * @deprecated Prefer `requiredDateLocal` + `timezone`.\n   * When sent alone, treated as wall-clock digits (Event wizard legacy path).\n   */\n  requiredDate: z.iso.datetime().optional(),\n  estimatedDurationMinutes: z.coerce.number().int().positive().optional(),\n  location: z.enum(JobLocation),\n  notes: z.string().max(2000).optional(),\n  compensation: z.coerce.number().nonnegative().optional(),\n  attachments: jsonRecordSchema.optional(),\n  eventId: z.uuid().optional(),\n});\n\nconst MarketplaceJobListingBodySchema = MarketplaceJobListingBodyFieldsSchema.superRefine(\n  jobListingEventTitleRefine,\n).superRefine(jobListingRequiredDateRefine);\n\n/** Publish/create body without event-title guard (linked listings resolve title at read time). */\nconst PublishableJobListingBodyFieldsSchema = z.object({\n  eventTitle: z.string().min(1).max(200).optional(),\n  title: z.string().min(1).max(200).optional(),\n  description: z.string().min(1).max(5000),\n  responsibilities: z.string().min(1),\n  requirements: z.string().min(1),\n  role: z.string().min(1).max(120),\n  requiredCount: z.coerce.number().int().min(1),\n  location: z.enum(JobLocation),\n  eventId: z.uuid().optional(),\n});\n\nconst PublishableJobListingBodySchema = PublishableJobListingBodyFieldsSchema;\n\n/** `POST /marketplace/job-listings` — publish immediately unless `saveAsDraft` */\nexport const CreateMarketplaceJobListingRequestSchema =\n  MarketplaceJobListingBodyFieldsSchema.partial()\n    .extend({\n      saveAsDraft: z.boolean().optional().default(false),\n      /**\n       * Optional vendor to invite as soon as the listing is created (or\n       * when a DRAFT is published). Alias of a single-item `vendorIds`.\n       */\n      vendorId: z.uuid().optional(),\n      /** Optional vendors to attach; each receives a job invite. */\n      vendorIds: z.array(z.uuid()).min(1).max(10).optional(),\n    })\n    .superRefine(jobListingRequiredDateRefine)\n    .superRefine((data, ctx) => {\n      const attached = new Set(data.vendorIds ?? []);\n      if (data.vendorId) {\n        attached.add(data.vendorId);\n      }\n      if (data.requiredCount !== undefined && attached.size > data.requiredCount) {\n        ctx.addIssue({\n          code: 'custom',\n          message: 'Cannot attach more vendors than requiredCount',\n          path: ['vendorIds'],\n        });\n      }\n      if (data.saveAsDraft) {\n        return;\n      }\n      const result = MarketplaceJobListingBodySchema.safeParse(data);\n      if (!result.success) {\n        ctx.addIssue({\n          code: 'custom',\n          message: result.error.issues.map((issue) => issue.message).join('; '),\n        });\n      }\n    });\n\nexport const UpdateMarketplaceJobListingRequestSchema =\n  MarketplaceJobListingBodyFieldsSchema.partial().superRefine(jobListingRequiredDateRefine);\n\nexport const ListMarketplaceJobListingsQuerySchema = z.object({\n  ...PaginationParamsSchema.shape,\n  location: z.enum(JobLocation).optional(),\n  /** Case-insensitive match on listing title, role, linked event title, or host business name */\n  search: z.string().trim().min(2).max(100).optional(),\n  /** Comma-separated role slugs, e.g. `camera-operator,sound-engineer` */\n  roles: z.string().trim().min(1).max(500).optional(),\n  requiredDateFrom: z.string().optional(),\n  requiredDateTo: z.string().optional(),\n  minCompensation: z.coerce.number().int().min(0).optional(),\n  maxCompensation: z.coerce.number().int().min(0).optional(),\n  compensationTier: z.enum(JobListingCompensationTier).optional(),\n  /** When true, only listings whose requiredDate falls on a day the authenticated vendor marked available */\n  matchMyAvailability: z\n    .enum(['true', 'false'])\n    .optional()\n    .transform((value) => value === 'true'),\n});\n\n/** `GET /marketplace/job-listings/mine` (host) */\nexport const ListHostMarketplaceJobListingsQuerySchema = z.object({\n  ...PaginationParamsSchema.shape,\n  state: z.enum(JobListingState).optional(),\n  /** Case-insensitive match on listing title, role, or linked event title */\n  search: z.string().trim().min(2).max(100).optional(),\n});\n\n/** Required persisted fields before a DRAFT job listing can be published */\nexport const PublishReadyJobListingSchema = PublishableJobListingBodySchema.superRefine(\n  (data, ctx) => {\n    if (data.eventId) {\n      return;\n    }\n    const standaloneTitle = data.eventTitle?.trim() || data.title?.trim();\n    if (!standaloneTitle) {\n      ctx.addIssue({\n        code: 'custom',\n        message: 'eventTitle is required for standalone job listings',\n        path: ['eventTitle'],\n      });\n    }\n  },\n);\n\n/** `POST /marketplace/job-listings/:id/publish` (host owner) */\nexport const PublishMarketplaceJobListingResponseSchema = z.object({\n  id: z.uuid(),\n  state: z.literal('OPEN'),\n});\n\nexport const MarketplaceJobListingResponseSchema = z.object({\n  id: z.uuid(),\n  hostProfileId: z.uuid(),\n  eventId: z.uuid().nullable(),\n  /** Resolved display title — linked events use the current Event title. */\n  title: z.string(),\n  eventTitle: z.string().nullable(),\n  notes: z.string().nullable(),\n  description: z.string(),\n  responsibilities: z.string(),\n  requirements: z.string(),\n  role: z.string(),\n  requiredCount: z.number().int().min(1),\n  /** UTC instant (Event `scheduledStart` analogue). */\n  requiredDate: z.string().nullable(),\n  /** Wall-clock string, no offset (Event `scheduledStartLocal` analogue). */\n  requiredDateLocal: z.string().nullable(),\n  timezone: z.string().nullable(),\n  estimatedDurationMinutes: z.number().int().nullable(),\n  location: z.enum(JobLocation),\n  /** Host-set compensation for the listing (MoneyDto, MONEY_MULTI_CURRENCY.md §4). */\n  compensation: MoneySchema.nullable(),\n  attachments: z.unknown().nullable(),\n  state: z.enum(JobListingState),\n  proposalCount: z.number().int(),\n  cancelledAt: z.string().nullable(),\n  cancelledReason: z.string().nullable(),\n  createdAt: z.string(),\n  updatedAt: z.string(),\n});\n\n/** `POST /marketplace/job-listings/:id/cancel` (host owner) — mirrors HostEventCancelResponseSchema shape */\nexport const CancelMarketplaceJobListingRequestSchema = z.object({\n  reason: z.string().trim().min(5).max(500).optional(),\n});\n\nexport const CancelMarketplaceJobListingResponseSchema = z.object({\n  id: z.uuid(),\n  state: z.literal('CANCELLED'),\n  cancelledAt: z.iso.datetime().nullable(),\n});\n\n/**\n * `POST /marketplace/job-listings/:id/close` (host owner) —\n * pause new applications (`OPEN` → `SUSPENDED`). Pending IoIs are kept.\n */\nexport const CloseMarketplaceJobListingResponseSchema = z.object({\n  id: z.uuid(),\n  state: z.literal(JobListingState.SUSPENDED),\n});\n\n/**\n * `POST /marketplace/job-listings/:id/open` (host owner) —\n * resume applications (`SUSPENDED` | `CLOSED` → `OPEN`) when capacity remains.\n */\nexport const OpenMarketplaceJobListingResponseSchema = z.object({\n  id: z.uuid(),\n  state: z.literal(JobListingState.OPEN),\n});\n\n/** `POST .../indications-of-interest` */\nexport const SubmitMarketplaceIndicationOfInterestRequestSchema = z.object({\n  coverMessage: z.string().min(1).max(2000).optional(),\n  proposedAmount: z.coerce.number().nonnegative().optional(),\n  availabilityNotes: z.string().max(2000).optional(),\n  attachments: jsonRecordSchema.optional(),\n});\n\nexport const MarketplaceIndicationOfInterestResponseSchema = z.object({\n  id: z.uuid(),\n  jobListingId: z.uuid(),\n  vendorProfileId: z.uuid(),\n  coverMessage: z.string().nullable(),\n  /** Vendor-proposed compensation (MoneyDto — currency inherits from parent listing). */\n  proposedAmount: MoneySchema.nullable(),\n  availabilityNotes: z.string().nullable(),\n  state: z.enum(JobInterestState),\n  resultingBookingId: z.uuid().nullable(),\n  withdrawnAt: z.string().nullable(),\n  selectedAt: z.string().nullable(),\n  createdAt: z.string(),\n  updatedAt: z.string(),\n});\n\n/** Host review row — IoI plus vendor display label */\nexport const MarketplaceIndicationOfInterestHostItemSchema =\n  MarketplaceIndicationOfInterestResponseSchema.extend({\n    vendorCompanyName: z.string().nullable(),\n  });\n\nexport const HostIndicationOfInterestSortBy = {\n  CREATED_AT: 'createdAt',\n  UPDATED_AT: 'updatedAt',\n  PROPOSED_AMOUNT: 'proposedAmount',\n} as const;\n\nexport const SortOrder = {\n  ASC: 'asc',\n  DESC: 'desc',\n} as const;\n\n/** `GET /marketplace/job-listings/indications-of-interest/mine` (host inbox) */\nexport const ListHostMarketplaceIndicationsQuerySchema = z.object({\n  ...PaginationParamsSchema.shape,\n  jobListingId: z.uuid().optional(),\n  state: z.enum(JobInterestState).optional(),\n  /** Case-insensitive match on job listing title or linked event title */\n  search: z.string().trim().min(2).max(100).optional(),\n  sortBy: z.enum(HostIndicationOfInterestSortBy).default(HostIndicationOfInterestSortBy.CREATED_AT),\n  sortOrder: z.enum(SortOrder).default(SortOrder.DESC),\n});\n\n/** Host inbox row — IoI with applicant + parent job listing summary */\nexport const MarketplaceHostIndicationOfInterestInboxItemSchema =\n  MarketplaceIndicationOfInterestHostItemSchema.extend({\n    vendorDisplayName: z.string(),\n    vendorAvatarUrl: z.url().nullable(),\n    vendorServiceCategoryLabels: z.array(z.string()),\n    vendorEquipmentLabels: z.array(z.string()),\n    vendorIsVerified: z.boolean(),\n    jobListingTitle: z.string(),\n    jobListingRole: z.string(),\n    jobListingState: z.enum(JobListingState),\n    jobListingLocation: z.enum(JobLocation),\n    jobListingEventId: z.uuid().nullable(),\n    jobListingEventTitle: z.string().nullable(),\n  });\n\n/** `GET /marketplace/indications-of-interest/mine` (vendor applications inbox) */\nexport const ListVendorMarketplaceIndicationsQuerySchema = z.object({\n  ...PaginationParamsSchema.shape,\n  jobListingId: z.uuid().optional(),\n  state: z.enum(JobInterestState).optional(),\n  /** Case-insensitive match on job listing title or linked event title */\n  search: z.string().trim().min(2).max(100).optional(),\n  sortBy: z.enum(HostIndicationOfInterestSortBy).default(HostIndicationOfInterestSortBy.CREATED_AT),\n  sortOrder: z.enum(SortOrder).default(SortOrder.DESC),\n});\n\n/** Vendor applications inbox row — IoI with parent job listing summary */\nexport const MarketplaceVendorIndicationOfInterestInboxItemSchema =\n  MarketplaceIndicationOfInterestResponseSchema.extend({\n    hostBusinessName: z.string().nullable(),\n    jobListingTitle: z.string(),\n    jobListingRole: z.string(),\n    jobListingState: z.enum(JobListingState),\n    jobListingLocation: z.enum(JobLocation),\n    jobListingEventId: z.uuid().nullable(),\n    jobListingEventTitle: z.string().nullable(),\n    jobListingRequiredDate: z.string().nullable(),\n    jobListingCompensation: MoneySchema.nullable(),\n  });\n","export const MessageDeliveryStatus = {\n  SENT: 'SENT',\n  DELIVERED: 'DELIVERED',\n  READ: 'READ',\n} as const;\nexport type MessageDeliveryStatus =\n  (typeof MessageDeliveryStatus)[keyof typeof MessageDeliveryStatus];\n","import { z } from 'zod';\nimport { BookingState } from './booking.enums';\nimport { MessageDeliveryStatus } from './thread.enums';\nimport { PaginationParamsSchema, PaginationResponseSchema } from '../common/common.schemas';\n\nexport const MarketplaceHiringThreadSchema = z.object({\n  id: z.uuid(),\n  /** Null when the conversation started before a booking existed. */\n  bookingId: z.uuid().nullable(),\n  hostProfileId: z.uuid(),\n  vendorProfileId: z.uuid(),\n  createdAt: z.string(),\n  updatedAt: z.string(),\n});\n\n/**\n * `POST /marketplace/threads` — host or vendor opens (or reuses) a\n * conversation with the other party. No booking required.\n * Pass exactly one of `vendorProfileId` (host starting) or\n * `hostProfileId` (vendor starting).\n */\nexport const StartMarketplaceHiringThreadRequestSchema = z\n  .object({\n    vendorProfileId: z.uuid().optional(),\n    hostProfileId: z.uuid().optional(),\n  })\n  .superRefine((data, ctx) => {\n    const hasVendor = Boolean(data.vendorProfileId);\n    const hasHost = Boolean(data.hostProfileId);\n    if (hasVendor === hasHost) {\n      ctx.addIssue({\n        code: 'custom',\n        message: 'Pass exactly one of vendorProfileId or hostProfileId',\n        path: ['vendorProfileId'],\n      });\n    }\n  });\n\n/** Original upload name (sanitized server-side). Always present on API responses. */\nexport const MarketplaceHiringThreadAttachmentFileNameSchema = z.string().trim().min(1).max(255);\n\nexport const MarketplaceHiringThreadPendingAttachmentSchema = z.object({\n  url: z.string().url(),\n  /** Storage key from the upload response — used for pre-send delete. */\n  key: z.string().min(1),\n  mimeType: z.string().min(1).max(120),\n  sizeBytes: z.number().int().positive(),\n  fileName: MarketplaceHiringThreadAttachmentFileNameSchema,\n});\n\nexport const MarketplaceHiringMessageAttachmentSchema = z.object({\n  id: z.uuid(),\n  url: z.string(),\n  mimeType: z.string(),\n  sizeBytes: z.number().int(),\n  fileName: MarketplaceHiringThreadAttachmentFileNameSchema,\n  createdAt: z.string(),\n});\n\nexport const MarketplaceHiringMessageSchema = z.object({\n  id: z.uuid(),\n  threadId: z.uuid(),\n  senderUserId: z.uuid(),\n  body: z.string(),\n  sentAt: z.string(),\n  deliveryStatus: z.enum(MessageDeliveryStatus),\n  readAt: z.string().nullable(),\n  attachments: z.array(MarketplaceHiringMessageAttachmentSchema),\n});\n\nexport const ListMarketplaceHiringThreadMessagesQuerySchema = PaginationParamsSchema;\n\nexport const ListMarketplaceHiringThreadMessagesResponseSchema = z.object({\n  messages: z.array(MarketplaceHiringMessageSchema),\n  ...PaginationResponseSchema.shape,\n});\n\nexport const GetMarketplaceHiringThreadResponseSchema = z.object({\n  thread: MarketplaceHiringThreadSchema,\n  messages: z.array(MarketplaceHiringMessageSchema),\n  ...PaginationResponseSchema.shape,\n});\n\nexport const PostMarketplaceHiringThreadMessageRequestSchema = z\n  .object({\n    /** Optional when at least one attachment is present (attachment-only send). */\n    body: z.string().trim().max(5000).optional().default(''),\n    attachments: z.array(MarketplaceHiringThreadPendingAttachmentSchema).max(10).optional(),\n  })\n  .refine((value) => value.body.length > 0 || (value.attachments?.length ?? 0) > 0, {\n    message: 'Either a non-empty body or at least one attachment is required',\n    path: ['body'],\n  });\n\nexport const PostMarketplaceHiringThreadMessageResponseSchema = z.object({\n  message: MarketplaceHiringMessageSchema,\n});\n\n/**\n * Multipart upload for hiring-thread chat (images, PDF, Word, MP4).\n * Prefer `POST /marketplace/threads/:threadId/attachments`.\n * Legacy: `POST /marketplace/bookings/:bookingId/thread/attachments`.\n * FE uploads first, then posts `{ url, key, mimeType, sizeBytes, fileName }`\n * via WS `hiring_thread.message.post` (body optional when attachments present).\n */\nexport const UploadMarketplaceHiringThreadAttachmentResponseSchema = z.object({\n  url: z.url(),\n  key: z.string().min(1),\n  mimeType: z.string().min(1).max(120),\n  sizeBytes: z.number().int().positive(),\n  fileName: MarketplaceHiringThreadAttachmentFileNameSchema,\n});\n\nexport const DeleteMarketplaceHiringThreadPendingAttachmentRequestSchema = z.object({\n  key: z.string().min(1),\n});\n\nexport const DeleteMarketplaceHiringThreadMessageAttachmentResponseSchema = z.object({\n  messageId: z.uuid(),\n  messageDeleted: z.boolean(),\n  message: MarketplaceHiringMessageSchema.nullable(),\n});\n\nexport const MarkMarketplaceHiringThreadReadRequestSchema = z.object({\n  upToMessageId: z.uuid().optional(),\n});\n\nexport const MarkMarketplaceHiringThreadReadResponseSchema = z.object({\n  markedCount: z.number().int().nonnegative(),\n});\n\n/** Inbox row for host/vendor — one conversation (booking optional). */\nexport const MarketplaceHiringThreadInboxItemSchema = z.object({\n  threadId: z.uuid(),\n  bookingId: z.uuid().nullable(),\n  title: z.string(),\n  lastMessagePreview: z.string().nullable(),\n  lastMessageAt: z.string().nullable(),\n  lastSenderUserId: z.uuid().nullable(),\n  lastSenderDisplayName: z.string().nullable(),\n  unreadCount: z.number().int().nonnegative(),\n  bookingState: z.enum(BookingState).nullable(),\n  vendorProfileId: z.uuid(),\n  vendorDisplayName: z.string(),\n  vendorAvatarUrl: z.string().nullable(),\n  hostProfileId: z.uuid(),\n  hostDisplayName: z.string(),\n  hostAvatarUrl: z.string().nullable(),\n  counterpartyDisplayName: z.string(),\n  counterpartyAvatarUrl: z.string().nullable(),\n  counterpartyRole: z.enum(['HOST', 'VENDOR']),\n});\n\nexport const ListMarketplaceHiringThreadsResponseSchema = z.object({\n  items: z.array(MarketplaceHiringThreadInboxItemSchema),\n  ...PaginationResponseSchema.shape,\n});\n","import { z } from 'zod';\nimport { MoneySchema, PaginationParamsSchema, PaginationResponseSchema } from '../common';\n\n/** Crew dashboard \"My Jobs\" tabs — mirrors host `GET /host/events?tab=`. */\nexport const VendorJobsTabSchema = z.enum([\n  'APPLICATIONS',\n  'UPCOMING',\n  'LIVE',\n  'COMPLETED',\n  'JOB_INVITES',\n]);\n\n/**\n * Unified display status for the My Jobs table.\n * Mapped from IoI state (Applications) or booking state (other tabs).\n */\nexport const VendorJobRowStatusSchema = z.enum([\n  'PENDING',\n  'SHORTLISTED',\n  'SELECTED',\n  'WITHDRAWN',\n  'REJECTED',\n  'CANCELLED',\n  'INVITED',\n  'NEGOTIATING',\n  'CONFIRMED',\n  'LIVE',\n  'COMPLETED',\n  'DISPUTED',\n]);\n\nexport const VendorJobRowKindSchema = z.enum(['IOI', 'BOOKING', 'ASSIGNMENT']);\n\n/** `GET /marketplace/vendor/jobs` */\nexport const ListVendorJobsQuerySchema = z.object({\n  tab: VendorJobsTabSchema,\n  /** Case-insensitive match on event / job listing title */\n  search: z.string().trim().min(2).max(100).optional(),\n  ...PaginationParamsSchema.shape,\n});\n\n/** One row in the My Jobs table (Applications / Upcoming / Live / …). */\nexport const VendorJobRowSchema = z.object({\n  id: z.uuid(),\n  kind: VendorJobRowKindSchema,\n  eventName: z.string(),\n  date: z.string().nullable(),\n  role: z.string(),\n  payment: MoneySchema.nullable(),\n  status: VendorJobRowStatusSchema,\n  /** Raw IoI, booking, or assignment state for FE debugging / detail navigation */\n  statusCode: z.string(),\n  jobListingId: z.uuid().nullable(),\n  bookingId: z.uuid().nullable(),\n  ioiId: z.uuid().nullable(),\n  eventId: z.uuid().nullable(),\n  /** Present when kind=ASSIGNMENT */\n  assignmentId: z.uuid().nullable().optional(),\n});\n\nexport const VendorJobsTabResponseSchema = z.object({\n  tab: VendorJobsTabSchema,\n  items: z.array(VendorJobRowSchema),\n  ...PaginationResponseSchema.shape,\n});\n\n/** `GET /marketplace/vendor/jobs/counts` — tab badge numbers */\nexport const VendorJobsTabCountsResponseSchema = z.object({\n  applications: z.number().int().nonnegative(),\n  upcoming: z.number().int().nonnegative(),\n  live: z.number().int().nonnegative(),\n  completed: z.number().int().nonnegative(),\n  jobInvites: z.number().int().nonnegative(),\n});\n","import { z } from 'zod';\nimport { AuditActorRoleSchema } from '../common/audit.enums';\nimport { PaginationResponseSchema } from '../common/common.schemas';\nimport { BookingAuditAction } from './booking.enums';\n\nexport const BookingAuditActorSchema = z.object({\n  id: z.string(),\n  role: AuditActorRoleSchema,\n});\n\n/** Optional request metadata copied into admin `details` when present. */\nexport const BookingAuditRequestMetadataSchema = z.object({\n  reason: z.string().optional(),\n  ipAddress: z.string().optional(),\n  userAgent: z.string().optional(),\n  traceId: z.string().optional(),\n});\n\n/** Snapshot blob stored in audit `before` / `after` JSON columns. */\nexport const BookingAuditSnapshotSchema = z.record(z.string(), z.unknown());\n\n/**\n * STATE_CHANGED, TERMS_MODIFIED, and booking lifecycle actions surface\n * `beforeState` / `afterState` via admin formatters.\n */\nexport const BookingAuditStateTransitionDetailsSchema = BookingAuditRequestMetadataSchema.extend({\n  beforeState: BookingAuditSnapshotSchema.optional(),\n  afterState: BookingAuditSnapshotSchema.optional(),\n});\n\nexport const BookingAuditMessageSentDetailsSchema = BookingAuditRequestMetadataSchema.extend({\n  messageId: z.string(),\n  bodyPreview: z.string(),\n  attachmentCount: z.number().int().nonnegative().optional(),\n});\n\nexport const BookingAuditAttachmentAddedDetailsSchema = BookingAuditRequestMetadataSchema.extend({\n  messageId: z.string(),\n  attachmentId: z.string(),\n  url: z.string(),\n  mimeType: z.string(),\n  sizeBytes: z.number().int().nonnegative(),\n});\n\nconst auditEntryBase = {\n  timestamp: z.string().datetime(),\n  actor: BookingAuditActorSchema,\n};\n\nfunction stateTransitionAuditEntry<\n  A extends (typeof BookingAuditAction)[keyof typeof BookingAuditAction],\n>(action: A) {\n  return z.object({\n    ...auditEntryBase,\n    action: z.literal(action),\n    details: BookingAuditStateTransitionDetailsSchema,\n  });\n}\n\n/** One audit row in `GET /admin/bookings/:id/audit` — discriminated by `action`. */\nexport const AdminBookingAuditEntrySchema = z.discriminatedUnion('action', [\n  stateTransitionAuditEntry(BookingAuditAction.STATE_CHANGED),\n  stateTransitionAuditEntry(BookingAuditAction.TERMS_MODIFIED),\n  stateTransitionAuditEntry(BookingAuditAction.BOOKING_CREATED),\n  stateTransitionAuditEntry(BookingAuditAction.BOOKING_COMPLETED),\n  stateTransitionAuditEntry(BookingAuditAction.BOOKING_CANCELLED),\n  stateTransitionAuditEntry(BookingAuditAction.BOOKING_ACCEPTED),\n  stateTransitionAuditEntry(BookingAuditAction.BOOKING_REJECTED),\n  z.object({\n    ...auditEntryBase,\n    action: z.literal(BookingAuditAction.MESSAGE_SENT),\n    details: BookingAuditMessageSentDetailsSchema,\n  }),\n  z.object({\n    ...auditEntryBase,\n    action: z.literal(BookingAuditAction.ATTACHMENT_ADDED),\n    details: BookingAuditAttachmentAddedDetailsSchema,\n  }),\n]);\n\nexport const AdminBookingAuditResponseSchema = z.object({\n  items: z.array(AdminBookingAuditEntrySchema),\n  ...PaginationResponseSchema.shape,\n});\n","export const EventCrewAssignmentState = {\n  DRAFT: 'DRAFT',\n  INVITED: 'INVITED',\n  ACCEPTED: 'ACCEPTED',\n  REJECTED: 'REJECTED',\n  CANCELLED: 'CANCELLED',\n  EXPIRED: 'EXPIRED',\n} as const;\nexport type EventCrewAssignmentState =\n  (typeof EventCrewAssignmentState)[keyof typeof EventCrewAssignmentState];\n","import { z } from 'zod';\nimport { MoneySchema } from '../common';\nimport { JobLocation } from './hiring.enums';\nimport { EventCrewAssignmentState } from './crew-assignment.enums';\n\n/** External-hire schedule. Omit all three to keep current (event-linked) behavior. */\nconst ExternalHireScheduleFields = {\n  /** Wall-clock date + time in `timezone` (e.g. 2026-09-20T18:00:00). */\n  scheduledStartLocal: z.iso.datetime({ local: true, offset: false }).optional(),\n  /** IANA timezone for `scheduledStartLocal` (e.g. Africa/Lagos). */\n  timezone: z.string().trim().min(1).max(100).optional(),\n  /** Gig length in minutes. */\n  durationMinutes: z.coerce.number().int().min(5).max(720).optional(),\n};\n\nconst refineExternalHireScheduleTogether = (\n  data: {\n    scheduledStartLocal?: string | undefined;\n    timezone?: string | undefined;\n    durationMinutes?: number | undefined;\n  },\n  ctx: z.RefinementCtx,\n) => {\n  const fields = {\n    scheduledStartLocal: data.scheduledStartLocal !== undefined,\n    timezone: data.timezone !== undefined,\n    durationMinutes: data.durationMinutes !== undefined,\n  };\n  const provided = Object.values(fields).filter(Boolean).length;\n  if (provided > 0 && provided < 3) {\n    const missing = (Object.keys(fields) as Array<keyof typeof fields>).filter(\n      (key) => !fields[key],\n    );\n    ctx.addIssue({\n      code: 'custom',\n      message:\n        'timezone, scheduledStartLocal, and durationMinutes must be provided together ' +\n        `(missing: ${missing.join(', ')}). Partial schedule edits are not supported; send all three fields.`,\n      path: ['scheduledStartLocal'],\n    });\n  }\n};\n\nconst RoleFieldsSchema = z.object({\n  role: z.string().trim().min(1).max(120),\n  responsibilities: z.string().trim().min(1).max(5000),\n  requirements: z.string().trim().min(1).max(5000),\n  compensation: MoneySchema,\n  location: z.enum(JobLocation),\n  notes: z.string().trim().max(2000).optional(),\n  ...ExternalHireScheduleFields,\n});\n\n/** `POST /host/events/:eventId/crew-assignments` */\nexport const CreateEventCrewAssignmentRequestSchema = RoleFieldsSchema.extend({\n  vendorId: z.uuid(),\n}).superRefine(refineExternalHireScheduleTogether);\n\n/**\n * `POST /host/crew-assignments/external` — Direct Hire with no LivDot event.\n * Title + full schedule are required (there is no event to inherit from).\n */\nexport const CreateExternalEventCrewAssignmentRequestSchema = RoleFieldsSchema.extend({\n  vendorId: z.uuid(),\n  /** Display name for the off-platform / external gig. */\n  title: z.string().trim().min(1).max(200),\n  scheduledStartLocal: z.iso.datetime({ local: true, offset: false }),\n  timezone: z.string().trim().min(1).max(100),\n  durationMinutes: z.coerce.number().int().min(5).max(720),\n});\n\n/** `PATCH /host/events/:eventId/crew-assignments/:id` */\nexport const UpdateEventCrewAssignmentRequestSchema = RoleFieldsSchema.partial()\n  .refine((body) => Object.keys(body).length > 0, {\n    message: 'At least one field is required',\n  })\n  .superRefine(refineExternalHireScheduleTogether);\n\n/** `POST /host/events/:eventId/crew-assignments/:id/replace` */\nexport const ReplaceEventCrewAssignmentRequestSchema = z\n  .object({\n    vendorId: z.uuid(),\n    role: z.string().trim().min(1).max(120).optional(),\n    responsibilities: z.string().trim().min(1).max(5000).optional(),\n    requirements: z.string().trim().min(1).max(5000).optional(),\n    compensation: MoneySchema.optional(),\n    location: z.enum(JobLocation).optional(),\n    notes: z.string().trim().max(2000).optional(),\n    ...ExternalHireScheduleFields,\n  })\n  .superRefine(refineExternalHireScheduleTogether);\n\nexport const EventCrewAssignmentVendorSummarySchema = z.object({\n  id: z.uuid(),\n  companyName: z.string(),\n  displayName: z.string().nullable(),\n  avatarUrl: z.string().nullable(),\n  vendorIsVerified: z.boolean(),\n});\n\nexport const EventCrewAssignmentResponseSchema = z.object({\n  id: z.uuid(),\n  /** Null for external Direct Hire (no LivDot event). */\n  eventId: z.uuid().nullable(),\n  hostId: z.uuid(),\n  vendorId: z.uuid(),\n  role: z.string(),\n  responsibilities: z.string(),\n  requirements: z.string(),\n  compensation: MoneySchema,\n  location: z.enum(JobLocation),\n  notes: z.string().nullable(),\n  state: z.enum(EventCrewAssignmentState),\n  bookingId: z.uuid().nullable(),\n  invitedAt: z.iso.datetime().nullable(),\n  respondedAt: z.iso.datetime().nullable(),\n  rejectReason: z.string().nullable(),\n  createdAt: z.iso.datetime(),\n  updatedAt: z.iso.datetime(),\n  vendor: EventCrewAssignmentVendorSummarySchema.optional(),\n  /** LivDot event title, or the external-hire `title` when eventId is null. */\n  eventTitle: z.string().optional(),\n  eventScheduledStartLocal: z.iso.datetime({ local: true, offset: false }).nullable().optional(),\n  /** Set when the invite used an external-hire schedule; otherwise null. */\n  scheduledStartLocal: z.iso.datetime({ local: true, offset: false }).nullable().optional(),\n  timezone: z.string().nullable().optional(),\n  durationMinutes: z.number().int().nullable().optional(),\n});\n\nexport const ListEventCrewAssignmentsResponseSchema = z.object({\n  items: z.array(EventCrewAssignmentResponseSchema),\n});\n\n/**\n * `GET /host/events/:eventId/crew-assignments`\n * Optional Manage Production Team filters.\n *\n * Tab mapping (FE):\n * - All → omit `state`\n * - Confirmed → `state=ACCEPTED`\n * - Pending → `state=INVITED` or `state=INVITED,DRAFT`\n * - Cancelled → `state=CANCELLED` or `state=CANCELLED,REJECTED`\n */\nexport const ListEventCrewAssignmentsQuerySchema = z.object({\n  /** Case-insensitive match on vendor display name or company name. */\n  search: z.string().trim().min(1).max(100).optional(),\n  /** Case-insensitive exact match on assignment role. */\n  role: z.string().trim().min(1).max(120).optional(),\n  /**\n   * Invitation status filter (`EventCrewAssignmentState`).\n   * Accepts one value or comma-separated values (e.g. `INVITED,DRAFT`).\n   */\n  state: z.preprocess(\n    (raw) => {\n      if (raw == null || raw === '') return undefined;\n      if (Array.isArray(raw)) {\n        return raw.map((v) => String(v).trim()).filter(Boolean);\n      }\n      return String(raw)\n        .split(',')\n        .map((part) => part.trim())\n        .filter(Boolean);\n    },\n    z.array(z.enum(EventCrewAssignmentState)).min(1).optional(),\n  ),\n});\n\n/** `POST /marketplace/crew-assignments/:id/reject` */\nexport const RejectEventCrewAssignmentRequestSchema = z.object({\n  reason: z.string().trim().min(5).max(500),\n});\n\nexport const AcceptEventCrewAssignmentResponseSchema = z.object({\n  assignment: EventCrewAssignmentResponseSchema,\n  bookingId: z.uuid(),\n});\n\nexport const ReplaceEventCrewAssignmentResponseSchema = z.object({\n  assignment: EventCrewAssignmentResponseSchema,\n  replacedBookingId: z.uuid(),\n});\n"]}