{"openapi":"3.0.1","info":{"title":"OpticSphere API","description":"Plateforme Emploi & Marketplace Optique","version":"v1"},"servers":[{"url":"http://os-api.jm-tech.be","description":"Generated server url"}],"security":[{"bearerAuth":[]}],"paths":{"/api/v1/users/me":{"get":{"tags":["user-controller"],"operationId":"me","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/UserProfileResponse"}}}}}},"put":{"tags":["user-controller"],"operationId":"updateMe","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserProfileRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/UserProfileResponse"}}}}}}},"/api/v1/users/me/avatar":{"put":{"tags":["user-controller"],"operationId":"updateAvatar","requestBody":{"content":{"multipart/form-data":{"schema":{"required":["file"],"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/UserProfileResponse"}}}}}}},"/api/v1/notifications/{id}/read":{"put":{"tags":["notification-controller"],"operationId":"markRead","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK"}}}},"/api/v1/notifications/read-all":{"put":{"tags":["notification-controller"],"operationId":"markAllRead","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"integer","format":"int32"}}}}}}}},"/api/v1/marketplace/{id}":{"get":{"tags":["marketplace-controller"],"operationId":"get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ListingResponse"}}}}}},"put":{"tags":["marketplace-controller"],"operationId":"update","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateListingRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ListingResponse"}}}}}},"delete":{"tags":["marketplace-controller"],"operationId":"delete","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK"}}}},"/api/v1/jobs/{id}":{"get":{"tags":["job-controller"],"operationId":"get_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/JobOfferResponse"}}}}}},"put":{"tags":["job-controller"],"operationId":"update_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateJobOfferRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/JobOfferResponse"}}}}}},"delete":{"tags":["job-controller"],"operationId":"delete_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK"}}}},"/api/v1/job-alerts/{id}":{"put":{"tags":["job-alert-controller"],"operationId":"update_2","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobAlertRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/JobAlertResponse"}}}}}},"delete":{"tags":["job-alert-controller"],"operationId":"delete_2","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK"}}}},"/api/v1/applications/{id}/status":{"put":{"tags":["job-application-controller"],"operationId":"updateStatus","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateApplicationStatusRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/JobApplicationResponse"}}}}}}},"/api/v1/admin/users/{id}/ban":{"put":{"tags":["admin-controller"],"operationId":"ban","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"banned","in":"query","required":false,"schema":{"type":"boolean","default":true}}],"responses":{"200":{"description":"OK"}}}},"/api/v1/admin/reports/{id}/resolve":{"put":{"tags":["admin-controller"],"operationId":"resolveReport","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","default":"RESOLVED","enum":["PENDING","REVIEWED","RESOLVED","DISMISSED"]}}],"responses":{"200":{"description":"OK"}}}},"/api/v1/admin/marketplace/{id}/moderate":{"put":{"tags":["admin-controller"],"operationId":"moderateListing","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModerationDecisionRequest"}}},"required":true},"responses":{"200":{"description":"OK"}}}},"/api/v1/admin/jobs/{id}/moderate":{"put":{"tags":["admin-controller"],"operationId":"moderateJob","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModerationDecisionRequest"}}},"required":true},"responses":{"200":{"description":"OK"}}}},"/api/v1/subscriptions":{"post":{"tags":["subscription-controller"],"operationId":"subscribe","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscribeRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SubscriptionResponse"}}}}}}},"/api/v1/stripe/webhook":{"post":{"tags":["stripe-webhook-controller"],"operationId":"webhook","parameters":[{"name":"Stripe-Signature","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"200":{"description":"OK"}}}},"/api/v1/notifications/preferences":{"get":{"tags":["notification-controller"],"operationId":"myPreferences","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/NotificationPreferenceResponse"}}}}}}},"post":{"tags":["notification-controller"],"operationId":"upsertPreference","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationPreferenceRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/NotificationPreferenceResponse"}}}}}}},"/api/v1/marketplace":{"get":{"tags":["marketplace-controller"],"operationId":"search","parameters":[{"name":"keywords","in":"query","required":false,"schema":{"type":"string"}},{"name":"category","in":"query","required":false,"schema":{"type":"string","enum":["FRONTOFOCOMETRE","MEULEUSE","AUTO_REFRACTOMETRE","LAMPE_A_FENTE","MONTURES","VERRES","LENTILLES","MOBILIER","AFFICHAGE","LOGICIEL","CONSOMMABLES","AUTRE"]}},{"name":"condition","in":"query","required":false,"schema":{"type":"string","enum":["NEW","LIKE_NEW","GOOD","FAIR"]}},{"name":"priceMin","in":"query","required":false,"schema":{"type":"number"}},{"name":"priceMax","in":"query","required":false,"schema":{"type":"number"}},{"name":"country","in":"query","required":false,"schema":{"type":"string"}},{"name":"city","in":"query","required":false,"schema":{"type":"string"}},{"name":"shippingAvailable","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageResponseListingResponse"}}}}}},"post":{"tags":["marketplace-controller"],"operationId":"create","requestBody":{"content":{"multipart/form-data":{"schema":{"required":["data"],"type":"object","properties":{"data":{"$ref":"#/components/schemas/CreateListingRequest"},"images":{"type":"array","items":{"type":"string","format":"binary"}}}}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ListingResponse"}}}}}}},"/api/v1/marketplace/{id}/order":{"post":{"tags":["marketplace-controller"],"operationId":"initiateOrder","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrderRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/OrderResponse"}}}}}}},"/api/v1/marketplace/{id}/message":{"post":{"tags":["marketplace-controller"],"operationId":"sendMessage","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketplaceMessageRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/MarketplaceMessageResponse"}}}}}}},"/api/v1/marketplace/{id}/favorite":{"post":{"tags":["marketplace-controller"],"operationId":"favorite","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK"}}},"delete":{"tags":["marketplace-controller"],"operationId":"unfavorite","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK"}}}},"/api/v1/marketplace/orders/{id}/review":{"post":{"tags":["marketplace-order-controller"],"operationId":"review","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SellerReviewRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SellerReviewResponse"}}}}}}},"/api/v1/jobs":{"get":{"tags":["job-controller"],"operationId":"search_1","parameters":[{"name":"keywords","in":"query","required":false,"schema":{"type":"string"}},{"name":"contractType","in":"query","required":false,"schema":{"type":"string","enum":["CDI","CDD","INTERIM","FREELANCE","STAGE","TEMPS_PARTIEL","REPRENEUR"]}},{"name":"specialization","in":"query","required":false,"schema":{"type":"string","enum":["OPTICIEN","OPTOMETRISTE","AUDIOPROTHESISTE","VENDEUR","COMMERCIAL","GERANT","MONTEUR","AUTRE"]}},{"name":"remote","in":"query","required":false,"schema":{"type":"string","enum":["ON_SITE","HYBRID","REMOTE"]}},{"name":"country","in":"query","required":false,"schema":{"type":"string"}},{"name":"city","in":"query","required":false,"schema":{"type":"string"}},{"name":"salaryMin","in":"query","required":false,"schema":{"type":"number"}},{"name":"urgent","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageResponseJobOfferResponse"}}}}}},"post":{"tags":["job-controller"],"operationId":"create_1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobOfferRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/JobOfferResponse"}}}}}}},"/api/v1/jobs/{id}/save":{"post":{"tags":["job-controller"],"operationId":"save","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK"}}},"delete":{"tags":["job-controller"],"operationId":"unsave","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK"}}}},"/api/v1/jobs/{id}/apply":{"post":{"tags":["job-controller"],"operationId":"apply","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/JobApplicationRequest"},"cv":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/JobApplicationResponse"}}}}}}},"/api/v1/job-alerts":{"get":{"tags":["job-alert-controller"],"operationId":"mine","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/JobAlertResponse"}}}}}}},"post":{"tags":["job-alert-controller"],"operationId":"create_2","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobAlertRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/JobAlertResponse"}}}}}}},"/api/v1/cvtheque/{candidateId}/contact":{"post":{"tags":["cvtheque-controller"],"operationId":"contact","parameters":[{"name":"candidateId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CandidateContactRequest"}}},"required":true},"responses":{"200":{"description":"OK"}}}},"/api/v1/cv/upload":{"post":{"tags":["cv-controller"],"operationId":"upload","requestBody":{"content":{"multipart/form-data":{"schema":{"required":["file"],"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/CvDocumentResponse"}}}}}}},"/api/v1/cv/skills":{"post":{"tags":["cv-controller"],"operationId":"addSkill","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CandidateSkillRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/CandidateSkillResponse"}}}}}}},"/api/v1/cv/experiences":{"post":{"tags":["cv-controller"],"operationId":"addExperience","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CandidateExperienceRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/CandidateExperienceResponse"}}}}}}},"/api/v1/cv/educations":{"post":{"tags":["cv-controller"],"operationId":"addEducation","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CandidateEducationRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/CandidateEducationResponse"}}}}}}},"/api/v1/auth/register":{"post":{"tags":["auth-controller"],"operationId":"register","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterUserRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/UserProfileResponse"}}}}}}},"/api/v1/auth/refresh":{"post":{"tags":["auth-controller"],"operationId":"refresh","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshTokenRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/TokenResponse"}}}}}}},"/api/v1/auth/logout":{"post":{"tags":["auth-controller"],"operationId":"logout","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogoutRequest"}}},"required":true},"responses":{"200":{"description":"OK"}}}},"/api/v1/auth/login":{"post":{"tags":["auth-controller"],"operationId":"login","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/TokenResponse"}}}}}}},"/api/v1/users/{id}/public":{"get":{"tags":["user-controller"],"operationId":"publicProfile","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PublicUserProfileResponse"}}}}}}},"/api/v1/subscriptions/{id}/invoices":{"get":{"tags":["subscription-controller"],"operationId":"invoices","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageResponseInvoiceResponse"}}}}}}},"/api/v1/subscriptions/plans":{"get":{"tags":["subscription-controller"],"operationId":"plans","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SubscriptionPlanResponse"}}}}}}}},"/api/v1/subscriptions/me":{"get":{"tags":["subscription-controller"],"operationId":"current","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SubscriptionResponse"}}}}}}},"/api/v1/notifications":{"get":{"tags":["notification-controller"],"operationId":"list","parameters":[{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageResponseNotificationResponse"}}}}}}},"/api/v1/notifications/unread-count":{"get":{"tags":["notification-controller"],"operationId":"unreadCount","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{"type":"integer","format":"int64"}}}}}}}},"/api/v1/marketplace/{id}/messages":{"get":{"tags":["marketplace-controller"],"operationId":"messages","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageResponseMarketplaceMessageResponse"}}}}}}},"/api/v1/marketplace/my-sales":{"get":{"tags":["marketplace-controller"],"operationId":"mySales","parameters":[{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageResponseOrderResponse"}}}}}}},"/api/v1/marketplace/my-orders":{"get":{"tags":["marketplace-controller"],"operationId":"myOrders","parameters":[{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageResponseOrderResponse"}}}}}}},"/api/v1/marketplace/my-listings":{"get":{"tags":["marketplace-controller"],"operationId":"myListings","parameters":[{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageResponseListingResponse"}}}}}}},"/api/v1/marketplace/favorites":{"get":{"tags":["marketplace-controller"],"operationId":"favorites","parameters":[{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageResponseListingResponse"}}}}}}},"/api/v1/jobs/{id}/applications":{"get":{"tags":["job-controller"],"operationId":"applications","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageResponseJobApplicationResponse"}}}}}}},"/api/v1/jobs/saved":{"get":{"tags":["job-controller"],"operationId":"savedJobs","parameters":[{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageResponseJobOfferResponse"}}}}}}},"/api/v1/jobs/my-offers":{"get":{"tags":["job-controller"],"operationId":"myOffers","parameters":[{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageResponseJobOfferResponse"}}}}}}},"/api/v1/cvtheque":{"get":{"tags":["cvtheque-controller"],"operationId":"search_2","parameters":[{"name":"keywords","in":"query","required":false,"schema":{"type":"string"}},{"name":"specialization","in":"query","required":false,"schema":{"type":"string","enum":["OPTICIEN","OPTOMETRISTE","AUDIOPROTHESISTE","VENDEUR","COMMERCIAL","GERANT","MONTEUR","AUTRE"]}},{"name":"country","in":"query","required":false,"schema":{"type":"string"}},{"name":"city","in":"query","required":false,"schema":{"type":"string"}},{"name":"minExperience","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"openToWork","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageResponseCvthequeCandidateSummary"}}}}}}},"/api/v1/cvtheque/{candidateId}":{"get":{"tags":["cvtheque-controller"],"operationId":"get_2","parameters":[{"name":"candidateId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/CvthequeCandidateDetail"}}}}}}},"/api/v1/cv/mine":{"get":{"tags":["cv-controller"],"operationId":"mine_1","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CvDocumentResponse"}}}}}}}},"/api/v1/applications/mine":{"get":{"tags":["job-application-controller"],"operationId":"mine_2","parameters":[{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageResponseJobApplicationResponse"}}}}}}},"/api/v1/admin/users":{"get":{"tags":["admin-controller"],"operationId":"users","parameters":[{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageResponseAdminUserSummary"}}}}}}},"/api/v1/admin/reports":{"get":{"tags":["admin-controller"],"operationId":"reports","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["PENDING","REVIEWED","RESOLVED","DISMISSED"]}},{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageResponseUserReportResponse"}}}}}}},"/api/v1/admin/jobs/pending":{"get":{"tags":["admin-controller"],"operationId":"pendingJobs","parameters":[{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageResponseObject"}}}}}}},"/api/v1/admin/dashboard":{"get":{"tags":["admin-controller"],"operationId":"dashboard","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/AdminDashboardResponse"}}}}}}},"/api/v1/subscriptions/{id}":{"delete":{"tags":["subscription-controller"],"operationId":"cancel","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK"}}}},"/api/v1/cv/{id}":{"delete":{"tags":["cv-controller"],"operationId":"delete_3","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK"}}}},"/api/v1/cv/skills/{id}":{"delete":{"tags":["cv-controller"],"operationId":"removeSkill","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK"}}}},"/api/v1/cv/experiences/{id}":{"delete":{"tags":["cv-controller"],"operationId":"removeExperience","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK"}}}},"/api/v1/cv/educations/{id}":{"delete":{"tags":["cv-controller"],"operationId":"removeEducation","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK"}}}}},"components":{"schemas":{"UpdateCandidateProfileRequest":{"type":"object","properties":{"title":{"maxLength":180,"minLength":0,"type":"string"},"bio":{"type":"string"},"experienceYears":{"type":"integer","format":"int32"},"specializations":{"type":"array","items":{"type":"string"}},"city":{"maxLength":120,"minLength":0,"type":"string"},"country":{"maxLength":2,"minLength":2,"type":"string"},"availableFrom":{"type":"string","format":"date"},"salaryExpectation":{"type":"number"},"openToWork":{"type":"boolean"}}},"UpdateEmployerProfileRequest":{"type":"object","properties":{"companyName":{"maxLength":255,"minLength":0,"type":"string"},"vatNumber":{"maxLength":40,"minLength":0,"type":"string"},"website":{"maxLength":255,"minLength":0,"type":"string"},"description":{"type":"string"},"city":{"maxLength":120,"minLength":0,"type":"string"},"country":{"maxLength":2,"minLength":2,"type":"string"},"employeeCount":{"type":"integer","format":"int32"}}},"UpdateUserProfileRequest":{"type":"object","properties":{"firstName":{"maxLength":120,"minLength":0,"type":"string"},"lastName":{"maxLength":120,"minLength":0,"type":"string"},"phone":{"maxLength":40,"minLength":0,"type":"string"},"candidate":{"$ref":"#/components/schemas/UpdateCandidateProfileRequest"},"employer":{"$ref":"#/components/schemas/UpdateEmployerProfileRequest"}}},"CandidateProfileResponse":{"type":"object","properties":{"title":{"type":"string"},"bio":{"type":"string"},"experienceYears":{"type":"integer","format":"int32"},"specializations":{"type":"array","items":{"type":"string"}},"city":{"type":"string"},"country":{"type":"string"},"availableFrom":{"type":"string","format":"date"},"salaryExpectation":{"type":"number"},"openToWork":{"type":"boolean"}}},"EmployerProfileResponse":{"type":"object","properties":{"companyName":{"type":"string"},"companyLogo":{"type":"string"},"vatNumber":{"type":"string"},"website":{"type":"string"},"description":{"type":"string"},"city":{"type":"string"},"country":{"type":"string"},"employeeCount":{"type":"integer","format":"int32"},"verified":{"type":"boolean"}}},"UserProfileResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"phone":{"type":"string"},"avatarUrl":{"type":"string"},"userType":{"type":"string","enum":["CANDIDATE","EMPLOYER"]},"active":{"type":"boolean"},"candidate":{"$ref":"#/components/schemas/CandidateProfileResponse"},"employer":{"$ref":"#/components/schemas/EmployerProfileResponse"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"UpdateListingRequest":{"type":"object","properties":{"title":{"maxLength":255,"minLength":0,"type":"string"},"description":{"type":"string"},"category":{"type":"string","enum":["FRONTOFOCOMETRE","MEULEUSE","AUTO_REFRACTOMETRE","LAMPE_A_FENTE","MONTURES","VERRES","LENTILLES","MOBILIER","AFFICHAGE","LOGICIEL","CONSOMMABLES","AUTRE"]},"condition":{"type":"string","enum":["NEW","LIKE_NEW","GOOD","FAIR"]},"price":{"type":"number"},"currency":{"type":"string"},"negotiable":{"type":"boolean"},"shippingAvailable":{"type":"boolean"},"shippingCost":{"type":"number"},"city":{"type":"string"},"country":{"maxLength":2,"minLength":2,"type":"string"},"status":{"type":"string","enum":["DRAFT","PENDING","ACTIVE","SOLD","EXPIRED"]}}},"ListingImageResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"imageUrl":{"type":"string"},"position":{"type":"integer","format":"int32"},"primary":{"type":"boolean"}}},"ListingResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"sellerId":{"type":"integer","format":"int64"},"sellerFirstName":{"type":"string"},"sellerLastName":{"type":"string"},"category":{"type":"string","enum":["FRONTOFOCOMETRE","MEULEUSE","AUTO_REFRACTOMETRE","LAMPE_A_FENTE","MONTURES","VERRES","LENTILLES","MOBILIER","AFFICHAGE","LOGICIEL","CONSOMMABLES","AUTRE"]},"title":{"type":"string"},"description":{"type":"string"},"condition":{"type":"string","enum":["NEW","LIKE_NEW","GOOD","FAIR"]},"price":{"type":"number"},"currency":{"type":"string"},"negotiable":{"type":"boolean"},"shippingAvailable":{"type":"boolean"},"shippingCost":{"type":"number"},"city":{"type":"string"},"country":{"type":"string"},"status":{"type":"string","enum":["DRAFT","PENDING","ACTIVE","SOLD","EXPIRED"]},"viewCount":{"type":"integer","format":"int64"},"expiresAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"images":{"type":"array","items":{"$ref":"#/components/schemas/ListingImageResponse"}}}},"UpdateJobOfferRequest":{"type":"object","properties":{"title":{"maxLength":255,"minLength":0,"type":"string"},"description":{"type":"string"},"contractType":{"type":"string","enum":["CDI","CDD","INTERIM","FREELANCE","STAGE","TEMPS_PARTIEL","REPRENEUR"]},"specialization":{"type":"string","enum":["OPTICIEN","OPTOMETRISTE","AUDIOPROTHESISTE","VENDEUR","COMMERCIAL","GERANT","MONTEUR","AUTRE"]},"salaryMin":{"type":"number"},"salaryMax":{"type":"number"},"salaryCurrency":{"type":"string"},"salaryPeriod":{"type":"string"},"city":{"type":"string"},"country":{"maxLength":2,"minLength":2,"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"remote":{"type":"string","enum":["ON_SITE","HYBRID","REMOTE"]},"experienceRequired":{"type":"integer","format":"int32"},"urgent":{"type":"boolean"},"status":{"type":"string","enum":["DRAFT","PENDING","ACTIVE","EXPIRED","CLOSED"]},"expiresAt":{"type":"string","format":"date-time"}}},"JobOfferResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"employerProfileId":{"type":"integer","format":"int64"},"employerCompanyName":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"contractType":{"type":"string","enum":["CDI","CDD","INTERIM","FREELANCE","STAGE","TEMPS_PARTIEL","REPRENEUR"]},"specialization":{"type":"string","enum":["OPTICIEN","OPTOMETRISTE","AUDIOPROTHESISTE","VENDEUR","COMMERCIAL","GERANT","MONTEUR","AUTRE"]},"salaryMin":{"type":"number"},"salaryMax":{"type":"number"},"salaryCurrency":{"type":"string"},"salaryPeriod":{"type":"string"},"city":{"type":"string"},"country":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"remote":{"type":"string","enum":["ON_SITE","HYBRID","REMOTE"]},"experienceRequired":{"type":"integer","format":"int32"},"urgent":{"type":"boolean"},"status":{"type":"string","enum":["DRAFT","PENDING","ACTIVE","EXPIRED","CLOSED"]},"publishedAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"viewCount":{"type":"integer","format":"int64"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"JobAlertRequest":{"required":["frequency"],"type":"object","properties":{"keywords":{"maxLength":512,"minLength":0,"type":"string"},"contractTypes":{"type":"array","items":{"type":"string"}},"locations":{"type":"array","items":{"type":"string"}},"frequency":{"type":"string","enum":["DAILY","WEEKLY"]},"active":{"type":"boolean"}}},"JobAlertResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"keywords":{"type":"string"},"contractTypes":{"type":"array","items":{"type":"string"}},"locations":{"type":"array","items":{"type":"string"}},"frequency":{"type":"string","enum":["DAILY","WEEKLY"]},"active":{"type":"boolean"},"lastSentAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"UpdateApplicationStatusRequest":{"required":["status"],"type":"object","properties":{"status":{"type":"string","enum":["PENDING","VIEWED","SHORTLISTED","REJECTED","ACCEPTED"]}}},"JobApplicationResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"jobOfferId":{"type":"integer","format":"int64"},"jobTitle":{"type":"string"},"candidateProfileId":{"type":"integer","format":"int64"},"candidateFirstName":{"type":"string"},"candidateLastName":{"type":"string"},"coverLetter":{"type":"string"},"cvFileUrl":{"type":"string"},"status":{"type":"string","enum":["PENDING","VIEWED","SHORTLISTED","REJECTED","ACCEPTED"]},"appliedAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"ModerationDecisionRequest":{"required":["approve"],"type":"object","properties":{"approve":{"type":"boolean"},"reason":{"type":"string"}}},"SubscribeRequest":{"required":["planId"],"type":"object","properties":{"planId":{"type":"integer","format":"int64"}}},"SubscriptionPlanResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"description":{"type":"string"},"price":{"type":"number"},"currency":{"type":"string"},"interval":{"type":"string","enum":["MONTHLY","YEARLY"]},"maxJobOffers":{"type":"integer","format":"int32"},"cvthequeAccess":{"type":"boolean"},"cvthequeCanContact":{"type":"boolean"},"featuredListings":{"type":"integer","format":"int32"}}},"SubscriptionResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"plan":{"$ref":"#/components/schemas/SubscriptionPlanResponse"},"status":{"type":"string","enum":["ACTIVE","CANCELLED","PAST_DUE","INCOMPLETE"]},"currentPeriodStart":{"type":"string","format":"date-time"},"currentPeriodEnd":{"type":"string","format":"date-time"},"cancelAtPeriodEnd":{"type":"boolean"},"stripeCheckoutUrl":{"type":"string"}}},"NotificationPreferenceRequest":{"required":["type"],"type":"object","properties":{"type":{"type":"string","enum":["NEW_APPLICATION","APPLICATION_STATUS_CHANGED","NEW_MESSAGE","JOB_ALERT_MATCH","LISTING_SOLD","NEW_REVIEW","ACCOUNT_VERIFIED","SUBSCRIPTION_EXPIRING"]},"emailEnabled":{"type":"boolean"},"pushEnabled":{"type":"boolean"},"inAppEnabled":{"type":"boolean"}}},"NotificationPreferenceResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"type":{"type":"string","enum":["NEW_APPLICATION","APPLICATION_STATUS_CHANGED","NEW_MESSAGE","JOB_ALERT_MATCH","LISTING_SOLD","NEW_REVIEW","ACCOUNT_VERIFIED","SUBSCRIPTION_EXPIRING"]},"emailEnabled":{"type":"boolean"},"pushEnabled":{"type":"boolean"},"inAppEnabled":{"type":"boolean"}}},"CreateListingRequest":{"required":["category","condition","country","description","price","title"],"type":"object","properties":{"title":{"maxLength":255,"minLength":0,"type":"string"},"description":{"type":"string"},"category":{"type":"string","enum":["FRONTOFOCOMETRE","MEULEUSE","AUTO_REFRACTOMETRE","LAMPE_A_FENTE","MONTURES","VERRES","LENTILLES","MOBILIER","AFFICHAGE","LOGICIEL","CONSOMMABLES","AUTRE"]},"condition":{"type":"string","enum":["NEW","LIKE_NEW","GOOD","FAIR"]},"price":{"type":"number"},"currency":{"maxLength":3,"minLength":3,"type":"string"},"negotiable":{"type":"boolean"},"shippingAvailable":{"type":"boolean"},"shippingCost":{"type":"number"},"city":{"maxLength":120,"minLength":0,"type":"string"},"country":{"maxLength":2,"minLength":2,"type":"string"}}},"CreateOrderRequest":{"required":["shippingAddress"],"type":"object","properties":{"shippingAddress":{"type":"object","additionalProperties":{"type":"object"}}}},"OrderResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"listingId":{"type":"integer","format":"int64"},"listingTitle":{"type":"string"},"buyerId":{"type":"integer","format":"int64"},"sellerId":{"type":"integer","format":"int64"},"amount":{"type":"number"},"currency":{"type":"string"},"stripePaymentIntentId":{"type":"string"},"stripeClientSecret":{"type":"string"},"status":{"type":"string","enum":["PENDING","PAID","SHIPPED","DELIVERED","DISPUTED","REFUNDED"]},"createdAt":{"type":"string","format":"date-time"}}},"MarketplaceMessageRequest":{"required":["content"],"type":"object","properties":{"content":{"maxLength":5000,"minLength":0,"type":"string"}}},"MarketplaceMessageResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"listingId":{"type":"integer","format":"int64"},"senderId":{"type":"integer","format":"int64"},"receiverId":{"type":"integer","format":"int64"},"content":{"type":"string"},"read":{"type":"boolean"},"sentAt":{"type":"string","format":"date-time"}}},"SellerReviewRequest":{"type":"object","properties":{"rating":{"maximum":5,"minimum":1,"type":"integer","format":"int32"},"comment":{"maxLength":2000,"minLength":0,"type":"string"}}},"SellerReviewResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"orderId":{"type":"integer","format":"int64"},"reviewerId":{"type":"integer","format":"int64"},"sellerId":{"type":"integer","format":"int64"},"rating":{"type":"integer","format":"int32"},"comment":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}}},"CreateJobOfferRequest":{"required":["contractType","country","description","specialization","title"],"type":"object","properties":{"title":{"maxLength":255,"minLength":0,"type":"string"},"description":{"type":"string"},"contractType":{"type":"string","enum":["CDI","CDD","INTERIM","FREELANCE","STAGE","TEMPS_PARTIEL","REPRENEUR"]},"specialization":{"type":"string","enum":["OPTICIEN","OPTOMETRISTE","AUDIOPROTHESISTE","VENDEUR","COMMERCIAL","GERANT","MONTEUR","AUTRE"]},"salaryMin":{"type":"number"},"salaryMax":{"type":"number"},"salaryCurrency":{"maxLength":3,"minLength":3,"type":"string"},"salaryPeriod":{"maxLength":20,"minLength":0,"type":"string"},"city":{"maxLength":120,"minLength":0,"type":"string"},"country":{"maxLength":2,"minLength":2,"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"remote":{"type":"string","enum":["ON_SITE","HYBRID","REMOTE"]},"experienceRequired":{"type":"integer","format":"int32"},"urgent":{"type":"boolean"},"expiresAt":{"type":"string","format":"date-time"}}},"JobApplicationRequest":{"type":"object","properties":{"coverLetter":{"maxLength":5000,"minLength":0,"type":"string"},"cvFileUrl":{"type":"string"}}},"CandidateContactRequest":{"required":["message","subject"],"type":"object","properties":{"subject":{"maxLength":255,"minLength":0,"type":"string"},"message":{"maxLength":5000,"minLength":0,"type":"string"}}},"CvDocumentResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"fileUrl":{"type":"string"},"fileName":{"type":"string"},"fileSize":{"type":"integer","format":"int64"},"uploadedAt":{"type":"string","format":"date-time"},"active":{"type":"boolean"}}},"CandidateSkillRequest":{"required":["level","skillName"],"type":"object","properties":{"skillName":{"maxLength":120,"minLength":0,"type":"string"},"level":{"type":"string","enum":["JUNIOR","CONFIRMED","SENIOR","EXPERT"]}}},"CandidateSkillResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"skillName":{"type":"string"},"level":{"type":"string","enum":["JUNIOR","CONFIRMED","SENIOR","EXPERT"]}}},"CandidateExperienceRequest":{"required":["companyName","jobTitle","startDate"],"type":"object","properties":{"companyName":{"maxLength":255,"minLength":0,"type":"string"},"jobTitle":{"maxLength":255,"minLength":0,"type":"string"},"startDate":{"type":"string","format":"date"},"endDate":{"type":"string","format":"date"},"description":{"type":"string"},"city":{"maxLength":120,"minLength":0,"type":"string"}}},"CandidateExperienceResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"companyName":{"type":"string"},"jobTitle":{"type":"string"},"startDate":{"type":"string","format":"date"},"endDate":{"type":"string","format":"date"},"description":{"type":"string"},"city":{"type":"string"}}},"CandidateEducationRequest":{"required":["diploma","school"],"type":"object","properties":{"school":{"maxLength":255,"minLength":0,"type":"string"},"diploma":{"maxLength":255,"minLength":0,"type":"string"},"year":{"type":"integer","format":"int32"},"description":{"type":"string"}}},"CandidateEducationResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"school":{"type":"string"},"diploma":{"type":"string"},"year":{"type":"integer","format":"int32"},"description":{"type":"string"}}},"RegisterUserRequest":{"required":["email","firstName","lastName","password","userType"],"type":"object","properties":{"email":{"maxLength":255,"minLength":0,"type":"string"},"password":{"maxLength":100,"minLength":8,"type":"string"},"firstName":{"maxLength":120,"minLength":0,"type":"string"},"lastName":{"maxLength":120,"minLength":0,"type":"string"},"phone":{"maxLength":40,"minLength":0,"type":"string"},"userType":{"type":"string","enum":["CANDIDATE","EMPLOYER"]},"companyName":{"maxLength":255,"minLength":0,"type":"string"}}},"RefreshTokenRequest":{"required":["refreshToken"],"type":"object","properties":{"refreshToken":{"type":"string"}}},"TokenResponse":{"type":"object","properties":{"access_token":{"type":"string"},"expires_in":{"type":"integer","format":"int64"},"refresh_token":{"type":"string"},"refresh_expires_in":{"type":"integer","format":"int64"},"token_type":{"type":"string"},"scope":{"type":"string"}}},"LogoutRequest":{"required":["refreshToken"],"type":"object","properties":{"refreshToken":{"type":"string"}}},"LoginRequest":{"required":["email","password"],"type":"object","properties":{"email":{"maxLength":255,"minLength":0,"type":"string"},"password":{"maxLength":100,"minLength":0,"type":"string"}}},"PublicUserProfileResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":"string"},"userType":{"type":"string","enum":["CANDIDATE","EMPLOYER"]},"employer":{"$ref":"#/components/schemas/EmployerProfileResponse"}}},"Pageable":{"type":"object","properties":{"page":{"minimum":0,"type":"integer","format":"int32"},"size":{"minimum":1,"type":"integer","format":"int32"},"sort":{"type":"array","items":{"type":"string"}}}},"InvoiceResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"amount":{"type":"number"},"currency":{"type":"string"},"status":{"type":"string","enum":["DRAFT","OPEN","PAID","UNCOLLECTIBLE","VOID"]},"paidAt":{"type":"string","format":"date-time"},"invoiceUrl":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}}},"PageResponseInvoiceResponse":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/InvoiceResponse"}},"page":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"NotificationResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"type":{"type":"string","enum":["NEW_APPLICATION","APPLICATION_STATUS_CHANGED","NEW_MESSAGE","JOB_ALERT_MATCH","LISTING_SOLD","NEW_REVIEW","ACCOUNT_VERIFIED","SUBSCRIPTION_EXPIRING"]},"title":{"type":"string"},"message":{"type":"string"},"data":{"type":"object","additionalProperties":{"type":"object"}},"read":{"type":"boolean"},"channel":{"type":"string","enum":["IN_APP","EMAIL","PUSH"]},"createdAt":{"type":"string","format":"date-time"}}},"PageResponseNotificationResponse":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/NotificationResponse"}},"page":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"PageResponseListingResponse":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/ListingResponse"}},"page":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"PageResponseMarketplaceMessageResponse":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/MarketplaceMessageResponse"}},"page":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"PageResponseOrderResponse":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/OrderResponse"}},"page":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"PageResponseJobOfferResponse":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/JobOfferResponse"}},"page":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"PageResponseJobApplicationResponse":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/JobApplicationResponse"}},"page":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"CvthequeCandidateSummary":{"type":"object","properties":{"candidateProfileId":{"type":"integer","format":"int64"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":"string"},"title":{"type":"string"},"experienceYears":{"type":"integer","format":"int32"},"specializations":{"type":"array","items":{"type":"string"}},"city":{"type":"string"},"country":{"type":"string"},"salaryExpectation":{"type":"number"},"openToWork":{"type":"boolean"}}},"PageResponseCvthequeCandidateSummary":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/CvthequeCandidateSummary"}},"page":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"CvthequeCandidateDetail":{"type":"object","properties":{"candidateProfileId":{"type":"integer","format":"int64"},"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"avatarUrl":{"type":"string"},"title":{"type":"string"},"bio":{"type":"string"},"experienceYears":{"type":"integer","format":"int32"},"specializations":{"type":"array","items":{"type":"string"}},"city":{"type":"string"},"country":{"type":"string"},"salaryExpectation":{"type":"number"},"openToWork":{"type":"boolean"},"latestCv":{"$ref":"#/components/schemas/CvDocumentResponse"},"skills":{"type":"array","items":{"$ref":"#/components/schemas/CandidateSkillResponse"}},"experiences":{"type":"array","items":{"$ref":"#/components/schemas/CandidateExperienceResponse"}},"educations":{"type":"array","items":{"$ref":"#/components/schemas/CandidateEducationResponse"}}}},"AdminUserSummary":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"userType":{"type":"string","enum":["CANDIDATE","EMPLOYER"]},"active":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"}}},"PageResponseAdminUserSummary":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/AdminUserSummary"}},"page":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"PageResponseUserReportResponse":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/UserReportResponse"}},"page":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"UserReportResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"reporterId":{"type":"integer","format":"int64"},"targetType":{"type":"string"},"targetId":{"type":"integer","format":"int64"},"reason":{"type":"string"},"description":{"type":"string"},"status":{"type":"string","enum":["PENDING","REVIEWED","RESOLVED","DISMISSED"]},"resolvedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"PageResponseObject":{"type":"object","properties":{"content":{"type":"array","items":{"type":"object"}},"page":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"AdminDashboardResponse":{"type":"object","properties":{"totalUsers":{"type":"integer","format":"int64"},"totalCandidates":{"type":"integer","format":"int64"},"totalEmployers":{"type":"integer","format":"int64"},"activeJobOffers":{"type":"integer","format":"int64"},"pendingJobOffers":{"type":"integer","format":"int64"},"activeListings":{"type":"integer","format":"int64"},"pendingListings":{"type":"integer","format":"int64"},"activeSubscriptions":{"type":"integer","format":"int64"},"pendingReports":{"type":"integer","format":"int64"},"monthlyRevenue":{"type":"number"}}}},"securitySchemes":{"bearerAuth":{"type":"http","name":"bearerAuth","scheme":"bearer","bearerFormat":"JWT"}}}}