{"openapi":"3.1.0","info":{"title":"Subs API","version":"V1"},"servers":[{"url":"https://api.ishoot.io","description":"Generated server url"}],"security":[{"ApiKeyAuth":[]}],"tags":[{"name":"iShoot.subs","description":"iShoot.subs API V1"}],"paths":{"/api/v1/engagements":{"get":{"tags":["Engagements Management","iShoot.subs"],"summary":"Engagements","description":"Get all Engagements","operationId":"getAllEngagements","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"200":{"description":"Engagements retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EngagementDto"}}}}}}},"put":{"tags":["Engagements Management","iShoot.subs"],"summary":"Engagements","description":"Update Engagement","operationId":"update","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"description":"Update Engagement cmd","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EngagementUpdateCmd"}}},"required":true},"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"200":{"description":"Engagement created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EngagementDto"}}}}}},"post":{"tags":["Engagements Management","iShoot.subs"],"summary":"Step 2. Create Engagement","description":"Add new Engagement","operationId":"addEngagement","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"description":"Add Engagement cmd","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EngagementAddCmd"}}},"required":true},"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"201":{"description":"Engagement created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EngagementDto"}}}}}}},"/api/v1/pre-interview-form-notes":{"post":{"tags":["Engagements Management","iShoot.subs"],"summary":"Pre-Interview Form Notes","description":"Add Pre-Interview Form Note for specific Engagement","operationId":"addPreShootFormNote","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreShootFormAddNoteCmd"}}},"required":true},"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"200":{"description":"Notes added successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreShootFormDto"}}}}}}},"/api/v1/deliverable-file-notes":{"post":{"tags":["Engagements Management","iShoot.subs"],"summary":"Deliverable File Notes","description":"Add Note for specific Deliverable File","operationId":"addDeliverableFileNote","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliverableFileAddNoteCmd"}}},"required":true},"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"200":{"description":"Note added successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliverableFileDto"}}}}}}},"/api/v1/deliverable-file-approved":{"post":{"tags":["Engagements Management","iShoot.subs"],"summary":"Deliverable File Approved","description":"Mark specific Deliverable File as Approved","operationId":"approveDeliverableFile","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliverableFileCmd"}}},"required":true},"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"200":{"description":"Deliverable File approved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliverableFileDto"}}}}}}},"/api/v1/clients":{"get":{"tags":["Client Management","iShoot.subs"],"summary":"Step 1. Clients","description":"Get all Clients","operationId":"getAllClients","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"200":{"description":"Clients retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ClientDto"}}}}}}},"post":{"tags":["Client Management","iShoot.subs"],"summary":"Create Client","description":"Add new Client","operationId":"createClient","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"description":"Create Client cmd","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientCreateCmd"}}},"required":true},"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"User with same uuid/email/phone is already registered","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"201":{"description":"Client created successfully","content":{"application/json":{"schema":{"type":"boolean"}}}},"206":{"description":"Client found by UUID, no new client created","content":{"application/json":{"schema":{"type":"boolean"}}}}}}},"/api/v1/cancel-engagement":{"post":{"tags":["Cancel Engagement","iShoot.subs"],"summary":"Step 6. Cancel Engagement","description":"Cancel Engagement and close it for any future bookings","operationId":"cancelEngagement","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"description":"Cancel Engagement Cmd","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelCmd"}}},"required":true},"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"200":{"description":"Engagement cancelled successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EngagementDto"}}}}}}},"/api/v1/cancel-booking":{"post":{"tags":["Cancel Booking","iShoot.subs"],"summary":"Step 5. Cancel Booking","description":"Cancel Booking","operationId":"cancelBooking","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"description":"Cancel Booking Cmd","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelCmd"}}},"required":true},"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"200":{"description":"Booking cancelled successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingDto"}}}}}}},"/api/v1/bookings":{"post":{"tags":["Schedule Engagement","iShoot.subs"],"summary":"Step 4. Schedule Engagement Date","description":"Schedule a date for a user","operationId":"schedule","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"description":"Schedule Engagement cmd","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCmd"}}},"required":true},"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Not authorized user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"201":{"description":"Date scheduled successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingDto"}}}}}}},"/api/v1/schedule-slots":{"get":{"tags":["Schedule Engagement","iShoot.subs"],"summary":"Step 3. Get Schedule Slots","description":"Get available schedule slots","operationId":"getSchedulingSlots","parameters":[{"name":"eUuid","in":"query","description":"Engagement unique identifier","required":true,"schema":{"type":"string"},"example":"b3195c4b-dbf4-427c-8627-c974d026f483"},{"name":"sDate","in":"query","description":"Start date for retrieving time slots in ISO format","required":true,"schema":{"type":"string"},"example":"2030-01-02"},{"name":"tz","in":"query","description":"Timezone","required":true,"schema":{"type":"string"},"example":"America/Puerto_Rico"},{"name":"atId","in":"query","description":"Appointment type ID (related to appointment duration). If empty - default value from remote server settings is used","required":false,"schema":{"type":"integer","format":"int64"},"example":16789748},{"name":"X-API-Key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Not authorized user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"200":{"description":"Slots retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSlotsResponseBody"}}}}}}},"/api/v1/engagements/{uuid}":{"get":{"tags":["Engagements Management","iShoot.subs"],"summary":"Engagements","description":"Get one Engagement with all related data","operationId":"getOne","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"type":"string"}},{"name":"uuid","in":"path","description":"Engagement unique identifier","required":true,"schema":{"type":"string"},"example":"b3195c4b-dbf4-427c-8627-c974d026f483"}],"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"200":{"description":"Engagement retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EngagementFullDto"}}}}}}},"/api/v1/engagement-notes/{uuid}":{"get":{"tags":["Engagements Management","iShoot.subs"],"summary":"Notes","description":"Get all Notes for specific Engagement","operationId":"getAllEngagementNotes","parameters":[{"name":"uuid","in":"path","description":"Engagement unique identifier","required":true,"schema":{"type":"string"},"example":"b3195c4b-dbf4-427c-8627-c974d026f483"},{"name":"X-API-Key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"200":{"description":"Notes retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EngagementNoteDto"}}}}}}}},"/api/v1/bookings/{engagementUuid}":{"get":{"tags":["Bookings","iShoot.subs"],"summary":"Get Bookings","description":"Get Bookings for specific Engagement","operationId":"getAllBookings","parameters":[{"name":"engagementUuid","in":"path","description":"Engagement unique identifier","required":true,"schema":{"type":"string"},"example":"b3195c4b-dbf4-427c-8627-c974d026f483"},{"name":"X-API-Key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Not authorized user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"200":{"description":"Bookings retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BookingDto"}}}}}}}},"/api/v1/appointment-types":{"get":{"tags":["iShoot.subs","Common data"],"summary":"Appointment types","description":"Get Appointment types to select one for retrieving slots","operationId":"getAppointmentTypes","parameters":[{"name":"cUuid","in":"query","description":"Client unique identifier","required":true,"schema":{"type":"string"},"example":"b3195c4b-dbf4-427c-8627-c974d026f483"},{"name":"X-API-Key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"409":{"description":"Conflict","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Forbidden","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"200":{"description":"Appointment types retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AppointmentTypeDto"}}}}}}}}},"components":{"schemas":{"ApiErrorResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32","description":"HTTP status code of the error","example":500},"error":{"type":"string","description":"Error reason phrase","example":"Error reason phrase."},"message":{"type":"string","description":"Detailed error message","example":"Error message."},"timestamp":{"type":"string","format":"date-time","description":"Timestamp when the error occurred","example":"2024-06-15T12:34:56.789Z"}},"required":["error","message","status","timestamp"]},"DeliverableAddCmd":{"type":"object","properties":{"uuid":{"type":"string","description":"Unique identifier for Deliverable","example":"123e4567-e89b-12d3-a456-426614174000"},"label":{"type":"string","description":"Label for the deliverable","example":"Perfect introduction"},"type":{"type":"string","description":"Type of the deliverable","enum":["VIDEO","IMAGE"],"example":"'VIDEO' or 'IMAGE'"},"orientation":{"type":"string","description":"Orientation for the deliverable","enum":["LANDSCAPE","PORTRAIT","SQUARE"],"example":"'LANDSCAPE' or 'PORTRAIT' or 'SQUARE'"},"required":{"type":"boolean","description":"Is deliverable required","example":true}},"required":["label","orientation","required","type","uuid"]},"EngagementUpdateCmd":{"type":"object","properties":{"clientUuid":{"type":"string","description":"UUID of related client","example":"0b8b0aff-36b3-434a-a76c-b8eb201e8e51"},"script":{"type":"string","description":"Some script for video","example":"Some script for video"},"questions":{"type":"string","description":"Some questions to answer in video","example":["What do you like more...","What is your..."]},"status":{"type":"string","description":"Init status, usually DRAFT","enum":["DRAFT","SCHEDULED","IN_PRODUCTION","COMPLETED","CANCELLED","READY_FOR_SHOOT","IN_REVISION"],"example":"DRAFT"},"gearFulfillment":{"type":"string","description":"Responsible for gear fulfillment","enum":["ISHOOT","SUBSCRIBER"],"example":"SUBSCRIBER"},"product":{"$ref":"#/components/schemas/ProductDto","description":"Product data"},"talent":{"$ref":"#/components/schemas/TalentDto","description":"Talent data"},"deliverables":{"type":"array","description":"Deliverables","items":{"$ref":"#/components/schemas/DeliverableAddCmd"}},"uuid":{"type":"string","description":"UUID of updated Engagement","example":"0b8b0aff-36b3-434a-a76c-b8eb201e8e51"}},"required":["clientUuid","deliverables","gearFulfillment","product","questions","script","status","talent","uuid"]},"ProductDto":{"type":"object","properties":{"uuid":{"type":"string","description":"Product unique identifier","example":"b3195c4b-dbf4-427c-8627-c974d026f483"},"name":{"type":"string","description":"Product name","example":"Product name example","maxLength":255,"minLength":1},"requiresPreInterview":{"type":"boolean","description":"Pre Interview is required for product","example":true}},"required":["name","requiresPreInterview","uuid"]},"TalentDto":{"type":"object","properties":{"uuid":{"type":"string","description":"Unique identifier for the talent","example":"123e4567-e89b-12d3-a456-426614174000","maxLength":50,"minLength":1},"firstName":{"type":"string","description":"First name of talent","example":"John","maxLength":50,"minLength":1},"lastName":{"type":"string","description":"Last name of talent","example":"Doe","maxLength":50,"minLength":1},"email":{"type":"string","format":"email","description":"Email address of talent","example":"john.doe@example.com","maxLength":200,"minLength":1},"phoneNumber":{"type":"string","description":"Phone number of talent","example":"+1234567890","maxLength":50,"minLength":1}},"required":["email","firstName","lastName","phoneNumber","uuid"]},"ClientDto":{"type":"object","properties":{"uuid":{"type":"string"},"name":{"type":"string"}}},"DeliverableDto":{"type":"object","properties":{"uuid":{"type":"string"},"label":{"type":"string"},"type":{"type":"string","enum":["VIDEO","IMAGE"]},"orientation":{"type":"string","enum":["LANDSCAPE","PORTRAIT","SQUARE"]},"required":{"type":"boolean"}}},"EngagementDto":{"type":"object","properties":{"uuid":{"type":"string"},"script":{"type":"string"},"questions":{"type":"string"},"assetsUrl":{"type":"string"},"status":{"type":"string","enum":["DRAFT","SCHEDULED","IN_PRODUCTION","COMPLETED","CANCELLED","READY_FOR_SHOOT","IN_REVISION"]},"gearFulfillment":{"type":"string","enum":["ISHOOT","SUBSCRIBER"]},"client":{"$ref":"#/components/schemas/ClientDto"},"product":{"$ref":"#/components/schemas/ProductDto"},"talent":{"$ref":"#/components/schemas/TalentDto"},"preShootForm":{"$ref":"#/components/schemas/PreShootFormDto"},"deliverables":{"type":"array","items":{"$ref":"#/components/schemas/DeliverableDto"}}}},"PreShootFormDto":{"type":"object","properties":{"backdrop":{"type":"string","description":"Backdrop object is a list of backdrop photos (URL/info) and 360 videos (URL/info)","example":"[\n    {\n      \"url\": \"https://testapi.ishoot.io/photo1.jpg\",\n      \"info\": \"Some backdrop 1 info\"\n      \"type\": \"IMAGE\"\n    },\n    {\n      \"url\": \"https://testapi.ishoot.io/photo2.jpg\",\n      \"info\": \"Some backdrop 2 info\"\n      \"type\": \"IMAGE\"\n    }\n    {\n      \"url\": \"https://testapi.ishoot.io/video-360-1.mp4\",\n      \"info\": \"Some 360 video info 1\"\n      \"type\": \"VIDEO\"\n    },\n    {\n      \"url\": \"https://testapi.ishoot.io/video-360-2.mp4\",\n      \"info\": \"Some 360 video info 2\"\n      \"type\": \"VIDEO\"\n    }\n]"},"gear":{"type":"string","description":"Gear object contains list of all gear objects (lights, microphones, holders, etc.). Selected for using ones marked with selected=true and quantity>0.","example":"[{\"id\":\"d955e153-0630-41a3-804b-519161a66823\",\"category\":\"audio\",\"variant\":\"lightning\",\"name\":\"Lightning lapel mic\",\"maxQuantity\":1},\"quantity\":1,\"selected\":\"true\"},{\"id\":\"611cebc4-93d1-4b8d-90e1-6db71b87559f\",\"category\":\"audio\",\"variant\":\"usbc\",\"name\":\"USB-C lapel mic\",\"maxQuantity\":1,\"quantity\":0,\"selected\":\"false\"}]"},"notes":{"type":"string","description":"Notes object contains list of human notes related to some context","example":[{"author":"Some Subscriber","context":"BACKDROP","text":"Some backdrop note 1","time":"2026-02-14T16:20:00Z"},{"author":"Some Director","context":"GEAR","text":"Some gear note 2","time":"2026-02-14T16:25:00Z"}]},"contentRecommendation":{"type":"string","description":"AI generated content recommendation"}},"required":["backdrop","gear"]},"PreShootFormAddNoteCmd":{"type":"object","properties":{"engagementUuid":{"type":"string","description":"UUID of related engagement","example":"0b8b0aff-36b3-434a-a76c-b8eb201e8e51"},"text":{"type":"string","description":"Text of adding note","example":"New note"},"context":{"type":"string","description":"Context of adding note","enum":["GENERAL","SCHEDULING","RESCHEDULING","QUESTIONS","SCRIPT","BACKDROP","GEAR","AI_PROMPT","DELIVERABLE_FILE","BOOKING_COMPLETED","ENGAGEMENT_COMPLETED","HUMAN_NOTES","TALENT","DELIVERABLES","STATUS","ASSETS_URL"],"example":"'BACKDROP' or 'GEAR'"},"author":{"type":"string","description":"Author of adding note","example":"Some Person"}},"required":["author","context","engagementUuid","text"]},"EngagementAddCmd":{"type":"object","properties":{"clientUuid":{"type":"string","description":"UUID of related client","example":"0b8b0aff-36b3-434a-a76c-b8eb201e8e51"},"script":{"type":"string","description":"Some script for video","example":"Some script for video"},"questions":{"type":"string","description":"Some questions to answer in video","example":["What do you like more...","What is your..."]},"status":{"type":"string","description":"Init status, usually DRAFT","enum":["DRAFT","SCHEDULED","IN_PRODUCTION","COMPLETED","CANCELLED","READY_FOR_SHOOT","IN_REVISION"],"example":"DRAFT"},"gearFulfillment":{"type":"string","description":"Responsible for gear fulfillment","enum":["ISHOOT","SUBSCRIBER"],"example":"SUBSCRIBER"},"product":{"$ref":"#/components/schemas/ProductDto","description":"Product data"},"talent":{"$ref":"#/components/schemas/TalentDto","description":"Talent data"},"deliverables":{"type":"array","description":"Deliverables","items":{"$ref":"#/components/schemas/DeliverableAddCmd"}}},"required":["clientUuid","deliverables","gearFulfillment","product","questions","script","status","talent"]},"DeliverableFileAddNoteCmd":{"type":"object","properties":{"engagementUuid":{"type":"string","description":"UUID of related Engagement","example":"4A455aff-59b3-4aba-a88c-b8eb201e5f44"},"deliverableUuid":{"type":"string","description":"UUID of related Deliverable","example":"0b8b0aff-36b3-434a-a76c-b8eb201e8e51"},"revision":{"type":"integer","format":"int32","description":"Revision of Deliverable File","example":1},"text":{"type":"string","description":"Text of adding note","example":"New Deliverable File note"},"author":{"type":"string","description":"Author of adding note","example":"Some Person"}},"required":["author","deliverableUuid","engagementUuid","revision","text"]},"DeliverableFileDto":{"type":"object","properties":{"deliverableUuid":{"type":"string"},"revision":{"type":"integer","format":"int32"},"playbackUrl":{"type":"string"},"downloadUrl":{"type":"string"},"notes":{"type":"string"},"approvedAt":{"type":"string","format":"date-time"}}},"DeliverableFileCmd":{"type":"object","properties":{"engagementUuid":{"type":"string","description":"UUID of related Engagement","example":"4A455aff-59b3-4aba-a88c-b8eb201e5f44"},"deliverableUuid":{"type":"string","description":"UUID of related Deliverable","example":"0b8b0aff-36b3-434a-a76c-b8eb201e8e51"},"revision":{"type":"integer","format":"int32","description":"Revision of Deliverable File","example":1}},"required":["deliverableUuid","engagementUuid","revision"]},"ClientCreateCmd":{"type":"object","properties":{"uuid":{"type":"string","description":"Unique identifier for client","example":"123e4567-e89b-12d3-a456-426614174000"},"name":{"type":"string","description":"Client name","example":"Person or Company name","maxLength":250,"minLength":1},"users":{"type":"array","description":"List of users associated with the subscriber","items":{"$ref":"#/components/schemas/UserDto"}}},"required":["name","uuid"]},"UserDto":{"type":"object","properties":{"uuid":{"type":"string","description":"Unique identifier for the talent","example":"123e4567-e89b-12d3-a456-426614174000","maxLength":50,"minLength":1},"firstName":{"type":"string","description":"First name of talent","example":"John","maxLength":50,"minLength":1},"lastName":{"type":"string","description":"Last name of talent","example":"Doe","maxLength":50,"minLength":1},"email":{"type":"string","format":"email","description":"Email address of talent","example":"john.doe@example.com","maxLength":200,"minLength":1},"phoneNumber":{"type":"string","description":"Phone number of talent","example":"+1234567890","maxLength":50,"minLength":1}},"required":["email","firstName","lastName","phoneNumber","uuid"]},"CancelCmd":{"type":"object","properties":{"uuid":{"type":"string"}}},"BookingDto":{"type":"object","properties":{"uuid":{"type":"string"},"type":{"type":"string","enum":["PREINTERVIEW","SHOOT"]},"interviewUrl":{"type":"string"},"scheduled":{"type":"string","format":"date-time"},"completed":{"type":"string","format":"date-time"}}},"ScheduleCmd":{"type":"object","properties":{"engagementUuid":{"type":"string","description":"UUID of related engagement","example":"0b8b0aff-36b3-434a-a76c-b8eb201e8e51"},"type":{"type":"string","description":"Type of booking, PREINTERVIEW or SHOOT","enum":["PREINTERVIEW","SHOOT"],"example":"PREINTERVIEW"},"scheduled":{"type":"string","description":"Date and time string in ISO format","example":"2026-01-30T14:05:00Z"},"timezone":{"type":"string","description":"Timezone","example":"America/Puerto_Rico"},"appointmentTypeId":{"type":"string","description":"Appointment type ID (related to appointment duration). If empty - default value from remote server settings is used","example":16789748}},"required":["engagementUuid","scheduled","timezone","type"]},"GetSlotsResponseBody":{"type":"object","properties":{"availableDateList":{"type":"array","items":{"$ref":"#/components/schemas/IsdSlotDate"}}}},"IsdSlotDate":{"type":"object","properties":{"date":{"type":"string","format":"date","description":"Date in ISO format","example":"2024-07-15"},"dateStr":{"type":"string","description":"Formatted date string","example":"July 15"},"dayStr":{"type":"string","description":"Day of the week","example":"Monday"},"timeViewList":{"type":"array","description":"List of available time slots for the date","items":{"$ref":"#/components/schemas/IsdSlotTime"}}}},"IsdSlotTime":{"type":"object","properties":{"time":{"type":"string","format":"date-time","description":"Time of the available slot","example":"2026-01-01T09:30:00.000+00:00"},"label":{"type":"string","description":"Label for the time slot","example":"1:30 PM"},"appointmentTypeId":{"type":"integer","format":"int64","description":"Appointment Type ID associated with the time slot","example":12229500},"hidden":{"type":"boolean","description":"Indicates if the time slot is hidden","example":false}}},"EngagementFullDto":{"type":"object","properties":{"uuid":{"type":"string"},"script":{"type":"string"},"questions":{"type":"string"},"assetsUrl":{"type":"string"},"status":{"type":"string","enum":["DRAFT","SCHEDULED","IN_PRODUCTION","COMPLETED","CANCELLED","READY_FOR_SHOOT","IN_REVISION"]},"gearFulfillment":{"type":"string","enum":["ISHOOT","SUBSCRIBER"]},"client":{"$ref":"#/components/schemas/ClientDto"},"product":{"$ref":"#/components/schemas/ProductDto"},"talent":{"$ref":"#/components/schemas/TalentDto"},"preShootForm":{"$ref":"#/components/schemas/PreShootFormDto"},"deliverables":{"type":"array","items":{"$ref":"#/components/schemas/DeliverableDto"}},"notes":{"type":"array","items":{"$ref":"#/components/schemas/EngagementNoteDto"}},"deliverableFiles":{"type":"array","items":{"$ref":"#/components/schemas/DeliverableFileDto"}},"bookings":{"type":"array","items":{"$ref":"#/components/schemas/BookingDto"}}}},"EngagementNoteDto":{"type":"object","properties":{"text":{"type":"string"},"context":{"type":"string","enum":["GENERAL","SCHEDULING","RESCHEDULING","QUESTIONS","SCRIPT","BACKDROP","GEAR","AI_PROMPT","DELIVERABLE_FILE","BOOKING_COMPLETED","ENGAGEMENT_COMPLETED","HUMAN_NOTES","TALENT","DELIVERABLES","STATUS","ASSETS_URL"]},"authorType":{"type":"string","enum":["ADMIN","SUBSCRIBER","TALENT","ISD"]},"created":{"type":"string","format":"date-time"}}},"AppointmentTypeDto":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"duration":{"type":"integer","format":"int32"}}}},"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","name":"X-API-Key","in":"header"}}}}