openapi: 3.0.1 info: version: 2.0.0 title: HRBox Mobile API description: | HRBox mobile app API Since HRBOX is multi-tenant application you need to find out domain and endpoint to start working with this API (Option 1) QR-code will contain this info - hrbox://bind/?url={url} where {url} will be url to /mobile/bind method. You should make POST request to this URL sending "device" param in body just like described in /mobile/bind method. In the response you will find endpoint (Option 2) Manual bind - user will provide you with {domain} {email} and {password} and you should send this info to https://{domain}/api/v2/mobile/manual-bind like described in /mobile/manual-bind method. In the response you will find endpoint Once you will get endpoint and tenantId, use it in every request you make, using endpoint as base path, and passing tenantId as header "x-hrbox-tenant-id: {tenantId}" To authorize you session, make call to {endpoint}/mobile/auth sending "x-hrbox-tenant-id: {tenantId}" header, and sending body that described in /mobile/auth method To sign your requests with session id, pass following headers with each request: x-hrbox-tenant-id: {tenantId} x-hrbox-device-id: {deviceId} x-hrbox-session-id: {sessionId} x-hrbox-session-code: {sessionSecret} x-hrbox-embed: true {tenantId} - you will get this form /mobile/auth or /mobile/bind methods {sessionId} - you will get this form /mobile/auth method {sessionSecret} - you will get this form /mobile/auth method the last one (x-hrbox-embed) is for opening web pages in WebView to remove website footer and header contact: email: yuriy@hrbox.io tags: - name: mobile description: Binding device and authorizing - name: account description: Methods for getting current user data (assignments, notifications etc.) - name: department description: Methods for browsing and searching through Org Structure - name: user description: Methods for getting user and employment information - name: article description: Methods News, Categories and Articles - name: postcard description: Methods for working with postcards - name: dashboard description: Methods for getting dashboards and widgets data paths: /mobile/bind/{id}/{token}: post: tags: - mobile summary: Bind device by token. This URL will be taken by parsing QR code operationId: mobileBind parameters: - name: id in: path description: ID schema: type: string required: true - name: token in: path description: ID schema: type: string required: true requestBody: description: Device info required: true content: application/json: schema: type: object properties: device: $ref: '#/components/schemas/device' responses: 200: description: successful operation content: application/json: schema: type: object properties: accountSecret: $ref: '#/components/schemas/accountSecret' tenantInfo: $ref: '#/components/schemas/tenantInfo' 400: description: Invalid input 403: description: Invalid id or token /mobile/request-two-factor: post: tags: - mobile summary: Запросить код двухфакторной аутентификации. Код будет выслан если она включена. operationId: mobileRequestTwoFactor requestBody: description: Email Password and Device info. Also Code if 2FAuth enabled. required: true content: application/json: schema: type: object properties: email: type: string format: email password: type: string format: password responses: 200: description: Если Двухфакторная аутентификация включена и код был выслан то в ответе будет codeRequired = true иначе codeRequired=false content: application/json: schema: type: object properties: codeRequired: type: boolean tenantInfo: $ref: '#/components/schemas/tenantInfo' delayTime: type: number 400: description: Invalid input 403: description: Invalid Email or Password 500: description: Server Error /mobile/manual-bind: post: tags: - mobile summary: Bind device by user's email and password operationId: mobileManualBind requestBody: description: Email Password and Device info. Also Code if 2FAuth enabled. required: true content: application/json: schema: type: object properties: email: type: string format: email password: type: string format: password code: type: string format: password description: two-factor authorization code device: $ref: '#/components/schemas/device' responses: 200: description: successful operation content: application/json: schema: type: object properties: accountSecret: $ref: '#/components/schemas/accountSecret' tenantInfo: $ref: '#/components/schemas/tenantInfo' 400: description: Invalid input 403: description: Invalid Email or Password 500: description: Server Error /mobile/auth: post: tags: - mobile summary: Authorize user by accountSecret that you got from /mobile/bind or /mobile/manual-bind operationId: mobileAuth requestBody: description: secret, userId and deviceId required: true content: application/json: schema: type: object properties: secret: type: string format: email userId: type: string deviceId: type: string responses: 200: description: successful authorization content: application/json: schema: type: object properties: sessionId: type: string sessionSecret: type: string tenantInfo: $ref: '#/components/schemas/tenantInfo' 400: description: Invalid input 401: description: Authorization failed, secret is invalid 404: description: Device not found 500: description: Server Error /mobile/save-push-token: post: tags: - mobile summary: Save Firebase push token to server operationId: mobileSavePushToken requestBody: description: token - the token that you get from Firebase Cloud Messaging. Provider should be "firebase", not other providers supported for now. deviceId - same device id that you used in bind or auth required: true content: application/json: schema: type: object properties: token: type: string provider: type: string default: firebase deviceId: type: string responses: 200: description: push token successfully saved content: application/json: schema: type: object properties: success: type: boolean default: true 400: description: Invalid input 401: description: Unauthorized request 403: description: Unauthorized request 500: description: Server Error /mobile/unbind: post: tags: - mobile summary: Unbind device by deviceId operationId: mobileUnbind parameters: - name: deviceId in: query description: ID schema: type: string required: true responses: 200: description: successful operation content: application/json: schema: type: object properties: tenantInfo: $ref: '#/components/schemas/tenantInfo' 400: description: Invalid input 403: description: Invalid Email or Password 500: description: Server Error /user/profile: get: tags: - user summary: Get User's profile info operationId: userProfile parameters: - name: id in: query description: User ID schema: type: string required: true responses: 200: description: User profile data content: application/json: schema: $ref: '#/components/schemas/userProfile' 400: description: Invalid input (malformed id) 401: description: Unauthorized request 403: description: Unauthorized request 404: description: User not found 500: description: Server Error /user/items: get: tags: - user summary: User items. operationId: /user/items/actionItems parameters: - name: q in: query schema: type: string responses: 200: description: User items. content: application/json: schema: properties: data: type: array items: type: object properties: id: type: string format: uuid name: type: string faceUrl: type: string 400: description: Bad Request. 401: description: Unauthorized request. 403: description: Unauthorized request. 404: description: Calendar event not found. 500: description: Server Error. /user-group/items: get: tags: - userGroup summary: User group items. operationId: /user-group/items/actionItems parameters: - name: q in: query description: Query string schema: type: string example: Some text - name: only_with_calendar_events in: query description: Only used in calendar event example: 0 schema: type: integer enum: - 0 - 1 responses: 200: description: User group items. content: application/json: schema: properties: data: type: array items: type: object properties: id: type: string format: uuid name: type: string faceUrl: type: string 400: description: Bad Request. 401: description: Unauthorized request. 403: description: Unauthorized request. 404: description: Calendar event not found. 500: description: Server Error. /meeting-place/items: get: tags: - meetingPlace summary: Meting place items. operationId: actionMeetingPlace parameters: - name: q in: query description: Query string schema: type: string example: Some text responses: 200: description: Meting place items. content: application/json: schema: properties: data: type: array items: type: object properties: id: type: string format: uuid name: type: string 400: description: Bad Request. 401: description: Unauthorized request. 403: description: Unauthorized request. 404: description: Calendar event not found. 500: description: Server Error. /account/status-text: post: tags: - account summary: Set user's status text operationId: accountStatusText requestBody: description: User's status text required: true content: application/json: schema: type: object properties: activeTypes: type: string responses: 200: description: status text saved content: application/json: schema: type: object properties: activeTypes: type: string 400: description: Invalid input 401: description: Unauthorized request 403: description: Unauthorized request 500: description: Server Error /account/status-active-types: post: tags: - account summary: Set user's active statuses operationId: accountStatusActiveTypes requestBody: description: User's active statuses required: true content: application/json: schema: type: object properties: activeTypes: type: array items: type: string responses: 200: description: user's active statuses saved content: application/json: schema: type: object properties: statusTypes: type: array items: type: string 400: description: Invalid input 401: description: Unauthorized request 403: description: Unauthorized request 500: description: Server Error /notifications/pushes: get: tags: - notifications summary: Push notifications index. Infinite scroll done by paginating with {page} parameter operationId: notificationPushes parameters: - name: per-page in: query description: How many items return in one page (default 10). schema: type: string - name: page in: query description: Current page. schema: type: string responses: 200: description: Returns array of push notifications and pagination related data content: application/json: schema: type: object properties: _meta: $ref: '#/components/schemas/meta' data: type: array items: $ref: '#/components/schemas/notification' 401: description: Unauthorized request 403: description: Unauthorized request 500: description: Server Error /notifications/mark-seen: post: tags: - notifications summary: Mark notification as seen operationId: notificationMarkSeen parameters: - in: query name: notificationId description: notificationId schema: type: string required: true responses: 200: description: Notification marked as seen content: application/json: schema: type: object properties: badge: type: number description: unseen notification count date: type: string format: date 400: description: Invalid input 401: description: Unauthorized request 403: description: Unauthorized request 500: description: Server Error /notifications/mark-seen-all: post: tags: - notifications summary: Mark all notifications as seen operationId: notificationMarkSeenAll responses: 200: description: All marked as seen content: application/json: schema: type: object properties: badge: type: number description: unseen notification count date: type: string format: date 400: description: Invalid input 401: description: Unauthorized request 403: description: Unauthorized request 500: description: Server Error /department/tree-node: get: tags: - department summary: Get departments inner structure operationId: departmentTreeNode parameters: - name: id in: query description: Parent department ID schema: type: string responses: 200: description: Department children (Departments and Users) type="user" - means user node, type="department" - means department node. [isBoss], [position] are "user" only properties. [employmentsCount], [empty] - are "department" only properties. content: application/json: schema: type: object properties: id: type: string format: uuid name: type: string default: "Department name" path: type: string default: "Department hierarchy path" items: type: array items: $ref: '#/components/schemas/structureItem' 400: description: Invalid input (malformed id) 401: description: Unauthorized request 403: description: Unauthorized request 404: description: Department not found 500: description: Server Error /department/search: get: tags: - department summary: Search Org Structure for matching users and departments operationId: departmentSearch parameters: - name: q in: query description: Query string schema: type: string responses: 200: description: Search results (Departments and Users) type="user" - means user node, type="department" - means department node. [isBoss], [position] are "user" only properties. [employmentsCount], [empty] - are "department" only properties. content: application/json: schema: type: object properties: q: type: string example: "Search query string" items: type: array items: $ref: '#/components/schemas/structureItem' 400: description: Invalid input 401: description: Unauthorized request 403: description: Unauthorized request 500: description: Server Error /postcard/user-view: get: tags: - postcard summary: Details about postcard sent to user operationId: postcardUserView parameters: - name: id in: query description: UserPostcard item ID schema: type: string required: true responses: 200: description: Postcard details content: application/json: schema: $ref: '#/components/schemas/userPostcard' 400: description: Invalid input (malformed id) 401: description: Unauthorized request 403: description: Unauthorized request 404: description: Postcard not found 500: description: Server Error /article/news: get: tags: - article summary: News index. Infinite scroll done by paginating with {page} parameter operationId: articleNews parameters: - name: per-page in: query description: How many items return in one page (default 10). schema: type: string - name: page in: query description: Current page schema: type: string responses: 200: description: Returns array of news and pagination related data content: application/json: schema: type: object properties: _meta: $ref: '#/components/schemas/meta' data: type: array items: $ref: '#/components/schemas/article' 401: description: Unauthorized request 403: description: Unauthorized request 500: description: Server Error /article/category: get: tags: - article summary: Browse or search catalog categories. Displays catalog items which can be category or article operationId: articleCategory parameters: - name: id in: query description: ID of category schema: type: string - name: q in: query description: Search query string schema: type: string responses: 200: description: Contents of category or search results (categories and articles). entity="category" - means category node, entity="article" - means article node. Category id can be used in /article/category method to browse its content content: application/json: schema: type: object properties: category: type: object description: Current category properties: id: type: string format: uuid title: type: string default: "Current category name" q: type: string default: "Search query string" items: type: array items: $ref: '#/components/schemas/catalogItem' 400: description: Invalid input 401: description: Unauthorized request 403: description: Unauthorized request 500: description: Server Error /dashboard: get: tags: - dashboard summary: Get dashboards and widgets by specifying needed widgets through get parameter. Personal user feed widgets starts with "my" prefix. Global company feed widgets starts with "upd" prefix operationId: dashboard parameters: - name: widgets in: query description: Names of required widgets separated with comma. example: myLms,mySurvey,myAchievements,myTeam,myFavorites,myPostcards schema: type: string enum: - myLms - mySurvey - myAchievements - myTeam - myFavorites - myPostcards - updNews - updVoting - updIdeas - updAchievements - updBirthday - updNewbies - updBooks - name: info in: query description: > Names of required info separated with comma. * `profileBrief` - Current user brief info * `notificationsBadge` - Current notification bell badge value example: profileBrief,notificationsBadge schema: type: string enum: - profileBrief - notificationsBadge responses: 200: description: Returns all the dashboard data about requested widgets. In response object only requested info/widgets keys will be presented. If widget is not available for current user, this widget will not exists in response of will be null. content: application/json: schema: type: object properties: profileBrief: $ref: '#/components/schemas/profileBrief' notificationsBadge: description: Current notification bell badge value type: integer default: 0 widgets: type: object properties: myLms: # description: User feed - Assigned test and courses $ref: '#/components/schemas/dashboardWidget' mySurvey: # description: User feed - Assigned surveys $ref: '#/components/schemas/dashboardWidget' myAchievements: # description: User feed - Assigned achievements $ref: '#/components/schemas/dashboardWidget' myTeam: # description: User feed - Teammates of current user $ref: '#/components/schemas/dashboardWidget' myFavorites: # description: User feed - Favorites (in development, not used) $ref: '#/components/schemas/dashboardWidget' myPostcards: # description: User feed - Received postcards $ref: '#/components/schemas/dashboardWidget' updNews: # description: Company feed - New news $ref: '#/components/schemas/dashboardWidget' updVoting: # description: Company feed - New contests $ref: '#/components/schemas/dashboardWidget' updIdeas: # description: Company feed - New ideas $ref: '#/components/schemas/dashboardWidget' updAchievements: # description: Company feed - New achievements achieved by users $ref: '#/components/schemas/dashboardWidget' updBirthday: # description: Company feed - Users that have birthday today $ref: '#/components/schemas/dashboardWidget' updNewbies: # description: Company feed - Recently employed employees $ref: '#/components/schemas/dashboardWidget' updBooks: # description: Company feed - New books in library $ref: '#/components/schemas/dashboardWidget' 400: description: Invalid input 401: description: Unauthorized request 403: description: Unauthorized request 500: description: Server Error /feedback/add: post: tags: - feedback operationId: actionAdd summary: Creates a feedback about a department or user. requestBody: description: userId - User ID from which the feedback will be created.
type - Entity type (department, user).
id - Entity id.
score - Feedback score from 1 to 5.
text - Feedback text.
isAnonymous - Anonymous feedback. required: true content: application/json: schema: type: object properties: userId: description: User ID from which the feedback will be created. type: string example: cd1a4391-9fa7-4ae3-80c1-f9b46ad1838d required: false type: description: Entity type. type: string enum: - department - user example: department required: true id: description: Entity id. type: string example: cd1a4391-9fa7-4ae3-80c1-f9b46ad1838d required: true score: description: Feedback score. type: number minimum: 1 maximum: 5 example: 5 required: true text: description: Feedback text. type: string example: Example text. required: true isAnonymous: description: Anonymous feedback. type: boolean example: true default: false required: false responses: 200: description: Returns the success status and data of the generated feedback. content: application/json: schema: type: object properties: success: type: boolean feedback: $ref: '#/components/schemas/feedback' 400: description: Bad Request. Returns a message with the error details. 401: description: Unauthorized request. 403: description: Unauthorized request. 404: description: Not found. Returns a message with the error details. 500: description: Server Error. /feedback/view: get: tags: - feedback summary: Details about feedback. operationId: /feedback/view parameters: - name: id in: query description: Feedback item ID. schema: type: string required: true responses: 200: description: Feedback details. content: application/json: schema: $ref: '#/components/schemas/feedback' 400: description: Bad Request. 401: description: Unauthorized request. 403: description: Unauthorized request. 404: description: Feedback not found. 500: description: Server Error. /calendar-event/view: get: tags: - calendarEvent summary: Details about calendar event. operationId: /calendar-event/view parameters: - name: id in: query description: Calendar event item ID. schema: type: string - name: parent_id in: query description: Calendar event parent item ID. schema: type: string - name: rec_date in: query description: Calendar event recurring date. schema: type: string responses: 200: description: Calendar event details. content: application/json: schema: properties: calendarEvent: $ref: '#/components/schemas/calendarEvent' calendarEventUser: $ref: '#/components/schemas/calendarEventUser' calendarEventBid: $ref: '#/components/schemas/calendarEventBid' hasCalendarEventBid: type: boolean canCreateCalendarEventBid: type: boolean 400: description: Bad Request. 401: description: Unauthorized request. 403: description: Unauthorized request. 404: description: Calendar event not found. 500: description: Server Error. /calendar-event: get: tags: - calendarEvent summary: Calendar event index. operationId: /calendar-event/index parameters: - name: title in: query schema: type: string - name: title_exact in: query schema: type: string - name: start_date_time in: query description: Default current month schema: type: string example: '2023-01-01 10:00:00' - name: end_date_time in: query description: Default current month +3 month schema: type: string example: '2023-04-01 10:00:00' - name: calendar_event_type_id in: query description: 1 - CORPORATE, 2 - TRAINING, 3 - MEET, 4 - PUBLIC_HOLIDAY, 5 - EVENT, 6 - WEBINAR schema: type: integer example: 1 - name: entity_id in: query description: Communication with entities, for example, is used in meeting places. 1030 - MeetingPlace schema: type: integer - name: calendar_event_entity_item_id in: query schema: type: string - name: user_id in: query schema: type: string - name: visible_to in: query description: Visible to user group schema: type: string example: '9f7063d1-959e-4c32-b186-313576375739,3a7539cb-d85e-4455-af41-fc505d1ce6dd' responses: 200: description: Calendar event index. content: application/json: schema: properties: data: type: array items: $ref: '#/components/schemas/calendarEvent' 400: description: Bad Request. 401: description: Unauthorized request. 403: description: Unauthorized request. 404: description: Calendar event not found. 500: description: Server Error. /calendar-event/items: get: tags: - calendarEvent summary: Calendar event items. operationId: actionItems parameters: - name: q in: query schema: type: string - name: calendar_event_type_id in: query description: 1 - CORPORATE, 2 - TRAINING, 3 - MEET, 4 - PUBLIC_HOLIDAY, 5 - EVENT, 6 - WEBINAR schema: type: integer example: 1 - name: entity_id in: query description: Communication with entities, for example, is used in meeting places. 1030 - MeetingPlace schema: type: integer example: 1030 - name: calendar_event_entity_item_id in: query schema: type: string example: 9f7063d1-959e-4c32-b186-313576375739 - name: user_id in: query schema: type: string example: 9f7063d1-959e-4c32-b186-313576375739 - name: visible_to in: query description: Visible to user group schema: type: string example: 9f7063d1-959e-4c32-b186-313576375739,3a7539cb-d85e-4455-af41-fc505d1ce6dd responses: 200: description: Calendar event items. content: application/json: schema: properties: data: type: array items: type: object properties: id: type: string format: uuid title: type: string 400: description: Bad Request. 401: description: Unauthorized request. 403: description: Unauthorized request. 404: description: Calendar event not found. 500: description: Server Error. /calendar-event/my: get: tags: - calendarEvent summary: Calendar event my. operationId: actionMy parameters: - name: title in: query schema: type: string - name: title_exact in: query schema: type: string - name: start_date_time in: query description: Default current month schema: type: string example: '2023-01-01 10:00:00' - name: end_date_time in: query description: Default current month +3 month schema: type: string example: '2023-04-01 10:00:00' - name: calendar_event_type_id in: query description: 1 - CORPORATE, 2 - TRAINING, 3 - MEET, 4 - PUBLIC_HOLIDAY, 5 - EVENT, 6 - WEBINAR schema: type: integer example: 1 - name: entity_id in: query example: 1030 description: Communication with entities, for example, is used in meeting places. 1030 - MeetingPlace schema: type: integer - name: calendar_event_entity_item_id in: query schema: type: string - name: user_id in: query schema: type: string example: 9f7063d1-959e-4c32-b186-313576375739 - name: visible_to in: query description: Visible to user group schema: type: string example: '9f7063d1-959e-4c32-b186-313576375739,3a7539cb-d85e-4455-af41-fc505d1ce6dd' responses: 200: description: Calendar event index. content: application/json: schema: properties: data: type: array items: $ref: '#/components/schemas/calendarEvent' 400: description: Bad Request. 401: description: Unauthorized request. 403: description: Unauthorized request. 404: description: Calendar event not found. 500: description: Server Error. /calendar-event-request: post: tags: - calendarEventRequest summary: Calendar event request create. operationId: /calendar-event-request requestBody: required: true content: application/json: schema: type: object properties: calendar_event_id: type: string format: uuid description: Calendar event ID calendar_event_parent_id: type: string format: uuid description: Calendar event parent ID calendar_event_rec_date: type: string format: date description: Calendar event recurring date responses: 200: description: Returns the calendar event request content: application/json: schema: type: object properties: success: type: boolean message: type: string errors: type: array items: type: string data: $ref: '#/components/schemas/calendarEventBid' 400: description: Bad Request. Returns a message with the error details. 401: description: Unauthorized request. 403: description: Unauthorized request. 404: description: Not found. Returns a message with the error details. 500: description: Server Error. /calendar-event-request/cancel: post: tags: - calendarEventRequest summary: Calendar event request cancel. operationId: actionCreate requestBody: required: true content: application/json: schema: type: object properties: id: type: string format: uuid description: Calendar event request ID responses: 200: description: Returns the calendar event request content: application/json: schema: type: object properties: success: type: boolean message: type: string errors: type: array items: type: string 400: description: Bad Request. Returns a message with the error details. 401: description: Unauthorized request. 403: description: Unauthorized request. 404: description: Not found. Returns a message with the error details. 500: description: Server Error. /moderation: get: tags: - moderation summary: Moderation index. operationId: /moderation/index parameters: - name: id in: query description: Moderation ID. schema: type: string required: false example: edee4e11-dab5-4aac-93ac-43c379aab6b2 responses: 200: description: Moderation object. content: application/json: schema: $ref: '#/components/schemas/moderation' 400: description: Bad Request. 401: description: Unauthorized request. 403: description: Unauthorized request. 404: description: Feedback not found. 500: description: Server Error. /moderation/accept: post: tags: - moderation summary: Accept moderation. operationId: actionAccept requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/arrayOfIds' responses: 200: description: Text content: application/json: schema: type: object properties: success: type: boolean message: type: string 400: description: Bad Request. 401: description: Unauthorized request. 403: description: Unauthorized request. 404: description: Feedback not found. 500: description: Server Error. /moderation/reject: post: tags: - moderation summary: Reject moderation. operationId: actionReject requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/arrayOfIds' responses: 200: description: Text content: application/json: schema: type: object properties: success: type: boolean message: type: string 400: description: Bad Request. 401: description: Unauthorized request. 403: description: Unauthorized request. 404: description: Feedback not found. 500: description: Server Error. /idea/settings: get: tags: - idea summary: Idea module settings. operationId: /idea/settings responses: 200: description: Idea settings object. content: application/json: schema: $ref: '#/components/schemas/ideaSettings' 401: description: Unauthorized request. 403: description: Unauthorized request. 500: description: Server Error. /idea/statuses: get: tags: - idea summary: Idea statuses list. operationId: /idea/statuses responses: 200: description: Idea statuses object. content: application/json: schema: $ref: '#/components/schemas/ideaStatuses' 401: description: Unauthorized request. 403: description: Unauthorized request. 500: description: Server Error. /idea/index: get: tags: - idea summary: Idea index. operationId: /idea/index responses: 200: description: Idea objects. content: application/json: schema: $ref: '#/components/schemas/ideaIndex' 400: description: Bad Request. 401: description: Unauthorized request. 403: description: Unauthorized request. 404: description: Feedback not found. 500: description: Server Error. /idea/view: get: tags: - idea summary: Idea view. operationId: /idea/view parameters: - name: id in: query description: Idea ID. schema: type: string required: false example: edee4e11-dab5-4aac-93ac-43c379aab6b2 responses: 200: description: Idea detailed object. content: application/json: schema: $ref: '#/components/schemas/ideaView' 400: description: Bad Request. 401: description: Unauthorized request. 403: description: Unauthorized request. 404: description: Feedback not found. 500: description: Server Error. /idea/edit: post: tags: - idea summary: Idea edit. operationId: idea/edit parameters: - name: id in: query description: Idea ID. schema: type: string required: false example: edee4e11-dab5-4aac-93ac-43c379aab6b2 requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ideaEdit' responses: 200: description: Idea object. content: application/json: schema: $ref: '#/components/schemas/ideaIndex' 400: description: Bad Request. 401: description: Unauthorized request. 403: description: Unauthorized request. 404: description: Feedback not found. 500: description: Server Error. /idea/vote: post: tags: - idea summary: Vote for idea. operationId: idea/vote parameters: - name: id in: query description: Idea ID. schema: type: string required: true example: edee4e11-dab5-4aac-93ac-43c379aab6b2 responses: 200: description: Text content: application/json: schema: type: object properties: success: description: Success status. type: boolean example: true status: description: Voting status. type: boolean example: true message: type: string example: You voted for the idea! 400: description: Bad Request. 401: description: Unauthorized request. 403: description: Unauthorized request. 404: description: Feedback not found. 500: description: Server Error. /idea/participate: post: tags: - idea summary: Participate an idea. operationId: idea/participate parameters: - name: id in: query description: Idea ID. schema: type: string required: true example: edee4e11-dab5-4aac-93ac-43c379aab6b2 responses: 200: description: Text content: application/json: schema: type: object properties: success: description: Success status. type: boolean example: true status: description: Participation status. type: boolean example: true message: type: string example: You are participating in the idea! 400: description: Bad Request. 401: description: Unauthorized request. 403: description: Unauthorized request. 404: description: Feedback not found. 500: description: Server Error. components: schemas: arrayOfIds: type: object properties: id: description: Array of IDs. type: array items: type: string example: - '53f2d03c-303a-4a3c-b57f-f7fb62fee538' - '42862a16-affa-4ba5-86c5-61376f46d695' accountSecret: type: object properties: userId: type: string format: uuid secret: type: string format: uuid tenantId: type: integer format: int64 default: 101 xml: name: accountSecret tenantInfo: type: object properties: endpoint: type: string default: https://demo.hrbox.io/api/v2 tenantId: type: integer format: int64 default: 101 tenantName: type: string default: Demo Company domain: type: string default: demo.hrbox.io brandColor: type: string default: #FF0000 logoUrl: type: string default: https://demo.hrbox.io/logo.png logoSqUrl: type: string default: https://demo.hrbox.io/logo-sq.png xml: name: tenantInfo userProfile: type: object properties: id: type: string format: uuid name: type: string default: "Chintan Rana" first_name: type: string default: "Chintan" last_name: type: string default: "Rana" middle_name: type: string default: null faceUrl: type: string default: "https://pentest.hrbox.io/file/user-face/46f838be-1b51-43ea-988e-fce2f73f6302/300.jpg" iconUrl: type: string default: "https://pentest.hrbox.io/file/user-face/46f838be-1b51-43ea-988e-fce2f73f6302/60.jpg" reg_status_id: type: integer default: 3 gender_id: type: integer default: 1 country_id: type: string default: "ru" timezone_id: type: string default: "Europe/Moscow" city_id: type: string default: "BBDAEADC-FCCA-ABCB-AEFE-FBDCEAFAAEDB" isBoss: type: boolean default: false is_external: type: boolean default: false birthdayDate: type: string default: "29 of May" cityName: type: string default: "Moscow" region: type: string default: "Arizona" office: type: string default: "106a" description: Office number employment: $ref: '#/components/schemas/employment' emails: type: array items: $ref: '#/components/schemas/contact' phones: type: array items: $ref: '#/components/schemas/contact' messengers: type: array items: $ref: '#/components/schemas/contact' achievements: type: array items: $ref: '#/components/schemas/achievement' userGroupsVisible: type: array items: $ref: '#/components/schemas/userGroup' structureItem: type: object properties: type: type: string enum: - department - user id: type: string format: uuid name: type: string default: "Name of department or user" isBoss: type: boolean default: false description: For user only iconUrl: type: string default: "https://pentest.hrbox.io/file/resize/60x0/299c6542-c541-4296-a528-90f08d835b8b.png" description: User's face image url position: type: string description: User's employment position employmentsCount: type: integer default: 0 description: Amount of employees in department empty: type: boolean default: false description: If department is empty catalogItem: type: object properties: entity: type: string description: Tells whether its category or article enum: - category - article id: type: string format: uuid title: type: string url: type: string description: type: string thumbUrl: type: string description: Thumbnail image url status_id: type: integer description: 1 - Active, 2 - Disabled, 3 - Deleted default: 1 enum: - 1 - 2 - 3 thumb_style_id: type: integer description: Type of thumb 1 - image + picture, 2 - text only, 3 - image only (square image) default: 1 enum: - 1 - 2 - 3 tags: type: array items: $ref: '#/components/schemas/tag' calendarEvent: type: object properties: id: type: string format: uuid parent_id: type: string format: uuid title: type: string description: type: string content: type: object image_id: type: string format: uuid url: type: string entity_id: type: integer reference_id: type: string format: uuid start_date_time: type: string format: 'date-time' end_date_time: type: string format: 'date-time' day_duration: type: integer is_all_day: type: boolean is_recurring: type: boolean freq: type: integer interval: type: integer by_month: type: integer by_monthday: type: array items: type: integer by_day: type: array items: type: integer visible_to: type: array items: type: string format: uuid quantity_place: type: integer quantity_available_place: type: integer calendar_event_user_count: type: integer created_user_id: type: string format: uuid updated_user_id: type: string format: uuid created_at: type: string format: 'date-time' updated_at: type: string format: 'date-time' calendar_event_type_id: type: integer create_bid_deadline_at: type: string format: 'date-time' start_date: type: string format: date end_date: type: string format: date start_time: type: string end_time: type: string start_date_time_localized: type: string end_date_time_localized: type: string created_at_localized: type: string create_bid_deadline_at_localized: type: string rec_date: type: string format: date rec_date_formatted: type: string send_notification_start: type: boolean send_notification_before_start_minutes: type: array items: type: integer duration_seconds: type: integer duration_seconds_formatted: type: string duration_seconds_formatted_data: type: object properties: hours: type: integer minutes: type: integer rrule_string: type: string type_name: type: string is_started: type: boolean is_ended: type: boolean is_ended_text: type: string is_virtual_recurring: type: boolean is_deadline_create_bid: type: boolean url_view: type: string calendarEventUser: type: object properties: id: type: string format: uuid calendar_event_id: type: string format: uuid calendar_event_parent_id: type: string format: uuid user_id: type: string format: uuid status_id: type: integer is_visited: type: boolean where_from_type_id: type: integer calendar_event_rec_date: type: string format: date status_name: type: string is_visited_text: type: string where_from_type_name: type: string calendarEventBid: type: object properties: id: type: string format: uuid calendar_event_id: type: string format: uuid calendar_event_parent_id: type: string format: uuid calendar_event_bid_status_id: type: integer calendar_event_rec_date: type: string format: date user_id: type: string format: uuid status_name: type: string user_name: type: string article: type: object properties: id: type: string format: uuid title: type: string url: type: string imageUrl: type: string description: type: string thumb_style_id: type: integer description: Type of thumb 1 - image + picture, 2 - text only, 3 - image only (square image) default: 1 enum: - 1 - 2 - 3 post_type_id: type: integer description: Post type 2 - only url (redirect to another page), 3 - page with actual content default: 2 enum: - 2 - 3 created_at: type: string format: datetime publish_at: type: string format: datetime description: Date and time from when article available to view by users updated_at: type: string format: datetime status_id: type: integer description: 1 - active, 2 - disabled, 3 - deleted default: 1 enum: - 1 - 2 - 3 likesCount: type: integer viewsCount: type: integer commentsCount: type: integer tags: type: array items: $ref: '#/components/schemas/tag' tag: type: object properties: id: type: string format: uuid name: type: string meta: type: object properties: totalCount: type: integer default: 0 description: Total items count in database pageCount: type: integer default: 1 description: How much pages there are with current perPage value currentPage: type: integer default: 1 description: Current page number perPage: type: integer default: 10 description: How much items per page contact: type: object properties: value: type: string default: "dev@hrbox.io" description: Email of phone number type: type: string default: "corporate" enum: - corporate - personal readonly: type: boolean default: true notification: type: object properties: id: type: string format: uuid subject: type: string text: type: string params: type: object properties: url: type: string default: "Url that should be opened if user taps on Notification, and there are no any other logic exists for this type of notification" description: Property os optional. Url that should be opened if user taps on Notification, and there are no any other logic exists for this type of notification imageUrl: type: string default: "Property os optional" description: Property is optional notificationTypeId: type: string enum: - user-postcard - two-factor - etc. description: Serverside identifier of notification type. Sme logic can depend on it created_at: type: string format: datetime seen_at: type: string format: datetime description: if not null - notification was viewed by user userPostcard: type: object properties: id: type: string format: uuid user_id: type: string format: uuid postcard_id: type: string format: uuid text: type: string status_id: type: integer description: 1 - active, 2 - disabled, 3 - deleted enum: - 1 - 2 - 3 settings: type: object properties: hide_signature: type: boolean description: Is this postcard anonymous status_view_id: type: integer description: 1 - visible to everyone, 2 - visible only to recipient enum: - 1 - 2 created_at: type: string format: date senderId: type: string format: uuid? senderName: type: string default: "Alex" senderIconUrl: type: string description: Sender user's face icon imageUrl: description: Postcard's image type: string is_seen: type: boolean description: Did user seen this postcard? userGroup: type: object properties: id: type: string format: uuid name: type: string default: Managers description: type: string default: "All the managers" iconUrl: type: string default: "https://pentest.hrbox.io/file/resize/60x0/299c6542-c541-4296-a528-90f08d835b8b.png" thumbUrl: type: string default: "https://pentest.hrbox.io/file/resize/400x0/299c6542-c541-4296-a528-90f08d835b8b.png" achievement: type: object properties: id: type: string format: uuid title: type: string default: Best sales of Year description: type: string default: One who sold most this year imageUrl: type: string default: "https://pentest.hrbox.io/file/resize/400x0/299c6542-c541-4296-a528-90f08d835b8b.png" iconUrl: type: string default: "https://pentest.hrbox.io/file/resize/60x0/299c6542-c541-4296-a528-90f08d835b8b.png" employment: type: object properties: id: type: string format: uuid experience: type: string default: 1 year 2 months position: type: string default: Chief Salesman department: $ref: '#/components/schemas/departmentLabel' chiefUser: $ref: '#/components/schemas/userLabel' departmentLabel: type: object properties: id: type: string format: uuid name: type: string default: Marketing departmentPath: type: string default: "Company / Sales / Marketing" userLabel: type: object properties: id: type: string format: uuid name: type: string default: Alex faceUrl: type: string default: "https://pentest.hrbox.io/file/user-face/46f838be-1b51-43ea-988e-fce2f73f6302/300.jpg" iconUrl: type: string default: "https://pentest.hrbox.io/file/user-face/46f838be-1b51-43ea-988e-fce2f73f6302/60.jpg" device: type: object properties: id: type: string format: uuid name: type: string default: Alex's iPhone model: type: string default: iPhone os: type: string default: iOS osVersion: type: string default: 14.0.1 xml: name: device profileBrief: type: object properties: userId: type: string format: uuid name: type: string position: type: string experience: type: string departmentName: type: string photoUrl: type: string faceUrl: type: string iconUrl: type: string statusText: type: string statusTypes: type: array items: $ref: '#/components/schemas/profileStatusType' xml: name: profileBrief profileStatusType: type: object properties: id: type: string label: type: string enabled: type: boolean xml: name: item dashboardWidget: type: object properties: ref: type: string label: type: string url: type: string totalCount: type: integer format: int64 items: type: array items: $ref: '#/components/schemas/dashboardWidgetItem' xml: name: widgetId dashboardWidgetItem: type: object properties: id: type: string format: uuid itemTitle: type: string itemUrl: type: string itemImageUrl: type: string itemDate: type: string format: datetime itemTip: type: string itemEntityId: type: integer format: int64 actorId: type: string format: uuid actorName: type: string actorIconUrl: type: string actionTitle: type: string actionStyle: type: string description: define color enum: - info - success - warning - danger xml: name: item feedback: type: object properties: id: description: Feedback model ID. type: string format: uuid user_id: description: User model ID. type: string format: uuid default: null department_id: description: Department model ID. type: string format: uuid default: null score: description: Feedback score. type: integer example: 5 text: description: Feedback text. type: string example: Example text. is_anonymous: description: Anonymous feedback. type: boolean example: false default: false user_name: description: The user name to which the feedback was left. type: string default: "" department_name: description: The department name to which the feedback was left. type: string default: "" created_user_name: description: The name of the user who left the feedback if it was not anonymous. type: string moderation: type: object properties: id: description: Moderation ID. type: string format: uuid example: edee4e11-dab5-4aac-93ac-43c379aab6b2 requested_user_id: description: Requested user ID. type: string format: uuid example: 08d50be6-81ca-436f-9aef-c1a5a74bad36 moderated_user_id: description: Moderator user ID. type: string format: uuid default: null example: 1c95f8ec-d971-4554-8b77-d5ab1dd8d650 status_id: description: > Moderation status: * `0` - Wait for moderation (NOT_MODERATED) * `1` - Moderation accepted (ACCEPT) * `2` - Moderation rejected (REJECT) type: integer enum: - 0 - 1 - 2 example: 1 reference_id: description: Reference model ID. type: string format: uuid example: 660519c7-c8a7-4421-a1e2-4eed4074a868 entity_id: description: > Entity ID: * `20` - User * `118` - Postcard * `140` - Comment * `360` - Idea * `152` - Voting nominee type: integer enum: - 20 - 118 - 140 - 360 - 152 example: 20 type_id: description: > Moderation types: * `USER_AVATAR` - Change user profile photo. Fields - photo_file_id, settings. * `USER_POSTCARD` - Send postcard. Fields - text, user_id, postcard_id. * `COMMENT` - Add comment. Fields - message, content_json. * `IDEA` - Idea suggestion. Fields - idea_purpose_id, department_id, title, description, files. * `VOTING_NOMINEE` - Image participating in the voting. Fields - file_id, nomination_id, title, description. # Временно отключено на портале # * `USER_CABINET` - Change city, cabinet. Fields - city, cabinet. type: string enum: - USER_AVATAR # - USER_CABINET - USER_POSTCARD - COMMENT - IDEA - VOTING_NOMINEE changes: description: One of moderation types. Values of fields that has been changed. type: object oneOf: # USER_AVATAR - properties: photo_file_id: description: Field "photo_file_id" in User model. File model ID. type: string format: uuid example: 37a57294-489b-4a1b-ac5c-a390de5e388d settings: description: Field "settings" in User model. type: object properties: face_coordinates: description: Face coordinates on the user profile image. type: object properties: h: description: Cut height in percent. type: integer example: 86 w: description: Cut width in percent. type: integer example: 57 x: description: X-axis offset in percent. type: integer example: 42 y: description: Y-axis offset in percent. type: integer example: 10 # USER_CABINET # - properties: # cabinet: # description: User cabinet field. # type: string # example: 1a # USER_POSTCARD - properties: text: description: Postcard text. type: string example: Example text. user_id: description: User model ID. type: string format: uuid example: 8768c19d-dae7-43f0-8b51-a86705f33a1b postcard_id: description: Postcard model ID. type: string format: uuid example: e101d3be-ca63-49e0-9c94-a32fefc20c92 # COMMENT - properties: message: description: Field "message" in Comment model. type: string example: Comment text. content_json: description: Field "content_json" in Comment model. Array of File models data. type: array items: type: object properties: id: description: File model ID. type: string format: uuid example: bf052a5e-eb70-4eb9-b3f1-9ea50d751b0e ext: description: File extension. type: string example: jpg fid: description: File model ID with extension. type: string format: uuid example: bf052a5e-eb70-4eb9-b3f1-9ea50d751b0e.jpg meta: description: File meta information. type: object properties: width: description: Image width. type: integer example: 1920 height: description: Image height. type: integer example: 1080 name: description: File name. type: string example: 2023-01-01 01.01.01.jpg size: description: File size in bytes. type: integer example: 109531 fileType: description: File type. type: string enum: - image - video - document - archive - other - encrypted example: image isCommon: description: File is common. type: boolean example: false isPublic: description: File is public. type: boolean example: false mimeType: description: File MIME-Type. type: string example: image/jpeg loadingState: description: File loading state. type: string example: uploaded # IDEA - properties: idea_purpose_id: description: Field "idea_purpose_id" in Idea model. type: string format: uuid example: 941a3ba1-3a5c-46b4-a83f-3a9f700925f6 department_id: description: Department model ID. type: string format: uuid example: e0f5593a-e0c2-44b8-a46e-1b464165f63f title: description: Field "title" in Idea model. type: string example: Idea title example. description: description: Field "description" in Idea model. type: string example: Idea description example. files: description: Field "files" in Idea model. Array of File models data. type: array items: type: object properties: id: description: File model ID. type: string format: uuid example: bf052a5e-eb70-4eb9-b3f1-9ea50d751b0e ext: description: File extension. type: string example: jpg fid: description: File model ID with extension. type: string format: uuid example: bf052a5e-eb70-4eb9-b3f1-9ea50d751b0e.jpg meta: description: File meta information. type: object properties: width: description: Image width. type: integer example: 1920 height: description: Image height. type: integer example: 1080 name: description: File name. type: string example: 2023-01-01 01.01.01.jpg size: description: File size in bytes. type: integer example: 109531 fileType: description: File type. type: string enum: - image - video - document - archive - other - encrypted example: image isCommon: description: File is common. type: boolean example: false isPublic: description: File is public. type: boolean example: false mimeType: description: File MIME-Type. type: string example: image/jpeg loadingState: description: File loading state. type: string example: uploaded # VOTING_NOMINEE - properties: file_id: description: File model ID. type: string format: uuid example: 1daf3810-9f65-4855-a352-3e5da566c69e nomination_id: description: VotingNomination model ID. type: string format: uuid default: null example: 0023648a-bf4b-4ab6-8376-4e91357e626a title: description: Field "title" in VotingNominee model. type: string example: Photo title example. description: description: Field "description" in VotingNominee model. type: string example: Photo description example. created_at: description: Moderation creation date. type: string format: date updated_at: description: Moderation update date. type: string format: date statusName: description: Status name. type: string typeName: description: Type name. type: string formatChanges: description: Model fields that can be changed. Data formatted for use in view files. type: object oneOf: # USER_AVATAR - properties: current_photo_url: description: User profile photo. type: object properties: type: description: Field value type. type: string enum: - string - img - files - html example: img label: description: Field label. type: string example: Profile photo value: description: Field value. type: string example: https://demo.hrbox.io/file/open/faf61bb0-af79-4422-9ebd-da2e92924ce3.jpg url: type: string default: null current_face_url: description: User face on profile photo. type: object properties: type: description: Field value type. type: string enum: - string - img - files - html example: img label: description: Field label. type: string example: Face on profile photo value: description: Field value. type: string example: https://demo.hrbox.io/file/open/f3217a4b-02fd-400e-82c3-47cc7f36cf5f.jpg url: type: string default: null photo_file_id: description: User new profile photo. type: object properties: type: description: Field value type. type: string enum: - string - img - files - html example: img label: description: Field label. type: string example: New profile photo value: description: Field value. type: string example: https://demo.hrbox.io/file/open/37a57294-489b-4a1b-ac5c-a390de5e388d.jpg url: type: string default: null new_face_url: description: New user-selected face in profile photo. Returns null because it is under development. type: object properties: type: description: Field value type. type: string enum: - string - img - files - html example: img label: description: Field label. type: string example: Selected face on photo value: description: Field value. type: string default: null example: https://demo.hrbox.io/file/open/faf61bb0-af79-4422-9ebd-da2e92924ce3.jpg url: type: string default: null settings: description: Face coordinates on the user profile image. type: object properties: type: description: Field value type. type: string enum: - string - img - files - html example: string label: description: Field label. type: string example: Settings value: description: Field value. type: object properties: face_coordinates: description: Face coordinates on the user profile image. type: object properties: h: description: Cut height in percent. type: integer example: 86 w: description: Cut width in percent. type: integer example: 57 x: description: X-axis offset in percent. type: integer example: 42 y: description: Y-axis offset in percent. type: integer example: 10 # USER_CABINET # - properties: # city_id: # description: Field "City". # type: object # properties: # type: # description: Field value type. # type: string # enum: # - string # - img # - files # - html # example: string # label: # description: Field label. # type: string # example: City # value: # description: Field value. # type: string # default: null # url: # type: string # cabinet: # description: Field "Cabinet". # type: object # properties: # type: # description: Field value type. # type: string # enum: # - string # - img # - files # - html # example: string # label: # description: Field label. # type: string # example: Cabinet # value: # description: Field value. # type: string # default: null # example: 1a # url: # type: string # USER_POSTCARD - properties: text: description: Postcard text. type: object properties: type: description: Field value type. type: string enum: - string - img - files - html example: string label: description: Field label. type: string example: Postcard text value: description: Field value. type: string default: null example: Example text. url: type: string user_id: description: User name. type: object properties: type: description: Field value type. type: string enum: - string - img - files - html example: string label: description: Field label. type: string example: User value: description: Field value. type: string example: FirstName LastName url: type: string postcard_id: description: Postcard image. type: object properties: type: description: Field value type. type: string enum: - string - img - files - html example: img label: description: Field label. type: string example: Postcard value: description: Field value. type: string example: https://demo.hrbox.io/file/open/d6f5be76-58fa-4b61-a248-74e10b2b5ed0.jpg url: type: string # COMMENT - properties: subject: description: Comment subject. type: object properties: type: description: Field value type. type: string enum: - string - img - files - html example: string label: description: Field label. type: string example: Subject value: description: Field value. type: string example: News title url: type: string example: https://demo.hrbox.io/read/3379b1ac54/news-title message: description: Comment message. type: object properties: type: description: Field value type. type: string enum: - string - img - files - html example: string label: description: Field label. type: string example: Comment value: description: Field value. type: string example: Comment text. url: type: string content_json: description: Comment attached files. type: object properties: type: description: Field value type. type: string enum: - string - img - files - html example: files label: description: Field label. type: string example: Files value: description: Field value. type: object properties: item: type: object properties: id: description: File model ID. type: string format: uuid example: 3f8d3db4-49da-4880-bfdb-e682f9d4876d url: description: File open URL. type: string example: https://demo.hrbox.io/file/open/3f8d3db4-49da-4880-bfdb-e682f9d4876d.jpg file_type: description: File type. type: string enum: - image - video - document - archive - other - encrypted example: image ext: description: File extension. type: string example: jpg name: description: File name. type: string example: 2023-01-01 01.01.01.jpg url: type: string # IDEA - properties: idea_purpose_id: description: Idea purpose. type: object properties: type: description: Field value type. type: string enum: - string - img - files - html example: string label: description: Field label. type: string example: Purpose value: description: Field value. type: string default: null example: Example purpose url: type: string department_id: description: Department. type: object properties: type: description: Field value type. type: string enum: - string - img - files - html example: string label: description: Field label. type: string example: Department value: description: Field value. type: string default: null example: Example department name url: type: string title: description: Idea title. type: object properties: type: description: Field value type. type: string enum: - string - img - files - html example: string label: description: Field label. type: string example: Title value: description: Field value. type: string example: Example idea title url: type: string description: description: Idea description. type: object properties: type: description: Field value type. type: string enum: - string - img - files - html example: string label: description: Field label. type: string example: Description value: description: Field value. type: string example: Example idea description url: type: string files: description: Idea attached files. type: object properties: type: description: Field value type. type: string enum: - string - img - files - html example: files label: description: Field label. type: string example: Files value: description: Field value. type: object properties: item: type: object properties: id: description: File model ID. type: string format: uuid example: a91fe4d9-b486-4e94-9114-18589aad7c7e url: description: File open URL. type: string example: https://demo.hrbox.io/file/open/a91fe4d9-b486-4e94-9114-18589aad7c7e.jpg file_type: description: File type. type: string enum: - image - video - document - archive - other - encrypted example: image ext: description: File extension. type: string example: jpg name: description: File name. type: string example: 2023-01-01 01.01.01.jpg url: type: string # VOTING_NOMINEE - properties: file_id: description: URL to file. type: object properties: type: description: Field value type. type: string enum: - string - img - files - html example: img label: description: Field label. type: string example: Image value: description: Field value. type: string example: https://demo.hrbox.io/file/resize/0x300/d56554a9-a97d-47d8-bb16-5647166a66de.jpg url: type: string nomination_id: description: Voting nomination. type: object properties: type: description: Field value type. type: string enum: - string - img - files - html example: string label: description: Field label. type: string example: Nomination value: description: Field value. type: string example: Example nomination name url: type: string title: description: Idea title. type: object properties: type: description: Field value type. type: string enum: - string - img - files - html example: string label: description: Field label. type: string example: Title value: description: Field value. type: string example: Example photo title url: type: string description: description: Idea description. type: object properties: type: description: Field value type. type: string enum: - string - img - files - html example: string label: description: Field label. type: string example: Description value: description: Field value. type: string example: Example photo description url: type: string referenceAttributes: description: Reference model attributes. type: object requestedUser: description: Requested user. type: object properties: id: description: Requested user ID. type: string format: uuid iconUrl: description: Requested user ID. type: string name: description: Requested user name. type: string moderatedUser: description: Moderated user. type: object properties: id: description: Moderated user ID. type: string format: uuid iconUrl: description: Moderated user ID. type: string name: description: Moderated user name. type: string ideaSettings: description: Список настроек модуля идей. type: object properties: isModuleEnabled: description: Включить сбор идей и запросов. type: boolean example: true isIdeaVotingEnabled: description: Включить голосование за идею. type: boolean example: true isIdeaUnvoteEnabled: description: Разрешить отменять голос за идею. type: boolean example: true isIdeaParticipateEnabled: description: Разрешить присоединяться к реализации идеи. type: boolean example: true isCancelParticipatingEnabled: description: Разрешить отменять предложение о помощи в реализации идеи. type: boolean example: true isIdeaCommentsEnabled: description: Разрешить комментировать идеи. type: boolean example: true ideaStatuses: description: > Список статусов идеи: * `1` - Модерация (STATUS_MODERATION). * `2` - Отклонена модератором (STATUS_REJECTED_MODERATOR). * `3` - Голосование (STATUS_VOTING). * `4` - Отклонена исполнителем (STATUS_REJECTED_MANAGER). * `5` - Отложена (STATUS_POSTPONED). * `6` - В работе (STATUS_REALIZATION). * `7` - Реализована (STATUS_IMPLEMENTED). type: array items: properties: id: description: Идентификатор статуса. type: integer example: 1 name: description: Имя статуса. type: string example: Модерация ideaIndex: type: object properties: id: description: Идентификатор идеи. type: string format: uuid example: a91fe4d9-b486-4e94-9114-18589aad7c7e created_at: description: Дата создания идеи. type: string format: 'date-time' example: 2023-09-21 18:25:52 updated_at: description: Дата изменения идеи. type: string format: 'date-time' example: 2023-09-21 18:31:56 title: description: Заголовок идеи. type: string example: Idea example title description: description: Описание идеи. type: string example: Idea example description isEditable: # Тут описать когда доступно description: Доступность редактирования идеи для текущего пользователя. type: boolean example: true status: description: Статус идеи. type: object properties: id: type: integer example: 1 name: type: string example: Модерация createdUser: description: Пользователь подавший идею. type: object properties: id: description: Идентификатор пользователя. type: string format: uuid example: a91fe4d9-b486-4e94-9114-18589aad7c7e iconUrl: description: Ссылка на изображение лица профиля пользователя. type: string example: https://hrenot.hrbox.io/file/user-face/e2668a74-d171-4d47-b68f-9eb7e7d4e120/300.jpg name: description: Имя пользователя. type: string example: Иван Иванов purpose: description: Направление идеи. type: object properties: id: description: Идентификатор направления идеи. type: string format: uuid example: a91fe4d9-b486-4e94-9114-18589aad7c7e name: description: Название направления идеи. type: string example: Направление 1 department: description: Подразделение в которое подана идея. type: object properties: id: description: Идентификатор подразделения. type: string format: uuid example: a91fe4d9-b486-4e94-9114-18589aad7c7e name: description: Название подразделения. type: string example: Подразделение 1 viewsCount: description: Количество пользователей просмотревших идею. type: integer example: 1 countVoted: description: Количество пользователей проголосовавших за идею. type: integer example: 1 countParticipate: description: Количество пользователей предложивших помощь в реализации идеи. type: integer example: 1 isAllowVoting: description: Возможность проголосовать за идею для текущего пользователя. type: boolean example: true isAllowParticipate: description: Возможность предложить помощь в реализации идеи для текущего пользователя. type: boolean example: true isCurrentUserVoted: description: Текущий пользователь проголосовал за идею. type: boolean example: false isCurrentUserParticipate: description: Текущий пользователь предложил помощь в реализации идеи. type: boolean example: false ideaView: type: object properties: id: description: Идентификатор идеи. type: string format: uuid example: a91fe4d9-b486-4e94-9114-18589aad7c7e created_at: description: Дата создания идеи. type: string format: 'date-time' example: 2023-09-21 18:25:52 updated_at: description: Дата изменения идеи. type: string format: 'date-time' example: 2023-09-21 18:31:56 title: description: Заголовок идеи. type: string example: Idea example title description: description: Описание идеи. type: string example: Idea example description isEditable: # Тут описать когда доступно description: Доступность редактирования идеи для текущего пользователя. type: boolean example: true status: description: Статус идеи. type: object properties: id: type: integer example: 1 name: type: string example: Модерация createdUser: description: Пользователь подавший идею. type: object properties: id: description: Идентификатор пользователя. type: string format: uuid example: a91fe4d9-b486-4e94-9114-18589aad7c7e iconUrl: description: Ссылка на изображение лица профиля пользователя. type: string example: https://hrenot.hrbox.io/file/user-face/e2668a74-d171-4d47-b68f-9eb7e7d4e120/300.jpg name: description: Имя пользователя. type: string example: Иван Иванов purpose: description: Направление идеи. type: object properties: id: description: Идентификатор направления идеи. type: string format: uuid example: a91fe4d9-b486-4e94-9114-18589aad7c7e name: description: Название направления идеи. type: string example: Направление 1 department: description: Подразделение в которое подана идея. type: object properties: id: description: Идентификатор подразделения. type: string format: uuid example: a91fe4d9-b486-4e94-9114-18589aad7c7e name: description: Название подразделения. type: string example: Подразделение 1 viewsCount: description: Количество пользователей просмотревших идею. type: integer example: 1 countVoted: description: Количество пользователей проголосовавших за идею. type: integer example: 1 countParticipate: description: Количество пользователей предложивших помощь в реализации идеи. type: integer example: 1 usersVoted: description: Список пользователей проголосовавших за идею. type: array items: properties: id: description: Идентификатор пользователя. type: string format: uuid example: a91fe4d9-b486-4e94-9114-18589aad7c7e iconUrl: description: Ссылка на изображение лица профиля пользователя. type: string example: https://hrenot.hrbox.io/file/user-face/e2668a74-d171-4d47-b68f-9eb7e7d4e120/300.jpg name: description: Имя пользователя. type: string example: Иван Иванов usersParticipate: description: Список пользователей предложивших помощь в реализации идеи. type: array items: properties: id: description: Идентификатор пользователя. type: string format: uuid example: a91fe4d9-b486-4e94-9114-18589aad7c7e iconUrl: description: Ссылка на изображение лица профиля пользователя. type: string example: https://hrenot.hrbox.io/file/user-face/e2668a74-d171-4d47-b68f-9eb7e7d4e120/300.jpg name: description: Имя пользователя. type: string example: Иван Иванов isAllowVoting: description: Возможность проголосовать за идею для текущего пользователя. type: boolean example: true isAllowParticipate: description: Возможность предложить помощь в реализации идеи для текущего пользователя. type: boolean example: true isCurrentUserVoted: description: Текущий пользователь проголосовал за идею. type: boolean example: false isCurrentUserParticipate: description: Текущий пользователь предложил помощь в реализации идеи. type: boolean example: false files: description: Список файлов прикрепленных к идее. type: array items: type: object properties: id: description: Идентификатор файла. type: string format: uuid example: bf052a5e-eb70-4eb9-b3f1-9ea50d751b0e url: description: Адрес размещения файла. type: string example: https://hrenot.hrbox.io/file/open/96cf98ed-2762-4f6b-9a5b-3eca76c56477.jpg file_ype: description: Тип файла. type: string enum: - image - video - document - archive - other - encrypted example: image ext: description: Расширение файла. type: string example: jpg name: description: Имя файла. type: string example: 2023-01-01 01.01.01.jpg ideaEdit: type: object properties: title: description: Заголовок идеи. type: string example: Idea example title description: description: Описание идеи. type: string example: Idea example description department_id: description: Идентификатор подразделения. type: string format: uuid example: a91fe4d9-b486-4e94-9114-18589aad7c7e purpose_id: description: Идентификатор направления идеи. type: string format: uuid example: bf052a5e-eb70-4eb9-b3f1-9ea50d751b0e files: description: Идентификаторы файлов. type: array items: type: string example: - '53f2d03c-303a-4a3c-b57f-f7fb62fee538' - '42862a16-affa-4ba5-86c5-61376f46d695'