@livdot-tech/contracts 1.5.8 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/booking/booking.enums.ts","../src/booking/booking-state-machine.ts","../src/booking/booking.schemas.ts","../src/booking/hiring.enums.ts","../src/booking/hiring.schemas.ts"],"names":["BookingOrigin","BookingState","JobListingState","IoiState","BookingPaymentStatus","BookingTransitionActor","BOOKING_TERMINAL_STATES","DISPUTE_EXCLUDED_FROM","VALID_BOOKING_TRANSITIONS","BOOKING_TRANSITION_ACTORS","BOOKING_TRANSITION_TARGETS_REQUIRING_REASON","bookingTransitionKey","from","to","getAllowedBookingTargetStates","base","isValidBookingTransition","getBookingTransitionActors","canActorPerformBookingTransition","actor","bookingTransitionRequiresReason","_from","CreateBookingRequestSchema","z","ConfirmBookingRequestSchema","BookingResponseSchema","CreateJobListingRequestSchema","JobListingResponseSchema","SubmitIndicationOfInterestRequestSchema","IndicationOfInterestResponseSchema","JobLocation","jsonRecordSchema","CreateMarketplaceBookingRequestSchema","MarketplaceBookingResponseSchema","CreateMarketplaceBookingResponseSchema","bookingTransitionReasonSchema","TransitionMarketplaceBookingRequestSchema","data","ctx","TransitionMarketplaceBookingResponseSchema","MarketplaceJobListingBodySchema","CreateMarketplaceJobListingRequestSchema","UpdateMarketplaceJobListingRequestSchema","ListMarketplaceJobListingsQuerySchema","PaginationParamsSchema","MarketplaceJobListingResponseSchema","SubmitMarketplaceIndicationOfInterestRequestSchema","MarketplaceIndicationOfInterestResponseSchema","JobInterestState","MarketplaceIndicationOfInterestHostItemSchema"],"mappings":"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","file":"chunk-JXM7K5X5.js","sourcesContent":["export const BookingOrigin = {\n EVENT_DIRECT: 'EVENT_DIRECT',\n MARKETPLACE_DIRECT: 'MARKETPLACE_DIRECT',\n JOB_LISTING: 'JOB_LISTING',\n} as const;\nexport type BookingOrigin = (typeof BookingOrigin)[keyof typeof BookingOrigin];\n\nexport const BookingState = {\n REQUESTED: 'REQUESTED',\n AWAITING_PRODUCER_RESPONSE: 'AWAITING_PRODUCER_RESPONSE',\n IN_NEGOTIATION: 'IN_NEGOTIATION',\n ACCEPTED: 'ACCEPTED',\n REJECTED: 'REJECTED',\n CANCELLED: 'CANCELLED',\n AWAITING_ESCROW_FUNDING: 'AWAITING_ESCROW_FUNDING',\n CONFIRMED: 'CONFIRMED',\n IN_PROGRESS: 'IN_PROGRESS',\n SERVICE_COMPLETED: 'SERVICE_COMPLETED',\n IN_DISPUTE: 'IN_DISPUTE',\n CLOSED: 'CLOSED',\n} as const;\nexport type BookingState = (typeof BookingState)[keyof typeof BookingState];\n\nexport const JobListingState = {\n OPEN: 'OPEN',\n CLOSED: 'CLOSED',\n SUSPENDED: 'SUSPENDED',\n} as const;\nexport type JobListingState = (typeof JobListingState)[keyof typeof JobListingState];\n\nexport const IoiState = {\n OPEN: 'OPEN',\n WITHDRAWN: 'WITHDRAWN',\n SELECTED: 'SELECTED',\n REJECTED: 'REJECTED',\n} as const;\nexport type IoiState = (typeof IoiState)[keyof typeof IoiState];\n\n/**\n * Enum for booking payment status.\n */\nexport const BookingPaymentStatus = {\n PENDING: 'PENDING',\n ESCROW_FUNDED: 'ESCROW_FUNDED',\n RELEASED: 'RELEASED',\n REFUNDED: 'REFUNDED',\n FAILED: 'FAILED',\n} as const;\nexport type BookingPaymentStatus = (typeof BookingPaymentStatus)[keyof typeof BookingPaymentStatus];\n\n/** Actor that may trigger a booking state transition (RBAC). */\nexport const BookingTransitionActor = {\n HOST: 'HOST',\n PRODUCER: 'PRODUCER',\n ADMIN: 'ADMIN',\n SYSTEM: 'SYSTEM',\n} as const;\nexport type BookingTransitionActor =\n (typeof BookingTransitionActor)[keyof typeof BookingTransitionActor];\n","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.REQUESTED]: [BookingState.AWAITING_PRODUCER_RESPONSE, BookingState.CANCELLED],\n [BookingState.AWAITING_PRODUCER_RESPONSE]: [\n BookingState.IN_NEGOTIATION,\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]: [BookingState.IN_PROGRESS],\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.REQUESTED}->${BookingState.AWAITING_PRODUCER_RESPONSE}`]: [\n BookingTransitionActor.HOST,\n BookingTransitionActor.SYSTEM,\n ],\n [`${BookingState.REQUESTED}->${BookingState.CANCELLED}`]: [BookingTransitionActor.HOST],\n [`${BookingState.AWAITING_PRODUCER_RESPONSE}->${BookingState.IN_NEGOTIATION}`]: [\n BookingTransitionActor.PRODUCER,\n ],\n [`${BookingState.AWAITING_PRODUCER_RESPONSE}->${BookingState.REJECTED}`]: [\n BookingTransitionActor.PRODUCER,\n ],\n [`${BookingState.AWAITING_PRODUCER_RESPONSE}->${BookingState.CANCELLED}`]: [\n BookingTransitionActor.HOST,\n BookingTransitionActor.PRODUCER,\n ],\n [`${BookingState.IN_NEGOTIATION}->${BookingState.ACCEPTED}`]: [\n BookingTransitionActor.HOST,\n BookingTransitionActor.PRODUCER,\n ],\n [`${BookingState.IN_NEGOTIATION}->${BookingState.REJECTED}`]: [\n BookingTransitionActor.HOST,\n BookingTransitionActor.PRODUCER,\n ],\n [`${BookingState.IN_NEGOTIATION}->${BookingState.CANCELLED}`]: [\n BookingTransitionActor.HOST,\n BookingTransitionActor.PRODUCER,\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.PRODUCER,\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.ADMIN,\n ],\n [`${BookingState.CONFIRMED}->${BookingState.IN_PROGRESS}`]: [\n BookingTransitionActor.HOST,\n BookingTransitionActor.PRODUCER,\n BookingTransitionActor.ADMIN,\n ],\n [`${BookingState.IN_PROGRESS}->${BookingState.SERVICE_COMPLETED}`]: [\n BookingTransitionActor.PRODUCER,\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.PRODUCER];\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 IoiState,\n BookingPaymentStatus,\n} from './booking.enums';\n\nexport const CreateBookingRequestSchema = z.object({\n origin: z.enum(BookingOrigin),\n eventId: z.uuid().optional(),\n producerId: z.uuid(),\n agreedAmount: z.number().min(0),\n serviceDetails: z\n .object({\n requiredDate: z.iso.datetime(),\n location: z.string(),\n eventType: z.string(),\n estimatedDurationHrs: z.number(),\n notes: z.string().optional(),\n })\n .optional(),\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 producerId: 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 hostRating: z.number().optional(),\n hostReview: z.string().optional(),\n producerRating: z.number().optional(),\n producerReview: z.string().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 estimatedDurationHrs: z.number().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 estimatedDurationHrs: z.number().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\nexport const SubmitIndicationOfInterestRequestSchema = z.object({\n coverMessage: z.string().optional(),\n proposedAmount: z.number().min(0).optional(),\n availabilityNotes: z.string().optional(),\n});\n\nexport const IndicationOfInterestResponseSchema = z.object({\n id: z.uuid(),\n jobListingId: z.uuid(),\n producerProfileId: z.uuid(),\n coverMessage: z.string().optional(),\n proposedAmount: z.number().optional(),\n state: z.enum(IoiState),\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","import { z } from 'zod';\nimport { JobInterestState } from '../joblisting/listing.enum';\nimport { BookingOrigin, BookingState, JobListingState } from './booking.enums';\nimport { JobLocation } from './hiring.enums';\nimport { PaginationParamsSchema } from '../common';\n\nconst jsonRecordSchema = z.record(z.string(), z.unknown());\n\n/** `POST /marketplace/bookings` */\nexport const CreateMarketplaceBookingRequestSchema = z.object({\n producerId: z.uuid(),\n origin: z.enum(BookingOrigin),\n eventId: z.uuid().optional(),\n jobListingId: z.uuid().optional(),\n agreedAmount: z.coerce.number().nonnegative().optional(),\n scopeOfWork: z.string().max(5000).optional(),\n});\n\nexport const MarketplaceBookingResponseSchema = z.object({\n id: z.uuid(),\n eventId: z.uuid().nullable(),\n hostProfileId: z.uuid(),\n producerProfileId: z.uuid(),\n origin: z.enum(BookingOrigin),\n jobListingId: z.uuid().nullable(),\n sourceIoiId: z.uuid().nullable(),\n state: z.enum(BookingState),\n createdAt: z.string(),\n updatedAt: z.string(),\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, producer, 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\nconst MarketplaceJobListingBodySchema = z.object({\n title: z.string().min(1).max(200),\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 requiredDate: z.iso.datetime().optional(),\n estimatedDurationHours: 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\n/** `POST /marketplace/job-listings` */\nexport const CreateMarketplaceJobListingRequestSchema = MarketplaceJobListingBodySchema;\n\nexport const UpdateMarketplaceJobListingRequestSchema = MarketplaceJobListingBodySchema.partial();\n\nexport const ListMarketplaceJobListingsQuerySchema = z.object({\n ...PaginationParamsSchema.shape,\n location: z.enum(JobLocation).optional(),\n});\n\nexport const MarketplaceJobListingResponseSchema = z.object({\n id: z.uuid(),\n hostProfileId: z.uuid(),\n eventId: z.uuid().nullable(),\n title: z.string(),\n notes: z.string().nullable(),\n description: z.string(),\n responsibilities: z.string(),\n requirements: z.string(),\n role: z.string(),\n requiredDate: z.string().nullable(),\n estimatedDurationHours: z.number().int().nullable(),\n location: z.enum(JobLocation),\n compensation: z.number().nullable(),\n attachments: z.unknown().nullable(),\n state: z.enum(JobListingState),\n proposalCount: z.number().int(),\n createdAt: z.string(),\n updatedAt: z.string(),\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 producerProfileId: z.uuid(),\n coverMessage: z.string().nullable(),\n proposedAmount: z.number().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 producer display label */\nexport const MarketplaceIndicationOfInterestHostItemSchema =\n MarketplaceIndicationOfInterestResponseSchema.extend({\n producerCompanyName: z.string().nullable(),\n });\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/errors/error-codes.ts"],"names":["ApiErrorCode"],"mappings":"AAIO,IAAMA,CAAAA,CAAe,CAE1B,mBAAA,CAAqB,0BAAA,CACrB,aAAA,CAAe,oBAAA,CACf,aAAA,CAAe,oBAAA,CACf,aAAA,CAAe,oBAAA,CACf,YAAA,CAAc,mBAAA,CACd,SAAA,CAAW,gBAAA,CACX,kBAAA,CAAoB,yBAAA,CACpB,oBAAA,CAAsB,2BAAA,CACtB,aAAA,CAAe,oBAAA,CAGf,cAAA,CAAgB,qBAAA,CAChB,sBAAA,CAAwB,6BAAA,CACxB,2BAAA,CAA6B,kCAAA,CAC7B,0BAAA,CAA4B,iCAAA,CAC5B,+BAAA,CAAiC,uCACjC,qBAAA,CAAuB,4BAAA,CACvB,wBAAA,CAA0B,sCAAA,CAC1B,eAAA,CAAiB,6BAAA,CACjB,iBAAA,CAAmB,wBAAA,CACnB,YAAA,CAAc,mBAAA,CAGd,eAAA,CAAiB,uBAAA,CACjB,mBAAA,CAAqB,2BAAA,CACrB,kBAAA,CAAoB,0BAAA,CACpB,eAAA,CAAiB,uBAAA,CACjB,WAAA,CAAa,mBAAA,CACb,8BAAA,CAAgC,gCAAA,CAChC,sBAAA,CAAwB,wBAAA,CACxB,yBAAA,CAA2B,2BAAA,CAC3B,oBAAA,CAAsB,sBAAA,CACtB,oBAAA,CAAsB,sBAAA,CAGtB,kBAAmB,2BAAA,CACnB,gCAAA,CAAkC,kCAAA,CAClC,oBAAA,CAAsB,8BAAA,CACtB,qBAAA,CAAuB,+BAAA,CACvB,sBAAA,CAAwB,gCAAA,CACxB,qBAAA,CAAuB,+BAAA,CACvB,kBAAA,CAAoB,4BAAA,CACpB,gCAAA,CAAkC,uBAAA,CAClC,gCAAA,CAAkC,uBAAA,CAGlC,iBAAA,CAAmB,0BAAA,CACnB,qBAAA,CAAuB,8BAAA,CACvB,mBAAA,CAAqB,4BAAA,CACrB,mBAAA,CAAqB,4BAAA,CACrB,8BAAA,CAAgC,gCAAA,CAChC,SAAA,CAAW,kBAAA,CAGX,iBAAA,CAAmB,2BAAA,CACnB,yBAAA,CAA2B,2BAAA,CAC3B,cAAA,CAAgB,wBAAA,CAChB,mBAAA,CAAqB,6BAAA,CACrB,aAAA,CAAe,uBAAA,CACf,cAAA,CAAgB,wBAAA,CAChB,cAAA,CAAgB,wBAAA,CAGhB,iBAAA,CAAmB,2BAAA,CACnB,sBAAA,CAAwB,gCAAA,CACxB,yBAAA,CAA2B,2BAAA,CAG3B,gBAAA,CAAkB,0BAAA,CAClB,kBAAA,CAAoB,4BAAA,CACpB,QAAA,CAAU,kBAAA,CACV,YAAA,CAAc,sBAAA,CACd,qBAAA,CAAuB,+BAAA,CACvB,mBAAA,CAAqB,6BACvB","file":"chunk-VGS23C2E.mjs","sourcesContent":["/**\n * Canonical machine-readable error codes for the LivDot platform.\n * These codes are mapped to string slugs used in ApiError.type URLs.\n */\nexport const ApiErrorCode = {\n // AUTH errors\n INVALID_CREDENTIALS: 'auth/invalid-credentials',\n TOKEN_EXPIRED: 'auth/token-expired',\n TOKEN_INVALID: 'auth/token-invalid',\n TOKEN_MISSING: 'auth/token-missing',\n UNAUTHORIZED: 'auth/unauthorized',\n FORBIDDEN: 'auth/forbidden',\n EMAIL_NOT_VERIFIED: 'auth/email-not-verified',\n EMAIL_ALREADY_EXISTS: 'auth/email-already-exists',\n COGNITO_ERROR: 'auth/cognito-error',\n\n // USER errors\n USER_NOT_FOUND: 'user/user-not-found',\n HOST_PROFILE_NOT_FOUND: 'user/host-profile-not-found',\n HOST_PROFILE_ALREADY_EXISTS: 'user/host-profile-already-exists',\n PRODUCER_PROFILE_NOT_FOUND: 'user/producer-profile-not-found',\n PRODUCER_PROFILE_ALREADY_EXISTS: 'user/producer-profile-already-exists',\n PRODUCER_NOT_VERIFIED: 'user/producer-not-verified',\n INVALID_STATE_TRANSITION: 'marketplace/invalid-state-transition',\n REASON_REQUIRED: 'marketplace/reason-required',\n ACCOUNT_SUSPENDED: 'user/account-suspended',\n KYC_REQUIRED: 'user/kyc-required',\n\n // EVENT errors\n EVENT_NOT_FOUND: 'event/event-not-found',\n EVENT_NOT_PUBLISHED: 'event/event-not-published',\n EVENT_ALREADY_LIVE: 'event/event-already-live',\n EVENT_CANCELLED: 'event/event-cancelled',\n EVENT_ENDED: 'event/event-ended',\n EVENT_STATE_TRANSITION_INVALID: 'event/state-transition-invalid',\n EVENT_PREFLIGHT_FAILED: 'event/preflight-failed',\n EVENT_MAX_TICKETS_REACHED: 'event/max-tickets-reached',\n EVENT_GEO_RESTRICTED: 'event/geo-restricted',\n EVENT_NOT_ACCESSIBLE: 'event/not-accessible',\n\n // BOOKING errors\n BOOKING_NOT_FOUND: 'booking/booking-not-found',\n BOOKING_STATE_TRANSITION_INVALID: 'booking/state-transition-invalid',\n PRODUCER_UNAVAILABLE: 'booking/producer-unavailable',\n ESCROW_FUNDING_FAILED: 'booking/escrow-funding-failed',\n BOOKING_ALREADY_EXISTS: 'booking/booking-already-exists',\n JOB_LISTING_NOT_FOUND: 'booking/job-listing-not-found',\n JOB_LISTING_CLOSED: 'booking/job-listing-closed',\n INDICATION_OF_INTEREST_DUPLICATE: 'booking/ioi-duplicate',\n INDICATION_OF_INTEREST_NOT_FOUND: 'booking/ioi-not-found',\n\n // STREAM errors\n STREAM_NOT_ACTIVE: 'stream/stream-not-active',\n ENTITLEMENT_NOT_FOUND: 'stream/entitlement-not-found',\n ENTITLEMENT_EXPIRED: 'stream/entitlement-expired',\n ENTITLEMENT_REVOKED: 'stream/entitlement-revoked',\n STREAM_CREDENTIALS_UNAVAILABLE: 'stream/credentials-unavailable',\n IVS_ERROR: 'stream/ivs-error',\n\n // PAYMENT errors\n PAYMENT_NOT_FOUND: 'payment/payment-not-found',\n PAYMENT_ALREADY_PROCESSED: 'payment/already-processed',\n PAYMENT_FAILED: 'payment/payment-failed',\n REFUND_NOT_ELIGIBLE: 'payment/refund-not-eligible',\n PAYOUT_FAILED: 'payment/payout-failed',\n INVALID_AMOUNT: 'payment/invalid-amount',\n PROVIDER_ERROR: 'payment/provider-error',\n\n // DISPUTE errors\n DISPUTE_NOT_FOUND: 'dispute/dispute-not-found',\n DISPUTE_ALREADY_EXISTS: 'dispute/dispute-already-exists',\n DISPUTE_DEADLINE_EXCEEDED: 'dispute/deadline-exceeded',\n\n // GENERAL errors\n VALIDATION_ERROR: 'general/validation-error',\n RESOURCE_NOT_FOUND: 'general/resource-not-found',\n CONFLICT: 'general/conflict',\n RATE_LIMITED: 'general/rate-limited',\n INTERNAL_SERVER_ERROR: 'general/internal-server-error',\n SERVICE_UNAVAILABLE: 'general/service-unavailable',\n} as const;\n\nexport type ApiErrorCode = (typeof ApiErrorCode)[keyof typeof ApiErrorCode];\n"]}
@@ -1,2 +0,0 @@
1
- import {d as d$1}from'./chunk-X7OLLQRF.mjs';import {a as a$1}from'./chunk-GAZT5E62.mjs';import {z as z$1}from'zod';var a={EVENT_DIRECT:"EVENT_DIRECT",MARKETPLACE_DIRECT:"MARKETPLACE_DIRECT",JOB_LISTING:"JOB_LISTING"},t={REQUESTED:"REQUESTED",AWAITING_PRODUCER_RESPONSE:"AWAITING_PRODUCER_RESPONSE",IN_NEGOTIATION:"IN_NEGOTIATION",ACCEPTED:"ACCEPTED",REJECTED:"REJECTED",CANCELLED:"CANCELLED",AWAITING_ESCROW_FUNDING:"AWAITING_ESCROW_FUNDING",CONFIRMED:"CONFIRMED",IN_PROGRESS:"IN_PROGRESS",SERVICE_COMPLETED:"SERVICE_COMPLETED",IN_DISPUTE:"IN_DISPUTE",CLOSED:"CLOSED"},s={OPEN:"OPEN",CLOSED:"CLOSED",SUSPENDED:"SUSPENDED"},p={OPEN:"OPEN",WITHDRAWN:"WITHDRAWN",SELECTED:"SELECTED",REJECTED:"REJECTED"},I={PENDING:"PENDING",ESCROW_FUNDED:"ESCROW_FUNDED",RELEASED:"RELEASED",REFUNDED:"REFUNDED",FAILED:"FAILED"},n={HOST:"HOST",PRODUCER:"PRODUCER",ADMIN:"ADMIN",SYSTEM:"SYSTEM"};var D=[t.REJECTED,t.CANCELLED,t.CLOSED],g=[...D,t.IN_DISPUTE],N={[t.REQUESTED]:[t.AWAITING_PRODUCER_RESPONSE,t.CANCELLED],[t.AWAITING_PRODUCER_RESPONSE]:[t.IN_NEGOTIATION,t.REJECTED,t.CANCELLED],[t.IN_NEGOTIATION]:[t.ACCEPTED,t.REJECTED,t.CANCELLED],[t.ACCEPTED]:[t.AWAITING_ESCROW_FUNDING,t.CANCELLED],[t.AWAITING_ESCROW_FUNDING]:[t.CONFIRMED,t.CANCELLED],[t.CONFIRMED]:[t.IN_PROGRESS],[t.IN_PROGRESS]:[t.SERVICE_COMPLETED,t.CANCELLED],[t.SERVICE_COMPLETED]:[t.CLOSED],[t.IN_DISPUTE]:[t.CLOSED],[t.REJECTED]:[],[t.CANCELLED]:[],[t.CLOSED]:[]},m={[`${t.REQUESTED}->${t.AWAITING_PRODUCER_RESPONSE}`]:[n.HOST,n.SYSTEM],[`${t.REQUESTED}->${t.CANCELLED}`]:[n.HOST],[`${t.AWAITING_PRODUCER_RESPONSE}->${t.IN_NEGOTIATION}`]:[n.PRODUCER],[`${t.AWAITING_PRODUCER_RESPONSE}->${t.REJECTED}`]:[n.PRODUCER],[`${t.AWAITING_PRODUCER_RESPONSE}->${t.CANCELLED}`]:[n.HOST,n.PRODUCER],[`${t.IN_NEGOTIATION}->${t.ACCEPTED}`]:[n.HOST,n.PRODUCER],[`${t.IN_NEGOTIATION}->${t.REJECTED}`]:[n.HOST,n.PRODUCER],[`${t.IN_NEGOTIATION}->${t.CANCELLED}`]:[n.HOST,n.PRODUCER],[`${t.ACCEPTED}->${t.AWAITING_ESCROW_FUNDING}`]:[n.HOST,n.SYSTEM],[`${t.ACCEPTED}->${t.CANCELLED}`]:[n.HOST,n.PRODUCER],[`${t.AWAITING_ESCROW_FUNDING}->${t.CONFIRMED}`]:[n.SYSTEM,n.ADMIN],[`${t.AWAITING_ESCROW_FUNDING}->${t.CANCELLED}`]:[n.HOST,n.ADMIN],[`${t.CONFIRMED}->${t.IN_PROGRESS}`]:[n.HOST,n.PRODUCER,n.ADMIN],[`${t.IN_PROGRESS}->${t.SERVICE_COMPLETED}`]:[n.PRODUCER],[`${t.IN_PROGRESS}->${t.CANCELLED}`]:[n.HOST,n.ADMIN],[`${t.SERVICE_COMPLETED}->${t.CLOSED}`]:[n.HOST,n.ADMIN,n.SYSTEM],[`${t.IN_DISPUTE}->${t.CLOSED}`]:[n.ADMIN,n.HOST]},T=[t.REJECTED,t.CANCELLED,t.IN_DISPUTE];function C(i,r){return `${i}->${r}`}function O(i){let r=N[i]??[];return g.includes(i)?r:[...r,t.IN_DISPUTE]}function _(i,r){return O(i).includes(r)}function A(i,r){return r===t.IN_DISPUTE&&!g.includes(i)?[n.HOST,n.PRODUCER]:m[C(i,r)]??[]}function B(i,r,u){return A(i,r).includes(u)}function f(i,r){return T.includes(r)}var U=z$1.object({origin:z$1.enum(a),eventId:z$1.uuid().optional(),producerId:z$1.uuid(),agreedAmount:z$1.number().min(0),serviceDetails:z$1.object({requiredDate:z$1.iso.datetime(),location:z$1.string(),eventType:z$1.string(),estimatedDurationHrs:z$1.number(),notes:z$1.string().optional()}).optional()}),G=z$1.object({escrowReference:z$1.string()}),$=z$1.object({id:z$1.uuid(),eventId:z$1.uuid().optional(),hostId:z$1.uuid(),producerId:z$1.uuid(),quotedPrice:z$1.number(),currency:z$1.string(),scopeOfWork:z$1.record(z$1.string(),z$1.any()).optional(),requiredStartAt:z$1.iso.datetime(),requiredEndAt:z$1.iso.datetime(),bookingState:z$1.enum(t),paymentStatus:z$1.enum(I),escrowReference:z$1.string().optional(),completedAt:z$1.iso.datetime().optional(),hostRating:z$1.number().optional(),hostReview:z$1.string().optional(),producerRating:z$1.number().optional(),producerReview:z$1.string().optional(),createdAt:z$1.iso.datetime(),updatedAt:z$1.iso.datetime()}),h=z$1.object({title:z$1.string().max(255),description:z$1.string(),requiredDate:z$1.iso.datetime(),estimatedDurationHrs:z$1.number().optional(),location:z$1.string(),budgetRangeMin:z$1.number().optional(),budgetRangeMax:z$1.number().optional()}),J=z$1.object({id:z$1.uuid(),hostProfileId:z$1.uuid(),eventId:z$1.uuid().optional(),title:z$1.string(),description:z$1.string(),requiredDate:z$1.iso.datetime(),estimatedDurationHrs:z$1.number().optional(),location:z$1.string(),budgetRangeMin:z$1.number().optional(),budgetRangeMax:z$1.number().optional(),state:z$1.enum(s),proposalCount:z$1.number(),createdAt:z$1.iso.datetime()}),W=z$1.object({coverMessage:z$1.string().optional(),proposedAmount:z$1.number().min(0).optional(),availabilityNotes:z$1.string().optional()}),H=z$1.object({id:z$1.uuid(),jobListingId:z$1.uuid(),producerProfileId:z$1.uuid(),coverMessage:z$1.string().optional(),proposedAmount:z$1.number().optional(),state:z$1.enum(p),createdAt:z$1.iso.datetime()});var E={ONSITE:"ONSITE",REMOTE:"REMOTE"};var R=z$1.record(z$1.string(),z$1.unknown()),Q=z$1.object({producerId:z$1.uuid(),origin:z$1.enum(a),eventId:z$1.uuid().optional(),jobListingId:z$1.uuid().optional(),agreedAmount:z$1.coerce.number().nonnegative().optional(),scopeOfWork:z$1.string().max(5e3).optional()}),d=z$1.object({id:z$1.uuid(),eventId:z$1.uuid().nullable(),hostProfileId:z$1.uuid(),producerProfileId:z$1.uuid(),origin:z$1.enum(a),jobListingId:z$1.uuid().nullable(),sourceIoiId:z$1.uuid().nullable(),state:z$1.enum(t),createdAt:z$1.string(),updatedAt:z$1.string()}),Y=z$1.object({bookingId:z$1.uuid(),booking:d}),b=z$1.string().trim().min(5).max(500),z=z$1.object({targetState:z$1.enum(t),reason:b.optional()}).superRefine((i,r)=>{(i.targetState===t.REJECTED||i.targetState===t.CANCELLED||i.targetState===t.IN_DISPUTE)&&i.reason===void 0&&r.addIssue({code:"custom",message:"reason is required for this transition",path:["reason"]});}),X=z$1.object({booking:d}),l=z$1.object({title:z$1.string().min(1).max(200),description:z$1.string().min(1).max(5e3),responsibilities:z$1.string().min(1),requirements:z$1.string().min(1),role:z$1.string().min(1).max(120),requiredDate:z$1.iso.datetime().optional(),estimatedDurationHours:z$1.coerce.number().int().positive().optional(),location:z$1.enum(E),notes:z$1.string().max(2e3).optional(),compensation:z$1.coerce.number().nonnegative().optional(),attachments:R.optional(),eventId:z$1.uuid().optional()}),Z=l,tt=l.partial(),ot=z$1.object({...d$1.shape,location:z$1.enum(E).optional()}),et=z$1.object({id:z$1.uuid(),hostProfileId:z$1.uuid(),eventId:z$1.uuid().nullable(),title:z$1.string(),notes:z$1.string().nullable(),description:z$1.string(),responsibilities:z$1.string(),requirements:z$1.string(),role:z$1.string(),requiredDate:z$1.string().nullable(),estimatedDurationHours:z$1.number().int().nullable(),location:z$1.enum(E),compensation:z$1.number().nullable(),attachments:z$1.unknown().nullable(),state:z$1.enum(s),proposalCount:z$1.number().int(),createdAt:z$1.string(),updatedAt:z$1.string()}),nt=z$1.object({coverMessage:z$1.string().min(1).max(2e3).optional(),proposedAmount:z$1.coerce.number().nonnegative().optional(),availabilityNotes:z$1.string().max(2e3).optional(),attachments:R.optional()}),k=z$1.object({id:z$1.uuid(),jobListingId:z$1.uuid(),producerProfileId:z$1.uuid(),coverMessage:z$1.string().nullable(),proposedAmount:z$1.number().nullable(),availabilityNotes:z$1.string().nullable(),state:z$1.enum(a$1),resultingBookingId:z$1.uuid().nullable(),withdrawnAt:z$1.string().nullable(),selectedAt:z$1.string().nullable(),createdAt:z$1.string(),updatedAt:z$1.string()}),it=k.extend({producerCompanyName:z$1.string().nullable()});export{Y as A,z as B,X as C,Z as D,tt as E,ot as F,et as G,nt as H,k as I,it as J,a,t as b,s as c,p as d,I as e,n as f,D as g,N as h,m as i,T as j,C as k,O as l,_ as m,A as n,B as o,f as p,U as q,G as r,$ as s,h as t,J as u,W as v,H as w,E as x,Q as y,d as z};//# sourceMappingURL=chunk-ZVAGI5CH.mjs.map
2
- //# sourceMappingURL=chunk-ZVAGI5CH.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/booking/booking.enums.ts","../src/booking/booking-state-machine.ts","../src/booking/booking.schemas.ts","../src/booking/hiring.enums.ts","../src/booking/hiring.schemas.ts"],"names":["BookingOrigin","BookingState","JobListingState","IoiState","BookingPaymentStatus","BookingTransitionActor","BOOKING_TERMINAL_STATES","DISPUTE_EXCLUDED_FROM","VALID_BOOKING_TRANSITIONS","BOOKING_TRANSITION_ACTORS","BOOKING_TRANSITION_TARGETS_REQUIRING_REASON","bookingTransitionKey","from","to","getAllowedBookingTargetStates","base","isValidBookingTransition","getBookingTransitionActors","canActorPerformBookingTransition","actor","bookingTransitionRequiresReason","_from","CreateBookingRequestSchema","z","ConfirmBookingRequestSchema","BookingResponseSchema","CreateJobListingRequestSchema","JobListingResponseSchema","SubmitIndicationOfInterestRequestSchema","IndicationOfInterestResponseSchema","JobLocation","jsonRecordSchema","CreateMarketplaceBookingRequestSchema","MarketplaceBookingResponseSchema","CreateMarketplaceBookingResponseSchema","bookingTransitionReasonSchema","TransitionMarketplaceBookingRequestSchema","data","ctx","TransitionMarketplaceBookingResponseSchema","MarketplaceJobListingBodySchema","CreateMarketplaceJobListingRequestSchema","UpdateMarketplaceJobListingRequestSchema","ListMarketplaceJobListingsQuerySchema","PaginationParamsSchema","MarketplaceJobListingResponseSchema","SubmitMarketplaceIndicationOfInterestRequestSchema","MarketplaceIndicationOfInterestResponseSchema","JobInterestState","MarketplaceIndicationOfInterestHostItemSchema"],"mappings":"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","file":"chunk-ZVAGI5CH.mjs","sourcesContent":["export const BookingOrigin = {\n EVENT_DIRECT: 'EVENT_DIRECT',\n MARKETPLACE_DIRECT: 'MARKETPLACE_DIRECT',\n JOB_LISTING: 'JOB_LISTING',\n} as const;\nexport type BookingOrigin = (typeof BookingOrigin)[keyof typeof BookingOrigin];\n\nexport const BookingState = {\n REQUESTED: 'REQUESTED',\n AWAITING_PRODUCER_RESPONSE: 'AWAITING_PRODUCER_RESPONSE',\n IN_NEGOTIATION: 'IN_NEGOTIATION',\n ACCEPTED: 'ACCEPTED',\n REJECTED: 'REJECTED',\n CANCELLED: 'CANCELLED',\n AWAITING_ESCROW_FUNDING: 'AWAITING_ESCROW_FUNDING',\n CONFIRMED: 'CONFIRMED',\n IN_PROGRESS: 'IN_PROGRESS',\n SERVICE_COMPLETED: 'SERVICE_COMPLETED',\n IN_DISPUTE: 'IN_DISPUTE',\n CLOSED: 'CLOSED',\n} as const;\nexport type BookingState = (typeof BookingState)[keyof typeof BookingState];\n\nexport const JobListingState = {\n OPEN: 'OPEN',\n CLOSED: 'CLOSED',\n SUSPENDED: 'SUSPENDED',\n} as const;\nexport type JobListingState = (typeof JobListingState)[keyof typeof JobListingState];\n\nexport const IoiState = {\n OPEN: 'OPEN',\n WITHDRAWN: 'WITHDRAWN',\n SELECTED: 'SELECTED',\n REJECTED: 'REJECTED',\n} as const;\nexport type IoiState = (typeof IoiState)[keyof typeof IoiState];\n\n/**\n * Enum for booking payment status.\n */\nexport const BookingPaymentStatus = {\n PENDING: 'PENDING',\n ESCROW_FUNDED: 'ESCROW_FUNDED',\n RELEASED: 'RELEASED',\n REFUNDED: 'REFUNDED',\n FAILED: 'FAILED',\n} as const;\nexport type BookingPaymentStatus = (typeof BookingPaymentStatus)[keyof typeof BookingPaymentStatus];\n\n/** Actor that may trigger a booking state transition (RBAC). */\nexport const BookingTransitionActor = {\n HOST: 'HOST',\n PRODUCER: 'PRODUCER',\n ADMIN: 'ADMIN',\n SYSTEM: 'SYSTEM',\n} as const;\nexport type BookingTransitionActor =\n (typeof BookingTransitionActor)[keyof typeof BookingTransitionActor];\n","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.REQUESTED]: [BookingState.AWAITING_PRODUCER_RESPONSE, BookingState.CANCELLED],\n [BookingState.AWAITING_PRODUCER_RESPONSE]: [\n BookingState.IN_NEGOTIATION,\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]: [BookingState.IN_PROGRESS],\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.REQUESTED}->${BookingState.AWAITING_PRODUCER_RESPONSE}`]: [\n BookingTransitionActor.HOST,\n BookingTransitionActor.SYSTEM,\n ],\n [`${BookingState.REQUESTED}->${BookingState.CANCELLED}`]: [BookingTransitionActor.HOST],\n [`${BookingState.AWAITING_PRODUCER_RESPONSE}->${BookingState.IN_NEGOTIATION}`]: [\n BookingTransitionActor.PRODUCER,\n ],\n [`${BookingState.AWAITING_PRODUCER_RESPONSE}->${BookingState.REJECTED}`]: [\n BookingTransitionActor.PRODUCER,\n ],\n [`${BookingState.AWAITING_PRODUCER_RESPONSE}->${BookingState.CANCELLED}`]: [\n BookingTransitionActor.HOST,\n BookingTransitionActor.PRODUCER,\n ],\n [`${BookingState.IN_NEGOTIATION}->${BookingState.ACCEPTED}`]: [\n BookingTransitionActor.HOST,\n BookingTransitionActor.PRODUCER,\n ],\n [`${BookingState.IN_NEGOTIATION}->${BookingState.REJECTED}`]: [\n BookingTransitionActor.HOST,\n BookingTransitionActor.PRODUCER,\n ],\n [`${BookingState.IN_NEGOTIATION}->${BookingState.CANCELLED}`]: [\n BookingTransitionActor.HOST,\n BookingTransitionActor.PRODUCER,\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.PRODUCER,\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.ADMIN,\n ],\n [`${BookingState.CONFIRMED}->${BookingState.IN_PROGRESS}`]: [\n BookingTransitionActor.HOST,\n BookingTransitionActor.PRODUCER,\n BookingTransitionActor.ADMIN,\n ],\n [`${BookingState.IN_PROGRESS}->${BookingState.SERVICE_COMPLETED}`]: [\n BookingTransitionActor.PRODUCER,\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.PRODUCER];\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 IoiState,\n BookingPaymentStatus,\n} from './booking.enums';\n\nexport const CreateBookingRequestSchema = z.object({\n origin: z.enum(BookingOrigin),\n eventId: z.uuid().optional(),\n producerId: z.uuid(),\n agreedAmount: z.number().min(0),\n serviceDetails: z\n .object({\n requiredDate: z.iso.datetime(),\n location: z.string(),\n eventType: z.string(),\n estimatedDurationHrs: z.number(),\n notes: z.string().optional(),\n })\n .optional(),\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 producerId: 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 hostRating: z.number().optional(),\n hostReview: z.string().optional(),\n producerRating: z.number().optional(),\n producerReview: z.string().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 estimatedDurationHrs: z.number().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 estimatedDurationHrs: z.number().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\nexport const SubmitIndicationOfInterestRequestSchema = z.object({\n coverMessage: z.string().optional(),\n proposedAmount: z.number().min(0).optional(),\n availabilityNotes: z.string().optional(),\n});\n\nexport const IndicationOfInterestResponseSchema = z.object({\n id: z.uuid(),\n jobListingId: z.uuid(),\n producerProfileId: z.uuid(),\n coverMessage: z.string().optional(),\n proposedAmount: z.number().optional(),\n state: z.enum(IoiState),\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","import { z } from 'zod';\nimport { JobInterestState } from '../joblisting/listing.enum';\nimport { BookingOrigin, BookingState, JobListingState } from './booking.enums';\nimport { JobLocation } from './hiring.enums';\nimport { PaginationParamsSchema } from '../common';\n\nconst jsonRecordSchema = z.record(z.string(), z.unknown());\n\n/** `POST /marketplace/bookings` */\nexport const CreateMarketplaceBookingRequestSchema = z.object({\n producerId: z.uuid(),\n origin: z.enum(BookingOrigin),\n eventId: z.uuid().optional(),\n jobListingId: z.uuid().optional(),\n agreedAmount: z.coerce.number().nonnegative().optional(),\n scopeOfWork: z.string().max(5000).optional(),\n});\n\nexport const MarketplaceBookingResponseSchema = z.object({\n id: z.uuid(),\n eventId: z.uuid().nullable(),\n hostProfileId: z.uuid(),\n producerProfileId: z.uuid(),\n origin: z.enum(BookingOrigin),\n jobListingId: z.uuid().nullable(),\n sourceIoiId: z.uuid().nullable(),\n state: z.enum(BookingState),\n createdAt: z.string(),\n updatedAt: z.string(),\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, producer, 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\nconst MarketplaceJobListingBodySchema = z.object({\n title: z.string().min(1).max(200),\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 requiredDate: z.iso.datetime().optional(),\n estimatedDurationHours: 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\n/** `POST /marketplace/job-listings` */\nexport const CreateMarketplaceJobListingRequestSchema = MarketplaceJobListingBodySchema;\n\nexport const UpdateMarketplaceJobListingRequestSchema = MarketplaceJobListingBodySchema.partial();\n\nexport const ListMarketplaceJobListingsQuerySchema = z.object({\n ...PaginationParamsSchema.shape,\n location: z.enum(JobLocation).optional(),\n});\n\nexport const MarketplaceJobListingResponseSchema = z.object({\n id: z.uuid(),\n hostProfileId: z.uuid(),\n eventId: z.uuid().nullable(),\n title: z.string(),\n notes: z.string().nullable(),\n description: z.string(),\n responsibilities: z.string(),\n requirements: z.string(),\n role: z.string(),\n requiredDate: z.string().nullable(),\n estimatedDurationHours: z.number().int().nullable(),\n location: z.enum(JobLocation),\n compensation: z.number().nullable(),\n attachments: z.unknown().nullable(),\n state: z.enum(JobListingState),\n proposalCount: z.number().int(),\n createdAt: z.string(),\n updatedAt: z.string(),\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 producerProfileId: z.uuid(),\n coverMessage: z.string().nullable(),\n proposedAmount: z.number().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 producer display label */\nexport const MarketplaceIndicationOfInterestHostItemSchema =\n MarketplaceIndicationOfInterestResponseSchema.extend({\n producerCompanyName: z.string().nullable(),\n });\n"]}