{"version":3,"sources":["../src/booking/booking-state-machine.ts","../src/booking/booking.schemas.ts","../src/booking/hiring.enums.ts","../src/booking/job-text.schemas.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","JOB_TEXT_ITEM_MAX_LENGTH","JOB_TEXT_ITEMS_MAX","JobTextItemsSchema","JobRequirementsSchema","JobResponsibilitiesSchema","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-YACI2PDC.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';\n\nexport const JOB_TEXT_ITEM_MAX_LENGTH = 500;\nexport const JOB_TEXT_ITEMS_MAX = 20;\n\n/** A job's requirements or responsibilities: one sentence per item. */\nexport const JobTextItemsSchema = z\n  .array(z.string().trim().min(1).max(JOB_TEXT_ITEM_MAX_LENGTH))\n  .max(JOB_TEXT_ITEMS_MAX);\n\n/** Required on job listings and crew assignments: at least one item. */\nexport const JobRequirementsSchema = JobTextItemsSchema.min(1);\n\n/** Optional; omitted means no responsibilities. */\nexport const JobResponsibilitiesSchema = JobTextItemsSchema.default([]);\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';\nimport { JobRequirementsSchema, JobTextItemsSchema } from './job-text.schemas';\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  /** Empty when the booking has no structured role payload. */\n  responsibilities: z.array(z.string()),\n  requirements: z.array(z.string()),\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  requirements: JobRequirementsSchema,\n  /** Optional. No default here: these fields are reused by PATCH. */\n  responsibilities: JobTextItemsSchema.optional(),\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  requirements: JobRequirementsSchema,\n  /** Optional. No default here: these fields are reused by PATCH. */\n  responsibilities: JobTextItemsSchema.optional(),\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.array(z.string()),\n  requirements: z.array(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';\nimport {\n  JobRequirementsSchema,\n  JobResponsibilitiesSchema,\n  JobTextItemsSchema,\n} from './job-text.schemas';\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  /** Required. The booking's description is built from these. */\n  requirements: JobRequirementsSchema,\n  /** Optional; defaults to an empty list. */\n  responsibilities: JobResponsibilitiesSchema,\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  // No default on PATCH: an omitted list must not overwrite the stored one.\n  .extend({ responsibilities: JobTextItemsSchema.optional() })\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    requirements: JobRequirementsSchema.optional(),\n    responsibilities: JobTextItemsSchema.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.array(z.string()),\n  requirements: z.array(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"]}