{"openapi":"3.0.1","info":{"title":"The Classy Admin Service API","description":"This service manages admin operations for TheClassy platform, including authentication, user management, and system administration.","contact":{"name":"The Classy Support Team","url":"https://theclassy.in/support","email":"support@theclassy.in"},"license":{"name":"Proprietary","url":"https://theclassy.in/license"},"version":"1.0.0"},"externalDocs":{"description":"The Classy Admin Service Documentation","url":"https://theclassy.in/docs/admin-service"},"servers":[{"url":"/","description":"API Gateway"}],"security":[{"bearerAuth":[]}],"tags":[{"name":"Admin Management","description":"Operations related to admin user management"},{"name":"Admin Login Settings","description":"Operations related to admin login configuration"},{"name":"User Activity","description":"Operations related to tracking user activities"},{"name":"Authentication","description":"Operations related to admin authentication"},{"name":"Admin Email Operations","description":"API endpoints for email testing and operations"},{"name":"Authentication","description":"Operations related to admin authentication","externalDocs":{"description":"Authentication Details","url":"https://theclassy.com/docs/admin-auth"}},{"name":"Admin Device Sessions","description":"Operations related to admin device sessions management"},{"name":"User Activity","description":"Operations related to user activity tracking"}],"paths":{"/api/v1/admin/update":{"put":{"tags":["Admin Management"],"summary":"Update admin basic info","description":"Update an admin user's basic information (name, email, phone).","operationId":"updateAdmin","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminBasicUpdateRequestBody"}}},"required":true},"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"400":{"description":"Bad request - admin not found or email already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"200":{"description":"Admin updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/update-status":{"put":{"tags":["Admin Management"],"summary":"Update admin status","description":"Change an admin user's status (ACTIVE, INACTIVE, etc.).","operationId":"updateAdminStatus","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminStatusUpdateRequestBody"}}},"required":true},"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"400":{"description":"Bad request - admin not found or invalid status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"200":{"description":"Admin status updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/settings/login":{"get":{"tags":["Admin Login Settings"],"summary":"Get login settings","description":"Retrieve the current login configuration settings for the authenticated admin.","operationId":"getLoginSettings","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"200":{"description":"Login settings retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"401":{"description":"Unauthorized - admin not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}}}},"put":{"tags":["Admin Login Settings"],"summary":"Update login settings","description":"Update the login configuration settings for the authenticated admin.","operationId":"updateLoginSettings","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginConfigUpdateRequest"}}},"required":true},"responses":{"400":{"description":"Bad request - invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"200":{"description":"Login settings updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"401":{"description":"Unauthorized - admin not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}}}}},"/api/v1/admin/details-update":{"put":{"tags":["Admin Management"],"summary":"Update admin user details","description":"Update an admin user's detailed information including address, department, etc.","operationId":"updateAdminDetails","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUpdateRequestBody"}}},"required":true},"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"400":{"description":"Bad request - admin not found or email already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"200":{"description":"Admin details updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/internal/notifications":{"post":{"tags":["admin-notification-controller"],"operationId":"createInternalNotification","parameters":[{"name":"X-Internal-Service-Key","in":"header","required":false,"schema":{"type":"string"}},{"name":"X-Internal-Service-Name","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminNotificationCreateRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponseAdminNotificationBroadcastResponse"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/email/send-test":{"post":{"tags":["Admin Email Operations"],"summary":"Send simple test email","description":"Sends a basic test email to verify email functionality","operationId":"sendTestEmail","parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"400":{"description":"Invalid email address","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"200":{"description":"Email sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/email/send-custom-test":{"post":{"tags":["Admin Email Operations"],"summary":"Send customized test email","description":"Sends a customized test email with specified options","operationId":"sendCustomTestEmail","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestEmailRequest"}}},"required":true},"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"200":{"description":"Email sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/create":{"post":{"tags":["Admin Management"],"summary":"Create admin with role","description":"Create a new admin user with auto-generated password and assigned role.","operationId":"createWithRole","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminRegisterRequestBody"}}},"required":true},"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"400":{"description":"Bad request - email may already exist or role not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"201":{"description":"Admin created successfully with role assigned","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/contacts":{"get":{"tags":["contact-controller"],"operationId":"getAllContacts","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Contact"}}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}},"post":{"tags":["contact-controller"],"operationId":"saveContact","parameters":[{"name":"X-User-Id","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Contact"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Contact"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/contacts/groups":{"get":{"tags":["contact-controller"],"operationId":"getAllGroups","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ContactGroup"}}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}},"post":{"tags":["contact-controller"],"operationId":"saveGroup","parameters":[{"name":"X-User-Id","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactGroup"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactGroup"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/auth/validate-token":{"post":{"tags":["Authentication"],"summary":"Validate token","description":"Validate a JWT token.","operationId":"validateToken","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenValidationRequestBody"}}},"required":true},"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"200":{"description":"Token is valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"400":{"description":"Token is invalid or expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/auth/reset-password":{"post":{"tags":["Authentication"],"summary":"Reset password","description":"Reset an admin's password using a valid token.","operationId":"resetPassword","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetPasswordRequestBody"}}},"required":true},"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"400":{"description":"Invalid or expired token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"201":{"description":"Password reset successful","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/auth/register":{"post":{"tags":["Authentication"],"summary":"Register admin","description":"Register a new admin user in the system.","operationId":"register","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminRegisterRequestBody"}}},"required":true},"responses":{"201":{"description":"Admin registered successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"400":{"description":"Bad request - email may already exist","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/auth/refresh-token":{"post":{"tags":["Authentication"],"summary":"Refresh token","description":"Generate a new access token using a refresh token from Authorization header.","operationId":"refreshToken","responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"401":{"description":"Authorization header missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"201":{"description":"Token refreshed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"400":{"description":"Invalid refresh token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}}}}},"/api/v1/admin/auth/logout":{"post":{"tags":["Authentication"],"summary":"Logout","description":"Invalidate an admin's token and end the session. Token must be provided in Authorization header.","operationId":"logout","responses":{"200":{"description":"Logout successful","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"400":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"401":{"description":"Authorization header missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}}}}},"/api/v1/admin/auth/login":{"post":{"tags":["Authentication"],"summary":"Admin login","description":"Authenticate an admin user and generate a token.","operationId":"login","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminLoginRequestBody"}}},"required":true},"responses":{"400":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"201":{"description":"Login successful","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}}}}},"/api/v1/admin/auth/forgot-password":{"post":{"tags":["Authentication"],"summary":"Forgot password","description":"Send a password reset link to the admin's email.","operationId":"forgotPassword","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForgotPasswordRequestBody"}}},"required":true},"responses":{"201":{"description":"Password reset link sent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"400":{"description":"Email not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/activity/record":{"get":{"tags":["User Activity"],"summary":"Record user activity via GET","description":"Alternative endpoint to record user activity using GET method","operationId":"recordActivityGet","parameters":[{"name":"userId","in":"query","required":false,"schema":{"type":"string"}},{"name":"userName","in":"query","required":false,"schema":{"type":"string"}},{"name":"userEmail","in":"query","required":false,"schema":{"type":"string"}},{"name":"userType","in":"query","required":false,"schema":{"type":"string"}},{"name":"activityType","in":"query","required":false,"schema":{"type":"string"}},{"name":"description","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"201":{"description":"Activity recorded successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"400":{"description":"Bad request - invalid activity data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}},"post":{"tags":["User Activity"],"summary":"Record user activity","description":"Record a new user activity in the system","operationId":"recordActivity","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminActivity"}}},"required":true},"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"201":{"description":"Activity recorded successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"400":{"description":"Bad request - invalid activity data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/notifications/{notificationId}/read":{"patch":{"tags":["admin-notification-controller"],"operationId":"markNotificationAsRead","parameters":[{"name":"notificationId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponseAdminNotificationResponse"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/notifications/read-all":{"patch":{"tags":["admin-notification-controller"],"operationId":"markAllAsRead","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponseString"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/sessions":{"get":{"tags":["Admin Device Sessions"],"summary":"Get active sessions","description":"Retrieve all active device sessions for the authenticated admin.","operationId":"getActiveSessions","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"200":{"description":"Active sessions retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"401":{"description":"Unauthorized - admin not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}}}}},"/api/v1/admin/search":{"get":{"tags":["Admin Management"],"summary":"Search admin users","description":"Search admin users by name, email, or role with pagination.","operationId":"searchAdminUsers","parameters":[{"name":"query","in":"query","description":"Search term","required":true,"schema":{"type":"string"},"example":"john"},{"name":"page","in":"query","description":"Page number (0-based)","required":false,"schema":{"type":"integer","format":"int32","default":0},"example":0},{"name":"size","in":"query","description":"Number of items per page","required":false,"schema":{"type":"integer","format":"int32","default":10},"example":10},{"name":"sortBy","in":"query","description":"Sort field","required":false,"schema":{"type":"string","default":"name"},"example":"name"},{"name":"sortDir","in":"query","description":"Sort direction (asc/desc)","required":false,"schema":{"type":"string","default":"asc"},"example":"asc"}],"responses":{"400":{"description":"Invalid search parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"200":{"description":"Search results fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/notifications":{"get":{"tags":["admin-notification-controller"],"operationId":"getNotifications","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponseListAdminNotificationResponse"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/notifications/unread-count":{"get":{"tags":["admin-notification-controller"],"operationId":"getUnreadCount","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponseLong"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/get-users-by-type":{"get":{"tags":["Admin Management"],"summary":"Get users by type with pagination","description":"Retrieve users filtered by type (ADMIN/EMPLOY) with pagination support.","operationId":"getUsersByType","parameters":[{"name":"type","in":"query","description":"User type","required":true,"schema":{"type":"string"},"example":"ADMIN"},{"name":"page","in":"query","description":"Page number (0-based)","required":false,"schema":{"type":"integer","format":"int32","default":0},"example":0},{"name":"size","in":"query","description":"Number of items per page","required":false,"schema":{"type":"integer","format":"int32","default":10},"example":10},{"name":"sortBy","in":"query","description":"Sort field","required":false,"schema":{"type":"string","default":"name"},"example":"name"},{"name":"sortDir","in":"query","description":"Sort direction (asc/desc)","required":false,"schema":{"type":"string","default":"desc"},"example":"desc"},{"name":"search","in":"query","description":"Search term for name or email","required":false,"schema":{"type":"string"},"example":"john"}],"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"400":{"description":"Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"200":{"description":"Users fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/get-all-admin-users":{"get":{"tags":["Admin Management"],"summary":"Get all admin users with pagination","description":"Retrieve all admin users (both admin and employ types) with optional pagination support.","operationId":"getAllAdminUsers","parameters":[{"name":"page","in":"query","description":"Page number (0-based). Use -1 to get all users without pagination","required":false,"schema":{"type":"integer","format":"int32","default":0},"example":0},{"name":"size","in":"query","description":"Number of items per page. Ignored when page=-1","required":false,"schema":{"type":"integer","format":"int32","default":10},"example":10},{"name":"sortBy","in":"query","description":"Sort field","required":false,"schema":{"type":"string","default":"name"},"example":"name"},{"name":"sortDir","in":"query","description":"Sort direction (asc/desc)","required":false,"schema":{"type":"string","default":"desc"},"example":"desc"},{"name":"search","in":"query","description":"Search term for name or email","required":false,"schema":{"type":"string"},"example":"john"}],"responses":{"200":{"description":"Admin users fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"400":{"description":"Invalid pagination parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/get-admin-users-paginated":{"get":{"tags":["Admin Management"],"summary":"Get paginated admin users","description":"Retrieve admin users with pagination support and advanced filtering.","operationId":"getAdminUsersPaginated","parameters":[{"name":"page","in":"query","description":"Page number (0-based)","required":false,"schema":{"type":"integer","format":"int32","default":0},"example":0},{"name":"size","in":"query","description":"Number of items per page","required":false,"schema":{"type":"integer","format":"int32","default":10},"example":10},{"name":"sortBy","in":"query","description":"Sort field","required":false,"schema":{"type":"string","default":"name"},"example":"name"},{"name":"sortDir","in":"query","description":"Sort direction (asc/desc)","required":false,"schema":{"type":"string","default":"desc"},"example":"desc"},{"name":"search","in":"query","description":"Search term for name or email","required":false,"schema":{"type":"string"},"example":"john"},{"name":"status","in":"query","description":"Filter by status (ACTIVE, INACTIVE, SUSPENDED, etc.)","required":false,"schema":{"type":"string"},"example":"ACTIVE"},{"name":"roleId","in":"query","description":"Filter by role ID","required":false,"schema":{"type":"string"},"example":"role123"}],"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"200":{"description":"Paginated admin users fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"400":{"description":"Invalid pagination parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/get-admin-by-token":{"get":{"tags":["Admin Management"],"summary":"Get admin details by token","description":"Retrieve the admin details associated with a JWT token from the Authorization header.","operationId":"getAdminByToken","responses":{"401":{"description":"Missing or invalid Authorization header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"200":{"description":"Admin details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"400":{"description":"Invalid or expired token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}}}}},"/api/v1/admin/get-admin-by-id/{id}":{"get":{"tags":["Admin Management"],"summary":"Get admin by ID","description":"Retrieve an admin user by their ID, including role and permissions.","operationId":"getAdminById","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"200":{"description":"Admin data fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"400":{"description":"Admin not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/get-admin-by-id-with-role/{id}":{"get":{"tags":["Admin Management"],"summary":"Get admin by ID","description":"Retrieve an admin user by their ID, including role and permissions.","operationId":"getAdminByIdWithRole","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"200":{"description":"Admin data fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"400":{"description":"Admin not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/email/test":{"get":{"tags":["Admin Email Operations"],"summary":"Test if email controller is accessible","description":"Basic health check for email controller","operationId":"test","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"string"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/activity/user/{userId}":{"get":{"tags":["User Activity"],"summary":"Get user activities","description":"Retrieve activities for a specific user with pagination","operationId":"getUserActivities","parameters":[{"name":"userId","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":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"200":{"description":"Activities retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"404":{"description":"No activities found for user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/activity/type/{activityType}":{"get":{"tags":["User Activity"],"summary":"Get activities by type","description":"Retrieve activities by activity type with pagination","operationId":"getActivitiesByType","parameters":[{"name":"activityType","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":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"404":{"description":"No activities found for type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"200":{"description":"Activities retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/activity/stats":{"get":{"tags":["User Activity"],"summary":"Get activity statistics","description":"Retrieve statistics about user activities","operationId":"getActivityStatistics","responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"200":{"description":"Statistics retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/activity/recent":{"get":{"tags":["User Activity"],"summary":"Get recent activities","description":"Retrieve recent user activities with pagination","operationId":"getRecentActivities","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":20}}],"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"404":{"description":"No activities found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"200":{"description":"Activities retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/sessions/{sessionId}":{"delete":{"tags":["Admin Device Sessions"],"summary":"Terminate session","description":"Terminate a specific device session by its ID.","operationId":"terminateSession","parameters":[{"name":"sessionId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"400":{"description":"Bad request - session not found or cannot be terminated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"200":{"description":"Session terminated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"401":{"description":"Unauthorized - admin not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}}}}},"/api/v1/admin/sessions/all-except-current":{"delete":{"tags":["Admin Device Sessions"],"summary":"Terminate all other sessions","description":"Terminate all device sessions except the current one.","operationId":"terminateAllOtherSessions","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"400":{"description":"Bad request - error terminating sessions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"401":{"description":"Unauthorized - admin not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"200":{"description":"All other sessions terminated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}}}}},"/api/v1/admin/notifications/{notificationId}":{"delete":{"tags":["admin-notification-controller"],"operationId":"deleteNotification","parameters":[{"name":"notificationId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponseString"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/delete/{id}":{"delete":{"tags":["Admin Management"],"summary":"Delete admin user","description":"Soft delete an admin user by setting status to DELETED.","operationId":"deleteAdmin","parameters":[{"name":"id","in":"path","description":"Admin user ID","required":true,"schema":{"type":"string"},"example":123}],"responses":{"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"400":{"description":"Admin not found or cannot be deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"200":{"description":"Admin user deleted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"}}}},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/contacts/{id}":{"delete":{"tags":["contact-controller"],"operationId":"deleteContact","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}},"/api/v1/admin/contacts/groups/{id}":{"delete":{"tags":["contact-controller"],"operationId":"deleteGroup","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"description":"Unauthorized - Authentication information is missing or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyApiResponse"},"examples":{"tokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"},"tokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"}}}}}}}}},"components":{"schemas":{"AdminBasicUpdateRequestBody":{"required":["user_id"],"type":"object","properties":{"user_id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"}}},"MyApiResponse":{"type":"object","properties":{"error":{"type":"boolean","description":"Error flag"},"statusCode":{"type":"integer","description":"HTTP status code","format":"int32"},"data":{"type":"object","description":"Response data"},"message":{"type":"string","description":"Response message"}}},"AdminStatusUpdateRequestBody":{"required":["status","user_id"],"type":"object","properties":{"user_id":{"type":"string"},"status":{"type":"string"}}},"LoginConfigUpdateRequest":{"type":"object","properties":{"maxDevices":{"minimum":1,"type":"integer","format":"int32"},"enforceDeviceLimit":{"type":"boolean"},"notifyNewLogin":{"type":"boolean"},"requireVerificationOnNewDevice":{"type":"boolean"}}},"AdminUpdateRequestBody":{"required":["id"],"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"role_id":{"type":"string"},"address":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"country":{"type":"string"},"zipCode":{"type":"string"},"department":{"type":"string"},"designation":{"type":"string"}}},"AdminNotificationCreateRequest":{"type":"object","properties":{"eventId":{"type":"string"},"type":{"type":"string"},"title":{"type":"string"},"message":{"type":"string"},"bookingId":{"type":"string"},"bookingNumber":{"type":"string"},"bookingGroupId":{"type":"string"},"cityId":{"type":"string"},"cityName":{"type":"string"},"link":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}}},"AdminNotificationBroadcastResponse":{"type":"object","properties":{"notificationId":{"type":"string"},"type":{"type":"string"},"title":{"type":"string"},"message":{"type":"string"},"bookingId":{"type":"string"},"bookingNumber":{"type":"string"},"bookingGroupId":{"type":"string"},"cityId":{"type":"string"},"cityName":{"type":"string"},"link":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"recipientCount":{"type":"integer","format":"int32"}},"description":"Response data"},"MyApiResponseAdminNotificationBroadcastResponse":{"type":"object","properties":{"error":{"type":"boolean","description":"Error flag"},"statusCode":{"type":"integer","description":"HTTP status code","format":"int32"},"data":{"$ref":"#/components/schemas/AdminNotificationBroadcastResponse"},"message":{"type":"string","description":"Response message"}}},"TestEmailRequest":{"required":["message","subject","to"],"type":"object","properties":{"to":{"type":"string"},"subject":{"type":"string"},"message":{"type":"string"},"senderName":{"type":"string"},"includeTimestamp":{"type":"boolean"},"includeSystemInfo":{"type":"boolean"}}},"AdminRegisterRequestBody":{"required":["email","name"],"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"password":{"type":"string"},"role_id":{"type":"string"},"phone":{"type":"string"}}},"Contact":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"status":{"type":"string"},"groupIds":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"string"},"updatedBy":{"type":"string"}}},"ContactGroup":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"type":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"createdBy":{"type":"string"},"updatedBy":{"type":"string"},"memberIds":{"type":"array","items":{"type":"string"}},"membersCount":{"type":"integer","format":"int32"},"lastActivity":{"type":"string"}}},"TokenValidationRequestBody":{"required":["token"],"type":"object","properties":{"token":{"type":"string"}}},"ResetPasswordRequestBody":{"required":["password","token"],"type":"object","properties":{"token":{"type":"string"},"password":{"type":"string"},"ipAddress":{"type":"string"}}},"AdminLoginRequestBody":{"required":["email","password"],"type":"object","properties":{"email":{"type":"string"},"password":{"type":"string"}}},"ForgotPasswordRequestBody":{"required":["email"],"type":"object","properties":{"email":{"type":"string"}}},"AdminActivity":{"type":"object","properties":{"id":{"type":"string"},"userId":{"type":"string"},"userName":{"type":"string"},"userEmail":{"type":"string"},"userType":{"type":"string"},"department":{"type":"string"},"activityType":{"type":"string"},"description":{"type":"string"},"ipAddress":{"type":"string"},"userAgent":{"type":"string"},"url":{"type":"string"},"method":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"duration":{"type":"integer","format":"int32"},"status":{"type":"string"},"deviceType":{"type":"string"},"sessionId":{"type":"string"},"resourceId":{"type":"string"},"resourceType":{"type":"string"},"oldValue":{"type":"string"},"newValue":{"type":"string"},"module":{"type":"string"},"subModule":{"type":"string"},"location":{"type":"string"},"metadata":{"type":"string"},"successful":{"type":"boolean"}}},"AdminNotificationResponse":{"type":"object","properties":{"id":{"type":"string"},"eventId":{"type":"string"},"type":{"type":"string"},"title":{"type":"string"},"message":{"type":"string"},"bookingId":{"type":"string"},"bookingNumber":{"type":"string"},"bookingGroupId":{"type":"string"},"cityId":{"type":"string"},"cityName":{"type":"string"},"link":{"type":"string"},"read":{"type":"boolean"},"readAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"description":"Response data"},"MyApiResponseAdminNotificationResponse":{"type":"object","properties":{"error":{"type":"boolean","description":"Error flag"},"statusCode":{"type":"integer","description":"HTTP status code","format":"int32"},"data":{"$ref":"#/components/schemas/AdminNotificationResponse"},"message":{"type":"string","description":"Response message"}}},"MyApiResponseString":{"type":"object","properties":{"error":{"type":"boolean","description":"Error flag"},"statusCode":{"type":"integer","description":"HTTP status code","format":"int32"},"data":{"type":"string","description":"Response data"},"message":{"type":"string","description":"Response message"}}},"MyApiResponseListAdminNotificationResponse":{"type":"object","properties":{"error":{"type":"boolean","description":"Error flag"},"statusCode":{"type":"integer","description":"HTTP status code","format":"int32"},"data":{"type":"array","description":"Response data","items":{"$ref":"#/components/schemas/AdminNotificationResponse"}},"message":{"type":"string","description":"Response message"}}},"MyApiResponseLong":{"type":"object","properties":{"error":{"type":"boolean","description":"Error flag"},"statusCode":{"type":"integer","description":"HTTP status code","format":"int32"},"data":{"type":"integer","description":"Response data","format":"int64"},"message":{"type":"string","description":"Response message"}}}},"examples":{"unauthorizedTokenInvalid":{"summary":"Invalid authentication token","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Invalid authentication token\"}"},"badRequest":{"summary":"Bad request","value":"{\"error\":true,\"statusCode\":400,\"data\":null,\"message\":\"Invalid request parameters\"}"},"forbidden":{"summary":"Access forbidden","value":"{\"error\":true,\"statusCode\":403,\"data\":null,\"message\":\"Access denied. You do not have permission to access this resource\"}"},"notFound":{"summary":"Resource not found","value":"{\"error\":true,\"statusCode\":404,\"data\":null,\"message\":\"Resource not found\"}"},"serverError":{"summary":"Server error","value":"{\"error\":true,\"statusCode\":500,\"data\":null,\"message\":\"An internal server error occurred\"}"},"unauthorizedTokenMissing":{"summary":"Authentication token is missing","value":"{\"error\":true,\"statusCode\":401,\"data\":null,\"message\":\"Authentication token is missing\"}"}},"securitySchemes":{"bearerAuth":{"type":"http","description":"JWT Authentication. Enter 'Bearer ' followed by your token","in":"header","scheme":"bearer","bearerFormat":"JWT"}}}}