{"openapi":"3.1.0","info":{"title":"POST /api/v1/client-messages/conversations/{conversation_id}/messages","version":"1.0.0","description":"Reply to a conversation (client)"},"servers":[{"url":"https://api.ondayzero.com","description":"Production"}],"paths":{"/api/v1/client-messages/conversations/{conversation_id}/messages":{"post":{"tags":["client-messages"],"summary":"Reply to a conversation (client)","description":"Add a message to an existing conversation as a client.","operationId":"client_reply_api_v1_client_messages_conversations__conversation_id__messages_post","parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"x-business-id","in":"header","required":true,"schema":{"type":"string","title":"X-Business-Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMessageRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationDetailResponse"}}}},"400":{"description":"Bad Request - Invalid input","content":{"application/json":{"example":{"detail":"Invalid request parameters"}}}},"401":{"description":"Unauthorized - Authentication required","content":{"application/json":{"example":{"detail":"Not authenticated"}}}},"404":{"description":"Not Found - Resource does not exist","content":{"application/json":{"example":{"detail":"Resource not found"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"ConversationCategory":{"type":"string","enum":["general","document_request","tax_question","payment_question","other"],"title":"ConversationCategory"},"ConversationDetailResponse":{"properties":{"id":{"type":"string","title":"Id"},"business_id":{"type":"string","title":"Business Id"},"advisory_firm_id":{"type":"string","title":"Advisory Firm Id"},"subject":{"type":"string","title":"Subject"},"category":{"$ref":"#/components/schemas/ConversationCategory"},"status":{"$ref":"#/components/schemas/ConversationStatus"},"created_by_user_id":{"type":"string","title":"Created By User Id"},"created_by_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Name"},"business_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Name"},"messages":{"items":{"$ref":"#/components/schemas/app__api__v1__schemas__client_messages__MessageResponse"},"type":"array","title":"Messages"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","business_id","advisory_firm_id","subject","category","status","created_by_user_id","created_at","updated_at"],"title":"ConversationDetailResponse","description":"Full conversation with messages."},"ConversationStatus":{"type":"string","enum":["open","waiting_on_client","resolved"],"title":"ConversationStatus"},"CreateMessageRequest":{"properties":{"body":{"type":"string","maxLength":10000,"minLength":1,"title":"Body","description":"Message body"}},"type":"object","required":["body"],"title":"CreateMessageRequest","description":"Add a reply to an existing conversation.","example":{"body":"Thanks for the update, that makes sense."}},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"SenderRole":{"type":"string","enum":["client","advisor"],"title":"SenderRole"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"app__api__v1__schemas__client_messages__MessageResponse":{"properties":{"id":{"type":"string","title":"Id"},"conversation_id":{"type":"string","title":"Conversation Id"},"sender_user_id":{"type":"string","title":"Sender User Id"},"sender_role":{"$ref":"#/components/schemas/SenderRole"},"sender_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sender Name"},"body":{"type":"string","title":"Body"},"read_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Read At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","conversation_id","sender_user_id","sender_role","body","created_at"],"title":"MessageResponse","description":"A single message within a conversation."}},"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API Token","description":"API token authentication. Format: `Bearer dz_...`"}}},"security":[{"BearerAuth":[]}]}