{"openapi":"3.0.1","info":{"title":"Customer Service API","version":"1.0.0"},"servers":[{"url":"/","description":"API Gateway"}],"tags":[{"name":"Public API","description":"Public facing endpoints for Customer Service"},{"name":"Customer Wallet","description":"Wallet and payment gateway APIs for customer app"}],"paths":{"/api/v1/customers/{id}/addresses/{addressId}":{"put":{"tags":["customer-controller"],"operationId":"updateAddress","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"addressId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseCustomerResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/profile":{"get":{"tags":["Public API"],"summary":"Get Profile","description":"Get customer profile details","operationId":"getProfile","parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseCustomerResponse"}}}}},"security":[{"bearerAuth":[]}]},"put":{"tags":["Public API"],"summary":"Update Profile","description":"Update customer profile (Name, Email, Phone)","operationId":"updateProfile","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProfileRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseCustomerResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/fcm-token":{"put":{"tags":["Public API"],"summary":"Update FCM Token","description":"Save or update customer FCM token after login","operationId":"updateFcmToken","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFcmTokenRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseString"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/address/{addressId}":{"put":{"tags":["Public API"],"summary":"Update Address","description":"Update an existing address","operationId":"updateAddress_1","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}},{"name":"addressId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseCustomerResponse"}}}}},"security":[{"bearerAuth":[]}]},"delete":{"tags":["Public API"],"summary":"Delete Address","description":"Delete an address","operationId":"deleteAddress","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}},{"name":"addressId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseCustomerResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers":{"get":{"tags":["customer-controller"],"operationId":"getAllCustomers","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":10}},{"name":"filter","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponsePageCustomerSummaryResponse"}}}}},"security":[{"bearerAuth":[]}]},"post":{"tags":["customer-controller"],"operationId":"createCustomer","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerCreateRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseCustomerResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/{id}/wallet/adjust":{"post":{"tags":["customer-controller"],"operationId":"adjustCustomerWalletForAdmin","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminCustomerWalletAdjustRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/{id}/status":{"post":{"tags":["customer-controller"],"operationId":"updateCustomerStatus","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminCustomerStatusRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseCustomerResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/{id}/addresses":{"post":{"tags":["customer-controller"],"operationId":"addAddress","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseCustomerResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/bookings/{bookingId}/update-service":{"post":{"tags":["customer-controller"],"operationId":"saveAdminUpdateService","parameters":[{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/bookings/{bookingId}/update-service/preview":{"post":{"tags":["customer-controller"],"operationId":"previewAdminUpdateService","parameters":[{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/bookings/{bookingId}/send-quotation":{"post":{"tags":["customer-controller"],"operationId":"sendAdminQuotation","parameters":[{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/bookings/{bookingId}/release-partner":{"post":{"tags":["customer-controller"],"operationId":"releasePartner","parameters":[{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminReleasePartnerRequest"}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/bookings/{bookingId}/parts":{"post":{"tags":["customer-controller"],"operationId":"saveAdminParts","parameters":[{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/bookings/{bookingId}/parts/remove":{"post":{"tags":["customer-controller"],"operationId":"removeAdminPart","parameters":[{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/bookings/{bookingId}/parts/preview":{"post":{"tags":["customer-controller"],"operationId":"previewAdminParts","parameters":[{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/bookings/{bookingId}/edit/sub-packages":{"post":{"tags":["customer-controller"],"operationId":"getAdminEditSubPackages","parameters":[{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/bookings/{bookingId}/edit/services":{"post":{"tags":["customer-controller"],"operationId":"getAdminEditServices","parameters":[{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/bookings/{bookingId}/edit/parts/catalog":{"post":{"tags":["customer-controller"],"operationId":"getAdminEditPartsCatalog","parameters":[{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/bookings/{bookingId}/edit/packages":{"post":{"tags":["customer-controller"],"operationId":"getAdminEditPackages","parameters":[{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/bookings/{bookingId}/cancel":{"post":{"tags":["customer-controller"],"operationId":"cancelBooking","parameters":[{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminCancelBookingRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/bookings/{bookingId}/booking-images/update":{"post":{"tags":["customer-controller"],"operationId":"updateAdminBookingImages","parameters":[{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/bookings/{bookingId}/assign-partner":{"post":{"tags":["customer-controller"],"operationId":"assignPartner","parameters":[{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminAssignPartnerRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/bookings/{bookingId}/assign-partner-preview":{"post":{"tags":["customer-controller"],"operationId":"assignPartnerPreview","parameters":[{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminAssignPartnerRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/bookings/{bookingId}/actions/{actionRequestId}/decision":{"post":{"tags":["customer-controller"],"operationId":"decideBookingAction","parameters":[{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}},{"name":"actionRequestId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminBookingActionDecisionRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/wallet/summary":{"post":{"tags":["Customer Wallet"],"summary":"Get wallet summary for logged in customer","operationId":"walletSummary","parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/wallet/recharge/initiate":{"post":{"tags":["Customer Wallet"],"summary":"Initiate Razorpay order for wallet recharge","operationId":"initiateRecharge","parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"}},{"name":"amount","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/wallet/recharge/confirm":{"post":{"tags":["Customer Wallet"],"summary":"Confirm wallet recharge after Razorpay callback verification","operationId":"confirmRecharge","parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"}},{"name":"amount","in":"query","required":false,"schema":{"type":"string"}},{"name":"payment_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"order_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"signature","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/wallet/ledger":{"post":{"tags":["Customer Wallet"],"summary":"Get wallet transaction ledger","operationId":"walletLedger","parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"}},{"name":"paymentType","in":"query","required":false,"schema":{"type":"string"}},{"name":"fromDate","in":"query","required":false,"schema":{"type":"string"}},{"name":"toDate","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/verify":{"post":{"tags":["Public API"],"summary":"Verify Login","description":"Verifies OTP and returns JWT token","operationId":"verifyLogin","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyLoginRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseAuthResponse"}}}}}}},"/api/v1/customer/public/refresh":{"post":{"tags":["Public API"],"summary":"Refresh Login Token","description":"Generates a new access token using a valid refresh token","operationId":"refreshLogin","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshTokenRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseAuthResponse"}}}}}}},"/api/v1/customer/public/payments/history":{"post":{"tags":["Customer Wallet"],"summary":"Get customer payment history","operationId":"paymentHistory","parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"}},{"name":"purpose","in":"query","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/login/phone":{"post":{"tags":["Public API"],"summary":"Phone Login","description":"Initiates login by sending OTP to phone number","operationId":"phoneLogin","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhoneLoginRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseString"}}}}}}},"/api/v1/customer/public/login/google":{"post":{"tags":["Public API"],"summary":"Google Login","description":"Login or Register using Google ID Token","operationId":"loginWithGoogle","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleLoginRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseAuthResponse"}}}}}}},"/api/v1/customer/public/login/facebook":{"post":{"tags":["Public API"],"summary":"Facebook Login","description":"Login or Register using Facebook Access Token","operationId":"loginWithFacebook","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FacebookLoginRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseAuthResponse"}}}}}}},"/api/v1/customer/public/bookings":{"get":{"tags":["Public API"],"summary":"Get My Bookings","description":"Fetch all bookings for the logged in customer","operationId":"getBookings","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseListCustomerBookingResponse"}}}}},"security":[{"bearerAuth":[]}]},"post":{"tags":["Public API"],"summary":"Create Booking","description":"Create and save a booking from checkout","operationId":"createBooking","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCustomerBookingRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseListCustomerBookingResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/bookings/{bookingId}/revisit/request":{"post":{"tags":["Public API"],"summary":"Request Booking Revisit","description":"Create a customer-origin revisit request with required comment","operationId":"requestBookingRevisit","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}},{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/bookings/{bookingId}/review/submit":{"post":{"tags":["Public API"],"summary":"Submit Dual Booking Review","description":"Submit The Classy and partner review together","operationId":"submitBookingReview","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}},{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/bookings/{bookingId}/reschedule":{"post":{"tags":["Public API"],"summary":"Reschedule Booking Before Partner Accept","description":"Allow customer to reschedule a booking before any partner accepts it","operationId":"rescheduleBookingByCustomer","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}},{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerRescheduleBookingRequest"}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/bookings/{bookingId}/chat/typing":{"post":{"tags":["Public API"],"summary":"Publish Booking Chat Typing State","description":"Publish customer typing event to partner side","operationId":"publishBookingChatTyping","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}},{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/bookings/{bookingId}/chat/messages":{"get":{"tags":["Public API"],"summary":"Get Booking Chat Messages","description":"Fetch booking-wise chat history for logged in customer","operationId":"getBookingChatMessages","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}},{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}},"security":[{"bearerAuth":[]}]},"post":{"tags":["Public API"],"summary":"Send Booking Chat Message","description":"Send booking-wise message from customer","operationId":"sendBookingChatMessage","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}},{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/bookings/{bookingId}/chat/messages/read-ack":{"post":{"tags":["Public API"],"summary":"Acknowledge Booking Chat Message Read","description":"Mark partner/admin messages as seen by customer","operationId":"acknowledgeBookingChatRead","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}},{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/bookings/{bookingId}/chat/messages/delivered-ack":{"post":{"tags":["Public API"],"summary":"Acknowledge Booking Chat Message Delivery","description":"Mark partner/admin messages as delivered to customer","operationId":"acknowledgeBookingChatDelivery","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}},{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/bookings/{bookingId}/chat/actions/{actionRequestId}/decision":{"post":{"tags":["Public API"],"summary":"Decide Booking Action","description":"Accept or reject booking action request from chat","operationId":"decideBookingAction_1","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}},{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}},{"name":"actionRequestId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/bookings/{bookingId}/chat/action/request-call":{"post":{"tags":["Public API"],"summary":"Request Partner Call","description":"Create booking-wise call request action message","operationId":"requestBookingCall","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}},{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/bookings/{bookingId}/cancel":{"post":{"tags":["Public API"],"summary":"Cancel Booking Before Partner Accept","description":"Allow customer to cancel a booking before any partner accepts it","operationId":"cancelBookingByCustomer","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}},{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerCancelBookingRequest"}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/bookings/payment/initiate":{"post":{"tags":["Customer Wallet"],"summary":"Initiate Razorpay order for booking payment","operationId":"initiateBookingPayment","parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"}},{"name":"bookingGroupId","in":"query","required":false,"schema":{"type":"string"}},{"name":"bookingId","in":"query","required":false,"schema":{"type":"string"}},{"name":"tips","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/bookings/payment/fail":{"post":{"tags":["Customer Wallet"],"summary":"Report booking payment failure or cancellation","operationId":"reportBookingPaymentFailure","parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"}},{"name":"bookingGroupId","in":"query","required":false,"schema":{"type":"string"}},{"name":"bookingId","in":"query","required":false,"schema":{"type":"string"}},{"name":"payment_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"order_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"reason","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/bookings/payment/confirm":{"post":{"tags":["Customer Wallet"],"summary":"Confirm booking payment after Razorpay callback verification","operationId":"confirmBookingPayment","parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"type":"string"}},{"name":"bookingGroupId","in":"query","required":false,"schema":{"type":"string"}},{"name":"bookingId","in":"query","required":false,"schema":{"type":"string"}},{"name":"payment_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"order_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"signature","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/address":{"post":{"tags":["Public API"],"summary":"Add Address","description":"Add a new address for the customer","operationId":"addAddress_1","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseCustomerResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/internal/partner-tasks/update-status":{"post":{"tags":["partner-task-internal-controller"],"operationId":"updateStatus","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/update-service":{"post":{"tags":["partner-task-internal-controller"],"operationId":"updateService","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/update-service/preview":{"post":{"tags":["partner-task-internal-controller"],"operationId":"previewUpdateService","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/summary":{"post":{"tags":["partner-task-internal-controller"],"operationId":"summary","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/sub-packages":{"post":{"tags":["partner-task-internal-controller"],"operationId":"subPackages","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/services":{"post":{"tags":["partner-task-internal-controller"],"operationId":"services","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/service-update/request":{"post":{"tags":["partner-task-internal-controller"],"operationId":"serviceUpdateRequest","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/service-completion/payment/request-online":{"post":{"tags":["partner-task-internal-controller"],"operationId":"requestServiceCompletionOnlinePayment","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/service-completion/payment/cash":{"post":{"tags":["partner-task-internal-controller"],"operationId":"recordServiceCompletionCashPayment","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/send-quotation":{"post":{"tags":["partner-task-internal-controller"],"operationId":"sendQuotation","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/revisit/request":{"post":{"tags":["partner-task-internal-controller"],"operationId":"requestPendingServiceRevisit","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/review/request":{"post":{"tags":["partner-task-internal-controller"],"operationId":"reviewRequest","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/release-claim":{"post":{"tags":["partner-task-internal-controller"],"operationId":"releaseClaim","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/preferred-scheduling/partner-availability":{"post":{"tags":["partner-task-internal-controller"],"operationId":"getPartnerPreferredSchedulingAvailability","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/parts":{"post":{"tags":["partner-task-internal-controller"],"operationId":"parts","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/parts/remove":{"post":{"tags":["partner-task-internal-controller"],"operationId":"partsRemove","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/parts/assign":{"post":{"tags":["partner-task-internal-controller"],"operationId":"partsAssign","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/parts/assign/preview":{"post":{"tags":["partner-task-internal-controller"],"operationId":"previewPartsAssign","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/packages":{"post":{"tags":["partner-task-internal-controller"],"operationId":"packages","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/packages-by-service":{"post":{"tags":["partner-task-internal-controller"],"operationId":"packagesByService","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/occupied-slots":{"post":{"tags":["partner-task-internal-controller"],"operationId":"occupiedSlots","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/list":{"post":{"tags":["partner-task-internal-controller"],"operationId":"list","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/finalize-accept":{"post":{"tags":["partner-task-internal-controller"],"operationId":"finalizeAccept","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/details":{"post":{"tags":["partner-task-internal-controller"],"operationId":"details","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/counts":{"post":{"tags":["partner-task-internal-controller"],"operationId":"counts","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/claim":{"post":{"tags":["partner-task-internal-controller"],"operationId":"claim","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/chat/typing":{"post":{"tags":["partner-task-internal-controller"],"operationId":"publishChatTyping","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/chat/threads":{"post":{"tags":["partner-task-internal-controller"],"operationId":"chatThreads","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/chat/support/admin-send":{"post":{"tags":["partner-task-internal-controller"],"operationId":"adminSendSupportMessage","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/chat/messages/send":{"post":{"tags":["partner-task-internal-controller"],"operationId":"sendChatMessage","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/chat/messages/read-ack":{"post":{"tags":["partner-task-internal-controller"],"operationId":"acknowledgeChatMessageRead","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/chat/messages/list":{"post":{"tags":["partner-task-internal-controller"],"operationId":"chatMessages","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/chat/messages/delivered-ack":{"post":{"tags":["partner-task-internal-controller"],"operationId":"acknowledgeChatMessageDelivery","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/chat/actions/self-approve":{"post":{"tags":["partner-task-internal-controller"],"operationId":"selfApproveBookingAction","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/cancel-claim":{"post":{"tags":["partner-task-internal-controller"],"operationId":"cancelClaim","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/booking-images/update":{"post":{"tags":["partner-task-internal-controller"],"operationId":"updateBookingImages","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/booking-chat/messages/send":{"post":{"tags":["partner-task-internal-controller"],"operationId":"sendBookingChatMessage_1","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/booking-chat/messages/list":{"post":{"tags":["partner-task-internal-controller"],"operationId":"bookingChatMessages","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/booking-chat/actions/request-call":{"post":{"tags":["partner-task-internal-controller"],"operationId":"requestBookingCallAction","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/active-assignments":{"post":{"tags":["partner-task-internal-controller"],"operationId":"activeAssignments","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/partner-tasks/accept-preview":{"post":{"tags":["partner-task-internal-controller"],"operationId":"acceptPreview","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTaskCommandRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/customer/internal/bookings/status":{"post":{"tags":["partner-booking-sync-controller"],"operationId":"syncBookingStatus","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerBookingStatusSyncRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}}}}}},"/api/v1/bookings/preferred-scheduling/availability":{"post":{"tags":["booking-controller"],"operationId":"getPreferredSchedulingAvailability","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreferredSchedulingAvailabilityRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/notifications/{notificationId}/read":{"patch":{"tags":["Public API"],"summary":"Mark Notification As Read","description":"Mark a customer notification as read","operationId":"markNotificationAsRead","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}},{"name":"notificationId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseCustomerNotificationResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/notifications/read-all":{"patch":{"tags":["Public API"],"summary":"Mark All Notifications As Read","description":"Mark all notifications as read for logged in customer","operationId":"markAllNotificationsAsRead","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseString"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/{id}":{"get":{"tags":["customer-controller"],"operationId":"getCustomerById","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseCustomerResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/{id}/wallet/summary":{"get":{"tags":["customer-controller"],"operationId":"getCustomerWalletSummaryForAdmin","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/{id}/wallet/ledger":{"get":{"tags":["customer-controller"],"operationId":"getCustomerWalletLedgerForAdmin","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"paymentType","in":"query","required":false,"schema":{"type":"string"}},{"name":"fromDate","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"toDate","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":10}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/{id}/bookings":{"get":{"tags":["customer-controller"],"operationId":"getCustomerBookingsForAdmin","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":10}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponsePageCustomerBookingResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/{id}/admin-details":{"get":{"tags":["customer-controller"],"operationId":"getAdminCustomerDetails","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/phone/{phoneNumber}":{"get":{"tags":["customer-controller"],"operationId":"getCustomerByPhone","parameters":[{"name":"phoneNumber","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseCustomerResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/bookings":{"get":{"tags":["customer-controller"],"operationId":"getAllBookings","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":10}},{"name":"search","in":"query","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string"}},{"name":"view","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponsePageCustomerBookingResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/bookings/{bookingId}":{"get":{"tags":["customer-controller"],"operationId":"getBookingById","parameters":[{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseCustomerBookingResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/bookings/{bookingId}/timeline":{"get":{"tags":["customer-controller"],"operationId":"getAdminBookingTimeline","parameters":[{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/bookings/{bookingId}/admin-details":{"get":{"tags":["customer-controller"],"operationId":"getAdminBookingDetails","parameters":[{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}},{"name":"chatPage","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"chatSize","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}},{"name":"timelinePage","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"timelineSize","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseAdminBookingDetailsResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/bookings/{bookingId}/admin-chat/messages":{"get":{"tags":["customer-controller"],"operationId":"getAdminBookingChatMessages","parameters":[{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/bookings/sidebar-counts":{"get":{"tags":["customer-controller"],"operationId":"getBookingSidebarCounts","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringInteger"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customers/admin/dashboard-overview":{"get":{"tags":["customer-controller"],"operationId":"getAdminDashboardOverview","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/status":{"get":{"tags":["Public API"],"summary":"Check Public API Status","description":"Returns the status of the public API","operationId":"getStatus","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"string"}}}}}}}},"/api/v1/customer/public/notifications":{"get":{"tags":["Public API"],"summary":"Get My Notifications","description":"Fetch notifications for the logged in customer","operationId":"getNotifications","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}},{"name":"unreadOnly","in":"query","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseListCustomerNotificationResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/notifications/unread-count":{"get":{"tags":["Public API"],"summary":"Get Unread Notification Count","description":"Fetch unread notification count for logged in customer","operationId":"getUnreadNotificationCount","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseLong"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/notifications/paged":{"get":{"tags":["Public API"],"summary":"Get My Notifications (Paged)","description":"Fetch paginated notifications for the logged in customer","operationId":"getNotificationsPaged","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}},{"name":"unreadOnly","in":"query","required":false,"schema":{"type":"boolean","default":false}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":5}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseMapStringObject"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/bookings/{bookingId}":{"get":{"tags":["Public API"],"summary":"Get Booking By ID","description":"Fetch booking details for the logged in customer","operationId":"getBookingById_1","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}},{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseCustomerBookingResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/bookings/{bookingId}/invoice-pdf":{"get":{"tags":["Public API"],"summary":"View Booking Invoice PDF","description":"Streams the authenticated invoice PDF for a completed booking","operationId":"viewBookingInvoicePdf","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}},{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/bookings/{bookingId}/chat/actions/{actionRequestId}/quotation-pdf":{"get":{"tags":["Public API"],"summary":"View Quotation PDF","description":"Streams the authenticated quotation PDF for a service update request","operationId":"viewBookingQuotationPdf","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}},{"name":"bookingId","in":"path","required":true,"schema":{"type":"string"}},{"name":"actionRequestId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/customer/public/bookings/paged":{"get":{"tags":["Public API"],"summary":"Get My Bookings (Paged)","description":"Fetch paginated bookings for the logged in customer","operationId":"getBookingsPaged","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":5}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponsePageCustomerBookingResponse"}}}}},"security":[{"bearerAuth":[]}]}},"/":{"get":{"tags":["root-controller"],"operationId":"index","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/api/v1/customer/public/notifications/{notificationId}":{"delete":{"tags":["Public API"],"summary":"Delete Notification","description":"Delete one notification from customer inbox","operationId":"deleteNotification","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}},{"name":"notificationId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResponseString"}}}}},"security":[{"bearerAuth":[]}]}}},"components":{"schemas":{"AddressRequest":{"type":"object","properties":{"areaId":{"type":"string"},"addressLine":{"type":"string"},"landmark":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"pincode":{"type":"string"},"type":{"type":"string"},"latitude":{"type":"number","format":"double"},"longitude":{"type":"number","format":"double"},"receiverName":{"type":"string"},"receiverPhoneNumber":{"type":"string"}}},"AddressResponse":{"type":"object","properties":{"id":{"type":"string"},"areaId":{"type":"string"},"addressLine":{"type":"string"},"landmark":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"pincode":{"type":"string"},"type":{"type":"string"},"latitude":{"type":"number","format":"double"},"longitude":{"type":"number","format":"double"},"receiverName":{"type":"string"},"receiverPhoneNumber":{"type":"string"}}},"ApiResponseCustomerResponse":{"type":"object","properties":{"error":{"type":"boolean"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/CustomerResponse"},"statusCode":{"type":"integer","format":"int32"}}},"CustomerResponse":{"type":"object","properties":{"id":{"type":"string"},"fullName":{"type":"string"},"phoneNumber":{"type":"string"},"email":{"type":"string"},"addresses":{"type":"array","items":{"$ref":"#/components/schemas/AddressResponse"}},"status":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"profileImage":{"type":"string"},"preferences":{"type":"array","items":{"type":"string"}}}},"UpdateProfileRequest":{"type":"object","properties":{"fullName":{"type":"string"},"email":{"type":"string"},"imageBase64":{"type":"string"},"preferences":{"type":"array","items":{"type":"string"}}}},"UpdateFcmTokenRequest":{"type":"object","properties":{"fcmToken":{"type":"string"}}},"ApiResponseString":{"type":"object","properties":{"error":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"string"},"statusCode":{"type":"integer","format":"int32"}}},"AddressDTO":{"type":"object","properties":{"address":{"type":"string"},"landmark":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"pincode":{"type":"string"},"label":{"type":"string"}}},"CustomerCreateRequest":{"type":"object","properties":{"fullName":{"type":"string"},"phoneNumber":{"type":"string"},"email":{"type":"string"},"addresses":{"type":"array","items":{"$ref":"#/components/schemas/AddressDTO"}}}},"AdminCustomerWalletAdjustRequest":{"type":"object","properties":{"direction":{"type":"string"},"amount":{"type":"number"},"reason":{"type":"string"}}},"ApiResponseMapStringObject":{"type":"object","properties":{"error":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","additionalProperties":{"type":"object"}},"statusCode":{"type":"integer","format":"int32"}}},"AdminCustomerStatusRequest":{"type":"object","properties":{"status":{"type":"string"},"reason":{"type":"string"}}},"PartnerTaskCommandRequest":{"type":"object","properties":{"partnerId":{"type":"string"},"bookingId":{"type":"string"},"bucket":{"type":"string"},"page":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"status":{"type":"integer","format":"int32"},"statusName":{"type":"string"},"reason":{"type":"string"},"faqId":{"type":"string"},"image":{"type":"string"},"serviceId":{"type":"string"},"packageId":{"type":"string"},"subPackageId":{"type":"string"},"packageIds":{"type":"array","items":{"type":"string"}},"subPackageIds":{"type":"array","items":{"type":"string"}},"search":{"type":"string"},"idempotencyKey":{"type":"string"},"excludeBookingId":{"type":"string"},"partnerIds":{"type":"array","items":{"type":"string"}},"fromDate":{"type":"string"},"toDate":{"type":"string"},"message":{"type":"string"},"actionRequestId":{"type":"string"},"decision":{"type":"string"},"note":{"type":"string"},"senderId":{"type":"string"},"senderRole":{"type":"string"},"threadId":{"type":"string"},"threadType":{"type":"string"},"messageIds":{"type":"array","items":{"type":"string"}},"isTyping":{"type":"boolean"},"imageType":{"type":"string"},"comment":{"type":"string"},"images":{"type":"array","items":{"type":"string"}},"scheduledDate":{"type":"string"},"scheduledTime":{"type":"string"},"partId":{"type":"string"},"parts":{"type":"array","items":{"type":"object","additionalProperties":{"type":"object"}}}}},"AdminReleasePartnerRequest":{"type":"object","properties":{"reason":{"type":"string"},"note":{"type":"string"}}},"AdminCancelBookingRequest":{"type":"object","properties":{"reason":{"type":"string"},"note":{"type":"string"}}},"AdminAssignPartnerRequest":{"type":"object","properties":{"partnerId":{"type":"string"},"note":{"type":"string"}}},"AdminBookingActionDecisionRequest":{"type":"object","properties":{"decision":{"type":"string"},"note":{"type":"string"}}},"VerifyLoginRequest":{"type":"object","properties":{"phoneNumber":{"type":"string"},"otp":{"type":"string"}}},"ApiResponseAuthResponse":{"type":"object","properties":{"error":{"type":"boolean"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/AuthResponse"},"statusCode":{"type":"integer","format":"int32"}}},"AuthResponse":{"type":"object","properties":{"token":{"type":"string"},"refreshToken":{"type":"string"},"customer":{"$ref":"#/components/schemas/CustomerResponse"},"message":{"type":"string"},"success":{"type":"boolean"},"needUserName":{"type":"boolean"},"needUserPhoneNumber":{"type":"boolean"},"needUserEmail":{"type":"boolean"}}},"RefreshTokenRequest":{"type":"object","properties":{"refreshToken":{"type":"string"}}},"PhoneLoginRequest":{"type":"object","properties":{"phoneNumber":{"type":"string"}}},"GoogleLoginRequest":{"type":"object","properties":{"googleId":{"type":"string"},"email":{"type":"string"},"fullName":{"type":"string"},"token":{"type":"string"}}},"FacebookLoginRequest":{"type":"object","properties":{"facebookId":{"type":"string"},"email":{"type":"string"},"fullName":{"type":"string"},"token":{"type":"string"}}},"BookingItemPartRequest":{"type":"object","properties":{"partId":{"type":"string"},"name":{"type":"string"},"price":{"type":"number","format":"double"},"quantity":{"type":"integer","format":"int32"},"lineTotal":{"type":"number","format":"double"},"category":{"type":"string"}}},"BookingItemRequest":{"type":"object","properties":{"itemId":{"type":"string"},"name":{"type":"string"},"price":{"type":"number","format":"double"},"quantity":{"type":"integer","format":"int32"},"category":{"type":"string"},"serviceId":{"type":"string"},"serviceName":{"type":"string"},"typeId":{"type":"string"},"typeName":{"type":"string"},"categoryId":{"type":"string"},"categoryName":{"type":"string"},"subCategoryId":{"type":"string"},"subCategoryName":{"type":"string"},"packageId":{"type":"string"},"packageName":{"type":"string"},"subPackageId":{"type":"string"},"subPackageName":{"type":"string"},"isAddon":{"type":"boolean"},"parentId":{"type":"string"},"parts":{"type":"array","items":{"$ref":"#/components/schemas/BookingItemPartRequest"}},"selectedOptions":{"type":"array","items":{"$ref":"#/components/schemas/ItemOptionRequest"}}}},"CreateCustomerBookingRequest":{"type":"object","properties":{"customerId":{"type":"string"},"addressId":{"type":"string"},"cityId":{"type":"string"},"scheduledDate":{"type":"string","format":"date"},"scheduledTime":{"type":"string"},"paymentMethod":{"type":"string"},"fcmToken":{"type":"string"},"description":{"type":"string"},"couponCode":{"type":"string"},"discountAmount":{"type":"number","format":"double"},"walletDeduction":{"type":"number","format":"double"},"subtotal":{"type":"number","format":"double"},"taxAmount":{"type":"number","format":"double"},"safetyFee":{"type":"number","format":"double"},"totalAmount":{"type":"number","format":"double"},"finalPayable":{"type":"number","format":"double"},"items":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/BookingItemRequest"}}}},"ItemOptionRequest":{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"number","format":"double"}}},"AddressSnapshotResponse":{"type":"object","properties":{"addressLine":{"type":"string"},"landmark":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"pincode":{"type":"string"},"latitude":{"type":"number","format":"double"},"longitude":{"type":"number","format":"double"},"receiverName":{"type":"string"},"receiverPhoneNumber":{"type":"string"},"areaId":{"type":"string"},"type":{"type":"string"}}},"ApiResponseListCustomerBookingResponse":{"type":"object","properties":{"error":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/CustomerBookingResponse"}},"statusCode":{"type":"integer","format":"int32"}}},"AssignedPartnerSummary":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"image":{"type":"string"},"rating":{"type":"number","format":"double"},"totalReviews":{"type":"integer","format":"int32"}}},"BookingItemPartResponse":{"type":"object","properties":{"partId":{"type":"string"},"name":{"type":"string"},"price":{"type":"number","format":"double"},"quantity":{"type":"integer","format":"int32"},"lineTotal":{"type":"number","format":"double"},"category":{"type":"string"}}},"BookingItemResponse":{"type":"object","properties":{"itemId":{"type":"string"},"name":{"type":"string"},"price":{"type":"number","format":"double"},"quantity":{"type":"integer","format":"int32"},"lineTotal":{"type":"number","format":"double"},"category":{"type":"string"},"serviceId":{"type":"string"},"serviceName":{"type":"string"},"typeId":{"type":"string"},"typeName":{"type":"string"},"categoryId":{"type":"string"},"categoryName":{"type":"string"},"subCategoryId":{"type":"string"},"subCategoryName":{"type":"string"},"packageId":{"type":"string"},"packageName":{"type":"string"},"subPackageId":{"type":"string"},"subPackageName":{"type":"string"},"isAddon":{"type":"boolean"},"parentId":{"type":"string"},"parts":{"type":"array","items":{"$ref":"#/components/schemas/BookingItemPartResponse"}},"selectedOptions":{"type":"array","items":{"$ref":"#/components/schemas/ItemOptionResponse"}}}},"BookingPaymentResponse":{"type":"object","properties":{"paymentTransactionId":{"type":"string"},"purpose":{"type":"string"},"paymentMethod":{"type":"string"},"paymentStatus":{"type":"string"},"gateway":{"type":"string"},"orderId":{"type":"string"},"paymentId":{"type":"string"},"walletTransactionId":{"type":"string"},"amount":{"type":"number","format":"double"},"currency":{"type":"string"},"message":{"type":"string"},"metadata":{"type":"object","additionalProperties":{"type":"object"}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"completedAt":{"type":"string","format":"date-time"}}},"CustomerBookingResponse":{"type":"object","properties":{"id":{"type":"string"},"bookingNumber":{"type":"string"},"customerId":{"type":"string"},"customerName":{"type":"string"},"customerPhone":{"type":"string"},"customerEmail":{"type":"string"},"cityId":{"type":"string"},"addressId":{"type":"string"},"addressSnapshot":{"$ref":"#/components/schemas/AddressSnapshotResponse"},"address":{"type":"string"},"scheduledDate":{"type":"string","format":"date"},"scheduledTime":{"type":"string"},"status":{"type":"string"},"allowedActions":{"type":"object","additionalProperties":{"type":"object"}},"assignedPartnerId":{"type":"string"},"assignedPartner":{"$ref":"#/components/schemas/AssignedPartnerSummary"},"chatUnreadCount":{"type":"integer","format":"int64"},"partnerTaskStatus":{"type":"string"},"partnerTaskUpdatedAt":{"type":"string","format":"date-time"},"bookingGroupId":{"type":"string"},"splitIndex":{"type":"integer","format":"int32"},"splitCount":{"type":"integer","format":"int32"},"bookingUpdateData":{"type":"object","additionalProperties":{"type":"object"}},"draftBookingUpdateData":{"type":"object","additionalProperties":{"type":"object"}},"latestServiceUpdateAction":{"type":"object","additionalProperties":{"type":"object"}},"latestRevisitAction":{"type":"object","additionalProperties":{"type":"object"}},"latestReviewAction":{"type":"object","additionalProperties":{"type":"object"}},"bookingParts":{"type":"array","items":{"$ref":"#/components/schemas/BookingItemPartResponse"}},"imageUpload":{"type":"object","additionalProperties":{"type":"object"}},"pendingServiceData":{"type":"object","additionalProperties":{"type":"object"}},"serviceCompletionPayment":{"type":"object","additionalProperties":{"type":"object"}},"reviewSummary":{"type":"object","additionalProperties":{"type":"object"}},"customerSelectedServiceView":{"type":"object","additionalProperties":{"type":"object"}},"effectiveServiceView":{"type":"object","additionalProperties":{"type":"object"}},"payments":{"type":"array","items":{"$ref":"#/components/schemas/BookingPaymentResponse"}},"item":{"$ref":"#/components/schemas/BookingItemResponse"},"subtotal":{"type":"number","format":"double"},"taxAmount":{"type":"number","format":"double"},"safetyFee":{"type":"number","format":"double"},"couponCode":{"type":"string"},"discountAmount":{"type":"number","format":"double"},"walletDeduction":{"type":"number","format":"double"},"totalAmount":{"type":"number","format":"double"},"finalPayable":{"type":"number","format":"double"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"ItemOptionResponse":{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"number","format":"double"}}},"CustomerRescheduleBookingRequest":{"type":"object","properties":{"reasonKey":{"type":"string"},"reasonNote":{"type":"string"},"scheduledDate":{"type":"string","format":"date"},"scheduledTime":{"type":"string"}}},"CustomerCancelBookingRequest":{"type":"object","properties":{"reasonKey":{"type":"string"},"reasonNote":{"type":"string"}}},"PartnerBookingStatusSyncRequest":{"type":"object","properties":{"bookingId":{"type":"string"},"bookingNumber":{"type":"string"},"customerId":{"type":"string"},"partnerId":{"type":"string"},"bookingDetailId":{"type":"integer","format":"int32"},"partnerStatusCode":{"type":"integer","format":"int32"},"partnerStatusName":{"type":"string"},"reason":{"type":"string"},"updatedAt":{"type":"string"},"source":{"type":"string"}}},"PreferredSchedulingAvailabilityRequest":{"type":"object","properties":{"partnerId":{"type":"string"},"bookingId":{"type":"string"},"packageId":{"type":"string"},"serviceTypeId":{"type":"string"},"departmentId":{"type":"string"},"cityId":{"type":"string"},"selectedDate":{"type":"string"},"selectedTime":{"type":"string"},"fromDate":{"type":"string"},"toDate":{"type":"string"}}},"ApiResponseCustomerNotificationResponse":{"type":"object","properties":{"error":{"type":"boolean"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/CustomerNotificationResponse"},"statusCode":{"type":"integer","format":"int32"}}},"CustomerNotificationResponse":{"type":"object","properties":{"id":{"type":"string"},"customerId":{"type":"string"},"title":{"type":"string"},"message":{"type":"string"},"image":{"type":"string"},"data":{"type":"object","additionalProperties":{"type":"object"}},"read":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"}}},"ApiResponsePageCustomerSummaryResponse":{"type":"object","properties":{"error":{"type":"boolean"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/PageCustomerSummaryResponse"},"statusCode":{"type":"integer","format":"int32"}}},"CustomerSummaryResponse":{"type":"object","properties":{"id":{"type":"string"},"fullName":{"type":"string"},"phoneNumber":{"type":"string"},"email":{"type":"string"},"addressCount":{"type":"integer","format":"int32"},"bookingCount":{"type":"integer","format":"int64"},"status":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"PageCustomerSummaryResponse":{"type":"object","properties":{"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"},"last":{"type":"boolean"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"first":{"type":"boolean"},"numberOfElements":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/CustomerSummaryResponse"}},"number":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"empty":{"type":"boolean"}}},"PageableObject":{"type":"object","properties":{"unpaged":{"type":"boolean"},"paged":{"type":"boolean"},"pageNumber":{"type":"integer","format":"int32"},"pageSize":{"type":"integer","format":"int32"},"offset":{"type":"integer","format":"int64"},"sort":{"$ref":"#/components/schemas/SortObject"}}},"SortObject":{"type":"object","properties":{"unsorted":{"type":"boolean"},"sorted":{"type":"boolean"},"empty":{"type":"boolean"}}},"ApiResponsePageCustomerBookingResponse":{"type":"object","properties":{"error":{"type":"boolean"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/PageCustomerBookingResponse"},"statusCode":{"type":"integer","format":"int32"}}},"PageCustomerBookingResponse":{"type":"object","properties":{"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"},"last":{"type":"boolean"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"first":{"type":"boolean"},"numberOfElements":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/CustomerBookingResponse"}},"number":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"empty":{"type":"boolean"}}},"ApiResponseCustomerBookingResponse":{"type":"object","properties":{"error":{"type":"boolean"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/CustomerBookingResponse"},"statusCode":{"type":"integer","format":"int32"}}},"AdminBookingDetailsResponse":{"type":"object","properties":{"booking":{"$ref":"#/components/schemas/CustomerBookingResponse"},"customer":{"type":"object","additionalProperties":{"type":"object"}},"assignedPartner":{"$ref":"#/components/schemas/AssignedPartnerSummary"},"serviceViews":{"type":"object","additionalProperties":{"type":"object"}},"payments":{"type":"object","additionalProperties":{"type":"object"}},"actions":{"type":"object","additionalProperties":{"type":"object"}},"chat":{"type":"object","additionalProperties":{"type":"object"}},"timeline":{"type":"object","additionalProperties":{"type":"object"}}}},"ApiResponseAdminBookingDetailsResponse":{"type":"object","properties":{"error":{"type":"boolean"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/AdminBookingDetailsResponse"},"statusCode":{"type":"integer","format":"int32"}}},"ApiResponseMapStringInteger":{"type":"object","properties":{"error":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","additionalProperties":{"type":"integer","format":"int32"}},"statusCode":{"type":"integer","format":"int32"}}},"ApiResponseListCustomerNotificationResponse":{"type":"object","properties":{"error":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/CustomerNotificationResponse"}},"statusCode":{"type":"integer","format":"int32"}}},"ApiResponseLong":{"type":"object","properties":{"error":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"integer","format":"int64"},"statusCode":{"type":"integer","format":"int32"}}}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}}}