{"openapi":"3.0.0","paths":{"/":{"get":{"operationId":"AppController_getHello","parameters":[],"responses":{"200":{"description":""}},"summary":"Service landing page","tags":["Service"]}},"/calendars":{"post":{"operationId":"CalendarController_create","parameters":[{"name":"x-internal-api-key","required":true,"in":"header","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCalendarDto"}}}},"responses":{"201":{"description":"Calendar created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalendarResponseDto"}}}},"400":{"description":"Invalid input data"}},"summary":"Create a new calendar","tags":["Calendars"]},"get":{"operationId":"CalendarController_findAll","parameters":[{"name":"page","required":false,"in":"query","description":"Page number","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Items per page","schema":{"minimum":1,"maximum":100,"default":10,"type":"number"}},{"name":"sortBy","required":false,"in":"query","description":"Field to sort by","schema":{"default":"createdAt","type":"string"}},{"name":"sortOrder","required":false,"in":"query","description":"Sort order","schema":{"default":"DESC","type":"string","enum":["ASC","DESC"]}},{"name":"x-internal-api-key","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"List of calendars","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseDto"}}}}},"summary":"Get all calendars with pagination","tags":["Calendars"]}},"/calendars/{id}":{"get":{"operationId":"CalendarController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Calendar ID","schema":{"format":"uuid","type":"string"}},{"name":"x-internal-api-key","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"Calendar found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalendarResponseDto"}}}},"404":{"description":"Calendar not found"}},"summary":"Get calendar by ID","tags":["Calendars"]},"put":{"operationId":"CalendarController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Calendar ID","schema":{"format":"uuid","type":"string"}},{"name":"x-internal-api-key","required":true,"in":"header","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCalendarDto"}}}},"responses":{"200":{"description":"Calendar updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalendarResponseDto"}}}},"404":{"description":"Calendar not found"}},"summary":"Update calendar","tags":["Calendars"]}},"/slots":{"post":{"operationId":"SlotController_create","parameters":[{"name":"x-internal-api-key","required":true,"in":"header","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSlotDto"}}}},"responses":{"201":{"description":"Slot created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlotResponseDto"}}}},"400":{"description":"Invalid input data"}},"summary":"Create a new slot","tags":["Slots"]},"get":{"operationId":"SlotController_findAll","parameters":[{"name":"page","required":false,"in":"query","description":"Page number","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Items per page","schema":{"minimum":1,"maximum":100,"default":10,"type":"number"}},{"name":"sortBy","required":false,"in":"query","description":"Field to sort by","schema":{"default":"createdAt","type":"string"}},{"name":"sortOrder","required":false,"in":"query","description":"Sort order","schema":{"default":"DESC","type":"string","enum":["ASC","DESC"]}},{"name":"x-internal-api-key","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"List of slots","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseDto"}}}}},"summary":"Get all slots with pagination","tags":["Slots"]}},"/slots/{id}":{"get":{"operationId":"SlotController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Slot ID","schema":{"format":"uuid","type":"string"}},{"name":"x-internal-api-key","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"Slot found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlotResponseDto"}}}},"404":{"description":"Slot not found"}},"summary":"Get slot by ID","tags":["Slots"]},"put":{"operationId":"SlotController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Slot ID","schema":{"format":"uuid","type":"string"}},{"name":"x-internal-api-key","required":true,"in":"header","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSlotDto"}}}},"responses":{"200":{"description":"Slot updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlotResponseDto"}}}},"404":{"description":"Slot not found"}},"summary":"Update slot","tags":["Slots"]}},"/holds":{"post":{"description":"Idempotency-Key is optional. Missing key still creates. Replay of the same key returns the stored hold (200).","operationId":"HoldController_create","parameters":[{"name":"x-internal-api-key","required":true,"in":"header","schema":{"type":"string"}},{"name":"idempotency-key","required":true,"in":"header","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","description":"S2S replay key. Same key returns the same hold.","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateHoldDto"}}}},"responses":{"200":{"description":"Stored hold replayed for this Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HoldResponseDto"}}}},"201":{"description":"Hold created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HoldResponseDto"}}}},"400":{"description":"Invalid input data"}},"summary":"Create a new hold","tags":["Holds"]},"get":{"operationId":"HoldController_findAll","parameters":[{"name":"page","required":false,"in":"query","description":"Page number","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Items per page","schema":{"minimum":1,"maximum":100,"default":10,"type":"number"}},{"name":"sortBy","required":false,"in":"query","description":"Field to sort by","schema":{"default":"createdAt","type":"string"}},{"name":"sortOrder","required":false,"in":"query","description":"Sort order","schema":{"default":"DESC","type":"string","enum":["ASC","DESC"]}},{"name":"x-internal-api-key","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"List of holds","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseDto"}}}}},"summary":"Get all holds with pagination","tags":["Holds"]}},"/holds/{id}":{"get":{"operationId":"HoldController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Hold ID","schema":{"format":"uuid","type":"string"}},{"name":"x-internal-api-key","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"Hold found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HoldResponseDto"}}}},"404":{"description":"Hold not found"}},"summary":"Get hold by ID","tags":["Holds"]},"put":{"operationId":"HoldController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Hold ID","schema":{"format":"uuid","type":"string"}},{"name":"x-internal-api-key","required":true,"in":"header","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateHoldDto"}}}},"responses":{"200":{"description":"Hold updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HoldResponseDto"}}}},"404":{"description":"Hold not found"}},"summary":"Update hold","tags":["Holds"]}},"/recurring-rules":{"post":{"operationId":"RecurringRuleController_create","parameters":[{"name":"x-internal-api-key","required":true,"in":"header","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRecurringRuleDto"}}}},"responses":{"201":{"description":"RecurringRule created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecurringRuleResponseDto"}}}}},"summary":"Create a new recurring rule","tags":["RecurringRules"]},"get":{"operationId":"RecurringRuleController_findAll","parameters":[{"name":"page","required":false,"in":"query","description":"Page number","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Items per page","schema":{"minimum":1,"maximum":100,"default":10,"type":"number"}},{"name":"sortBy","required":false,"in":"query","description":"Field to sort by","schema":{"default":"createdAt","type":"string"}},{"name":"sortOrder","required":false,"in":"query","description":"Sort order","schema":{"default":"DESC","type":"string","enum":["ASC","DESC"]}},{"name":"x-internal-api-key","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"List of recurringRules","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseDto"}}}}},"summary":"Get all recurring rules with pagination","tags":["RecurringRules"]}},"/recurring-rules/{id}":{"get":{"operationId":"RecurringRuleController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"RecurringRule ID","schema":{"format":"uuid","type":"string"}},{"name":"x-internal-api-key","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Get recurring rule by ID","tags":["RecurringRules"]},"put":{"operationId":"RecurringRuleController_update","parameters":[{"name":"id","required":true,"in":"path","description":"RecurringRule ID","schema":{"format":"uuid","type":"string"}},{"name":"x-internal-api-key","required":true,"in":"header","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRecurringRuleDto"}}}},"responses":{"200":{"description":""}},"summary":"Update recurring rule","tags":["RecurringRules"]}},"/recurring-rules/{id}/slots":{"post":{"operationId":"RecurringRuleController_materializeSlot","parameters":[{"name":"id","required":true,"in":"path","description":"RecurringRule ID","schema":{"format":"uuid","type":"string"}},{"name":"x-internal-api-key","required":true,"in":"header","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMaterializeRecurringSlotDto"}}}},"responses":{"201":{"description":"Slot opened","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlotResponseDto"}}}}},"summary":"Mint an open candidate slot from an active recurring rule","tags":["RecurringRules"]}},"/availability-exceptions":{"post":{"operationId":"AvailabilityExceptionController_create","parameters":[{"name":"x-internal-api-key","required":true,"in":"header","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAvailabilityExceptionDto"}}}},"responses":{"201":{"description":"AvailabilityException created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailabilityExceptionResponseDto"}}}},"400":{"description":"Invalid input data"}},"summary":"Create a new availability exception","tags":["AvailabilityExceptions"]},"get":{"operationId":"AvailabilityExceptionController_findAll","parameters":[{"name":"page","required":false,"in":"query","description":"Page number","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Items per page","schema":{"minimum":1,"maximum":100,"default":10,"type":"number"}},{"name":"sortBy","required":false,"in":"query","description":"Field to sort by","schema":{"default":"createdAt","type":"string"}},{"name":"sortOrder","required":false,"in":"query","description":"Sort order","schema":{"default":"DESC","type":"string","enum":["ASC","DESC"]}},{"name":"x-internal-api-key","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"List of availabilityExceptions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseDto"}}}}},"summary":"Get all availability exceptions with pagination","tags":["AvailabilityExceptions"]}},"/availability-exceptions/{id}":{"get":{"operationId":"AvailabilityExceptionController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"AvailabilityException ID","schema":{"format":"uuid","type":"string"}},{"name":"x-internal-api-key","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"AvailabilityException found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailabilityExceptionResponseDto"}}}},"404":{"description":"AvailabilityException not found"}},"summary":"Get availability exception by ID","tags":["AvailabilityExceptions"]},"put":{"operationId":"AvailabilityExceptionController_update","parameters":[{"name":"id","required":true,"in":"path","description":"AvailabilityException ID","schema":{"format":"uuid","type":"string"}},{"name":"x-internal-api-key","required":true,"in":"header","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAvailabilityExceptionDto"}}}},"responses":{"200":{"description":"AvailabilityException updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailabilityExceptionResponseDto"}}}},"404":{"description":"AvailabilityException not found"}},"summary":"Update availability exception","tags":["AvailabilityExceptions"]}},"/command-inboxes":{"post":{"operationId":"CommandInboxController_create","parameters":[{"name":"x-internal-api-key","required":true,"in":"header","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCommandInboxDto"}}}},"responses":{"201":{"description":"CommandInbox created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommandInboxResponseDto"}}}},"400":{"description":"Invalid input data"}},"summary":"Create a new commandInbox","tags":["CommandInboxes"]},"get":{"operationId":"CommandInboxController_findAll","parameters":[{"name":"page","required":false,"in":"query","description":"Page number","schema":{"minimum":1,"default":1,"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Items per page","schema":{"minimum":1,"maximum":100,"default":10,"type":"number"}},{"name":"sortBy","required":false,"in":"query","description":"Field to sort by","schema":{"default":"createdAt","type":"string"}},{"name":"sortOrder","required":false,"in":"query","description":"Sort order","schema":{"default":"DESC","type":"string","enum":["ASC","DESC"]}},{"name":"x-internal-api-key","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"List of commandInboxes","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseDto"}}}}},"summary":"Get all commandInboxes with pagination","tags":["CommandInboxes"]}},"/command-inboxes/{id}":{"get":{"operationId":"CommandInboxController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"CommandInbox ID","schema":{"format":"uuid","type":"string"}},{"name":"x-internal-api-key","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"CommandInbox found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommandInboxResponseDto"}}}},"404":{"description":"CommandInbox not found"}},"summary":"Get commandInbox by ID","tags":["CommandInboxes"]},"put":{"operationId":"CommandInboxController_update","parameters":[{"name":"id","required":true,"in":"path","description":"CommandInbox ID","schema":{"format":"uuid","type":"string"}},{"name":"x-internal-api-key","required":true,"in":"header","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCommandInboxDto"}}}},"responses":{"200":{"description":"CommandInbox updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommandInboxResponseDto"}}}},"404":{"description":"CommandInbox not found"}},"summary":"Update commandInbox","tags":["CommandInboxes"]}},"/health":{"get":{"operationId":"HealthController_check","parameters":[],"responses":{"200":{"description":"The Health Check is successful","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"ok"},"info":{"type":"object","example":{"database":{"status":"up"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true},"nullable":true},"error":{"type":"object","example":{},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true},"nullable":true},"details":{"type":"object","example":{"database":{"status":"up"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true}}}}}}},"503":{"description":"The Health Check is not successful","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"error"},"info":{"type":"object","example":{"database":{"status":"up"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true},"nullable":true},"error":{"type":"object","example":{"redis":{"status":"down","message":"Could not connect"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true},"nullable":true},"details":{"type":"object","example":{"database":{"status":"up"},"redis":{"status":"down","message":"Could not connect"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true}}}}}}}},"summary":"Basic health check","tags":["Health"]}},"/health/ready":{"get":{"operationId":"HealthController_readiness","parameters":[],"responses":{"200":{"description":"The Health Check is successful","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"ok"},"info":{"type":"object","example":{"database":{"status":"up"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true},"nullable":true},"error":{"type":"object","example":{},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true},"nullable":true},"details":{"type":"object","example":{"database":{"status":"up"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true}}}}}}},"503":{"description":"The Health Check is not successful","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"error"},"info":{"type":"object","example":{"database":{"status":"up"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true},"nullable":true},"error":{"type":"object","example":{"redis":{"status":"down","message":"Could not connect"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true},"nullable":true},"details":{"type":"object","example":{"database":{"status":"up"},"redis":{"status":"down","message":"Could not connect"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true}}}}}}}},"summary":"Readiness check - is the service ready to receive traffic?","tags":["Health"]}},"/health/live":{"get":{"operationId":"HealthController_liveness","parameters":[],"responses":{"200":{"description":"The Health Check is successful","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"ok"},"info":{"type":"object","example":{"database":{"status":"up"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true},"nullable":true},"error":{"type":"object","example":{},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true},"nullable":true},"details":{"type":"object","example":{"database":{"status":"up"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true}}}}}}},"503":{"description":"The Health Check is not successful","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"error"},"info":{"type":"object","example":{"database":{"status":"up"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true},"nullable":true},"error":{"type":"object","example":{"redis":{"status":"down","message":"Could not connect"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true},"nullable":true},"details":{"type":"object","example":{"database":{"status":"up"},"redis":{"status":"down","message":"Could not connect"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true}}}}}}}},"summary":"Liveness check - is the service alive?","tags":["Health"]}}},"info":{"title":"Scheduling API","description":"Calendars, bookable slots, holds, recurring rules, and availability exceptions. Owns: Calendars, Slots, Holds, RecurringRules, AvailabilityExceptions.","version":"1.0","contact":{}},"tags":[],"servers":[{"url":"https://scheduling.stormbyva.com"}],"components":{"securitySchemes":{"x-internal-api-key":{"type":"apiKey","in":"header","name":"x-internal-api-key","description":"Service-to-service key"}},"schemas":{"CreateCalendarDto":{"type":"object","properties":{"practitionerId":{"type":"string","description":"The practitioner id of the entity","example":"550e8400-e29b-41d4-a716-446655440000"},"timezone":{"type":"string","description":"The timezone of the entity","example":"Sample text"},"marketCode":{"type":"string","description":"The market code of the entity","example":"Sample text"}},"required":["practitionerId","timezone","marketCode"]},"CalendarResponseDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier","format":"uuid"},"practitionerId":{"type":"string","description":"The practitioner id of the entity","example":"550e8400-e29b-41d4-a716-446655440000"},"timezone":{"type":"string","description":"The timezone of the entity","example":"Sample text"},"marketCode":{"type":"string","description":"The market code of the entity","example":"Sample text"},"isActive":{"type":"boolean","description":"Whether the record is active"},"createdAt":{"format":"date-time","type":"string","description":"Creation timestamp"},"updatedAt":{"format":"date-time","type":"string","description":"Last update timestamp"}},"required":["id","practitionerId","timezone","marketCode","isActive","createdAt","updatedAt"]},"PaginationMeta":{"type":"object","properties":{"total":{"type":"number","description":"Total number of items"},"page":{"type":"number","description":"Current page number"},"limit":{"type":"number","description":"Number of items per page"},"totalPages":{"type":"number","description":"Total number of pages"},"hasNextPage":{"type":"boolean","description":"Whether there is a next page"},"hasPreviousPage":{"type":"boolean","description":"Whether there is a previous page"}},"required":["total","page","limit","totalPages","hasNextPage","hasPreviousPage"]},"PaginatedResponseDto":{"type":"object","properties":{"items":{"description":"Array of items","type":"array","items":{"type":"array"}},"meta":{"description":"Pagination metadata","allOf":[{"$ref":"#/components/schemas/PaginationMeta"}]}},"required":["items","meta"]},"UpdateCalendarDto":{"type":"object","properties":{"practitionerId":{"type":"string","description":"The practitioner id of the entity","example":"550e8400-e29b-41d4-a716-446655440000"},"timezone":{"type":"string","description":"The timezone of the entity","example":"Sample text"},"marketCode":{"type":"string","description":"The market code of the entity","example":"Sample text"},"isActive":{"type":"boolean","description":"Whether the record is active"}}},"CreateSlotDto":{"type":"object","properties":{"calendarId":{"type":"string","description":"The calendar id of the entity","example":"550e8400-e29b-41d4-a716-446655440000"},"startsAt":{"format":"date-time","type":"string","description":"The starts at of the entity"},"endsAt":{"format":"date-time","type":"string","description":"The ends at of the entity"},"status":{"type":"string","description":"The status of the entity"}},"required":["calendarId","startsAt","endsAt","status"]},"SlotResponseDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier","format":"uuid"},"calendarId":{"type":"string","description":"The calendar id of the entity","example":"550e8400-e29b-41d4-a716-446655440000"},"startsAt":{"format":"date-time","type":"string","description":"The starts at of the entity"},"endsAt":{"format":"date-time","type":"string","description":"The ends at of the entity"},"status":{"type":"string","description":"The status of the entity"},"isActive":{"type":"boolean","description":"Whether the record is active"},"createdAt":{"format":"date-time","type":"string","description":"Creation timestamp"},"updatedAt":{"format":"date-time","type":"string","description":"Last update timestamp"}},"required":["id","calendarId","startsAt","endsAt","status","isActive","createdAt","updatedAt"]},"UpdateSlotDto":{"type":"object","properties":{"calendarId":{"type":"string","description":"The calendar id of the entity","example":"550e8400-e29b-41d4-a716-446655440000"},"startsAt":{"format":"date-time","type":"string","description":"The starts at of the entity"},"endsAt":{"format":"date-time","type":"string","description":"The ends at of the entity"},"status":{"type":"string","description":"The status of the entity"},"isActive":{"type":"boolean","description":"Whether the record is active"}}},"CreateHoldDto":{"type":"object","properties":{"slotId":{"type":"string","description":"The slot id of the entity","example":"550e8400-e29b-41d4-a716-446655440000"},"calendarId":{"type":"string","description":"The calendar id of the entity","example":"550e8400-e29b-41d4-a716-446655440000"},"requesterId":{"type":"string","description":"The requester id of the entity","example":"550e8400-e29b-41d4-a716-446655440000"},"expiresAt":{"format":"date-time","type":"string","description":"The expires at of the entity"},"status":{"type":"string","description":"The status of the entity"}},"required":["slotId","calendarId","requesterId","expiresAt","status"]},"HoldResponseDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier","format":"uuid"},"slotId":{"type":"string","description":"The slot id of the entity","example":"550e8400-e29b-41d4-a716-446655440000"},"calendarId":{"type":"string","description":"The calendar id of the entity","example":"550e8400-e29b-41d4-a716-446655440000"},"requesterId":{"type":"string","description":"The requester id of the entity","example":"550e8400-e29b-41d4-a716-446655440000"},"expiresAt":{"format":"date-time","type":"string","description":"The expires at of the entity"},"status":{"type":"string","description":"The status of the entity"},"isActive":{"type":"boolean","description":"Whether the record is active"},"createdAt":{"format":"date-time","type":"string","description":"Creation timestamp"},"updatedAt":{"format":"date-time","type":"string","description":"Last update timestamp"}},"required":["id","slotId","calendarId","requesterId","expiresAt","status","isActive","createdAt","updatedAt"]},"UpdateHoldDto":{"type":"object","properties":{"slotId":{"type":"string","description":"The slot id of the entity","example":"550e8400-e29b-41d4-a716-446655440000"},"calendarId":{"type":"string","description":"The calendar id of the entity","example":"550e8400-e29b-41d4-a716-446655440000"},"requesterId":{"type":"string","description":"The requester id of the entity","example":"550e8400-e29b-41d4-a716-446655440000"},"expiresAt":{"format":"date-time","type":"string","description":"The expires at of the entity"},"status":{"type":"string","description":"The status of the entity"},"isActive":{"type":"boolean","description":"Whether the record is active"}}},"CreateRecurringRuleDto":{"type":"object","properties":{"calendarId":{"type":"string","description":"The calendar id of the entity","example":"550e8400-e29b-41d4-a716-446655440000"},"weekday":{"type":"string","description":"The weekday of the entity"},"startMinute":{"type":"number","description":"The start minute of the entity","example":"42"},"endMinute":{"type":"number","description":"The end minute of the entity","example":"42"},"state":{"type":"string","description":"The state of the entity"}},"required":["calendarId","weekday","startMinute","endMinute","state"]},"RecurringRuleResponseDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier","format":"uuid"},"calendarId":{"type":"string","description":"The calendar id of the entity","example":"550e8400-e29b-41d4-a716-446655440000"},"weekday":{"type":"string","description":"The weekday of the entity"},"startMinute":{"type":"number","description":"The start minute of the entity","example":"42"},"endMinute":{"type":"number","description":"The end minute of the entity","example":"42"},"state":{"type":"string","description":"The state of the entity"},"isActive":{"type":"boolean","description":"Whether the record is active"},"createdAt":{"format":"date-time","type":"string","description":"Creation timestamp"},"updatedAt":{"format":"date-time","type":"string","description":"Last update timestamp"}},"required":["id","calendarId","weekday","startMinute","endMinute","state","isActive","createdAt","updatedAt"]},"CreateMaterializeRecurringSlotDto":{"type":"object","properties":{"onDate":{"format":"date-time","type":"string","description":"The calendar day to mint","example":"2026-08-31"}},"required":["onDate"]},"UpdateRecurringRuleDto":{"type":"object","properties":{"calendarId":{"type":"string","description":"The calendar id of the entity","example":"550e8400-e29b-41d4-a716-446655440000"},"weekday":{"type":"string","description":"The weekday of the entity"},"startMinute":{"type":"number","description":"The start minute of the entity","example":"42"},"endMinute":{"type":"number","description":"The end minute of the entity","example":"42"},"state":{"type":"string","description":"The state of the entity"},"isActive":{"type":"boolean","description":"Whether the record is active"}}},"CreateAvailabilityExceptionDto":{"type":"object","properties":{"calendarId":{"type":"string","description":"The calendar id of the entity","example":"550e8400-e29b-41d4-a716-446655440000"},"onDate":{"format":"date-time","type":"string","description":"The on date of the entity"},"kind":{"type":"string","description":"The kind of the entity"},"state":{"type":"string","description":"The state of the entity"}},"required":["calendarId","onDate","kind","state"]},"AvailabilityExceptionResponseDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier","format":"uuid"},"calendarId":{"type":"string","description":"The calendar id of the entity","example":"550e8400-e29b-41d4-a716-446655440000"},"onDate":{"format":"date-time","type":"string","description":"The on date of the entity"},"kind":{"type":"string","description":"The kind of the entity"},"state":{"type":"string","description":"The state of the entity"},"isActive":{"type":"boolean","description":"Whether the record is active"},"createdAt":{"format":"date-time","type":"string","description":"Creation timestamp"},"updatedAt":{"format":"date-time","type":"string","description":"Last update timestamp"}},"required":["id","calendarId","onDate","kind","state","isActive","createdAt","updatedAt"]},"UpdateAvailabilityExceptionDto":{"type":"object","properties":{"calendarId":{"type":"string","description":"The calendar id of the entity","example":"550e8400-e29b-41d4-a716-446655440000"},"onDate":{"format":"date-time","type":"string","description":"The on date of the entity"},"kind":{"type":"string","description":"The kind of the entity"},"state":{"type":"string","description":"The state of the entity"},"isActive":{"type":"boolean","description":"Whether the record is active"}}},"CreateCommandInboxDto":{"type":"object","properties":{"idempotencyKey":{"type":"string","description":"The idempotency key of the entity","example":"Sample text"},"scope":{"type":"string","description":"The scope of the entity","example":"Sample text"},"requestHash":{"type":"string","description":"The request hash of the entity","example":"Sample text"},"responseStatus":{"type":"number","description":"The response status of the entity","example":"42"},"responseBody":{"type":"object","description":"The response body of the entity"},"resourceId":{"type":"string","description":"The resource id of the entity","example":"550e8400-e29b-41d4-a716-446655440000"},"expiresAt":{"format":"date-time","type":"string","description":"The expires at of the entity"}},"required":["idempotencyKey","scope","expiresAt"]},"CommandInboxResponseDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier","format":"uuid"},"idempotencyKey":{"type":"string","description":"The idempotency key of the entity","example":"Sample text"},"scope":{"type":"string","description":"The scope of the entity","example":"Sample text"},"requestHash":{"type":"string","description":"The request hash of the entity","example":"Sample text"},"responseStatus":{"type":"number","description":"The response status of the entity","example":"42"},"responseBody":{"type":"object","description":"The response body of the entity"},"resourceId":{"type":"string","description":"The resource id of the entity","example":"550e8400-e29b-41d4-a716-446655440000"},"expiresAt":{"format":"date-time","type":"string","description":"The expires at of the entity"},"isActive":{"type":"boolean","description":"Whether the record is active"},"createdAt":{"format":"date-time","type":"string","description":"Creation timestamp"},"updatedAt":{"format":"date-time","type":"string","description":"Last update timestamp"}},"required":["id","idempotencyKey","scope","requestHash","responseStatus","responseBody","resourceId","expiresAt","isActive","createdAt","updatedAt"]},"UpdateCommandInboxDto":{"type":"object","properties":{"idempotencyKey":{"type":"string","description":"The idempotency key of the entity","example":"Sample text"},"scope":{"type":"string","description":"The scope of the entity","example":"Sample text"},"requestHash":{"type":"string","description":"The request hash of the entity","example":"Sample text"},"responseStatus":{"type":"number","description":"The response status of the entity","example":"42"},"responseBody":{"type":"object","description":"The response body of the entity"},"resourceId":{"type":"string","description":"The resource id of the entity","example":"550e8400-e29b-41d4-a716-446655440000"},"expiresAt":{"format":"date-time","type":"string","description":"The expires at of the entity"},"isActive":{"type":"boolean","description":"Whether the record is active"}}}}}}