From 62cd075f2e1c3615d6903a9e9bf93bdeed964a2c Mon Sep 17 00:00:00 2001 From: "b.boterman@htm.nl" Date: Wed, 15 Oct 2025 16:35:48 +0200 Subject: [PATCH] OVPAY-973 - Model rework. --- src/openapi/customers/notifications-crud.yaml | 865 +++++++++--------- 1 file changed, 430 insertions(+), 435 deletions(-) diff --git a/src/openapi/customers/notifications-crud.yaml b/src/openapi/customers/notifications-crud.yaml index 8c54ff7..7bb0f42 100644 --- a/src/openapi/customers/notifications-crud.yaml +++ b/src/openapi/customers/notifications-crud.yaml @@ -1,7 +1,7 @@ -openapi: '3.0.3' +openapi: "3.0.3" info: title: ABT Notifications CRUD APIs - version: '1.0' + version: "1.0" description: CRUD APIs for ABT Notification tables. These are NOT the functional APIs from Service Engine. servers: - url: https://services.acc.api.htm.nl/abt/notifications/1.0 @@ -70,34 +70,6 @@ paths: type: string format: uuid description: Filter by device ID - - name: createdAfter - in: query - required: false - schema: - type: string - format: date-time - description: Filter by creation date (after) - - name: createdBefore - in: query - required: false - schema: - type: string - format: date-time - description: Filter by creation date (before) - - name: updatedAfter - in: query - required: false - schema: - type: string - format: date-time - description: Filter by update date (after) - - name: updatedBefore - in: query - required: false - schema: - type: string - format: date-time - description: Filter by update date (before) - name: isActive in: query required: false @@ -105,180 +77,193 @@ paths: type: boolean description: Filter by active status responses: - '200': + "200": description: A list of notification subscriptions content: application/json: schema: - $ref: '#/components/schemas/GetNotificationSubscriptionsResponse' + $ref: "#/components/schemas/GetNotificationSubscriptionsResponse" examples: emptyNotificationSubscriptionResponse: - value: + value: notificationSubscriptions: [] href: null minimalNotificationSubscriptionResponse: value: notificationSubscriptions: - - notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 - eventTypeChannel: - eventTypeChannelId: 22a9ab1cb-b1a3-482e-bae3-9a517a8cfb4f - eventType: - eventTypeId: 15 - eventOrigin: - eventOriginId: 1 - name: GBO - description: Events originated at GBO - name: Travel - subname: Missing CKO - prettyName: Checkout gemist - optInRequired: true - channel: - channelId: 1 - name: push - isDefault: true - isMandatory: false - customerProfileId: null - ovpayTokenId: null - deviceId: null - createdAt: '2025-10-01T12:00:00Z' - createdBy: system - updatedAt: null - updatedBy: null - isActive: true - _links: - edit: - href: /notificationsubscriptions/5bedce29-af0c-4f3c-b182-2caa8a1f9377 - method: PATCH - delete: - href: /notificationsubscriptions/5bedce29-af0c-4f3c-b182-2caa8a1f9377 - method: DELETE - - notificationSubscriptionId: 39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd - eventTypeChannel: - eventTypeChannelId: c4729ad4-46ef-4329-94f9-5079be21dfc5 - eventType: - eventTypeId: 16 - eventOrigin: - eventOriginId: 1 - name: GBO - description: Events originated at GBO - name: Travel - subname: Missing CKI - prettyName: Checkin gemist - optInRequired: true - channel: - channelId: 1 - name: push - isDefault: true - isMandatory: false - createdAt: '2025-09-15T08:30:00Z' - createdBy: system - isActive: false - _links: - edit: - href: /notificationsubscriptions/39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd - method: PATCH - delete: - href: /notificationsubscriptions/39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd - method: DELETE + - notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 + eventTypeChannel: + eventTypeChannelId: 22a9ab1cb-b1a3-482e-bae3-9a517a8cfb4f + eventType: + eventTypeId: 15 + eventOrigin: + eventOriginId: 1 + name: GBO + description: Events originated at GBO + name: Travel + subname: Missing CKO + prettyName: Checkout gemist + optInRequired: true + channel: + channelId: 1 + name: push + isDefault: true + isMandatory: false + customerProfileId: null + ovpayTokenId: null + deviceId: null + subscriptionActivities: + - subscriptionActivityId: 579405e3-e7e2-433a-874d-2a129fd10183 + user: "1001337" + timestamp: "2025-10-02T14:00:00Z" + isActive: true + _links: + edit: + href: /notificationsubscriptions/5bedce29-af0c-4f3c-b182-2caa8a1f9377 + method: PATCH + delete: + href: /notificationsubscriptions/5bedce29-af0c-4f3c-b182-2caa8a1f9377 + method: DELETE + - notificationSubscriptionId: 39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd + eventTypeChannel: + eventTypeChannelId: c4729ad4-46ef-4329-94f9-5079be21dfc5 + eventType: + eventTypeId: 16 + eventOrigin: + eventOriginId: 1 + name: GBO + description: Events originated at GBO + name: Travel + subname: Missing CKI + prettyName: Checkin gemist + optInRequired: true + channel: + channelId: 1 + name: push + isDefault: true + isMandatory: false + customerProfileId: null + ovpayTokenId: null + deviceId: null + subscriptionActivities: + - subscriptionActivityId: 90353a1d-c5bd-44c2-aa75-57873b8071c8 + user: "1001338" + timestamp: "2025-10-02T14:00:00Z" + isActive: false + _links: + edit: + href: /notificationsubscriptions/39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd + method: PATCH + delete: + href: /notificationsubscriptions/39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd + method: DELETE href: null fullNotificationSubscriptionResponse: value: notificationSubscriptions: - - notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 - eventTypeChannel: - eventTypeChannelId: 22a9ab1cb-b1a3-482e-bae3-9a517a8cfb4f - eventType: - eventTypeId: 15 - eventOrigin: - eventOriginId: 1 - name: GBO - description: Events originated at GBO - name: Travel - subname: Missing CKO - prettyName: Checkout gemist - optInRequired: true - channel: - channelId: 1 - name: push - isDefault: true - isMandatory: false - customerProfileId: 1337 - ovpayTokenId: 42 - deviceId: 7122a988-a00a-417d-a5b4-da2d91354976 - createdAt: '2025-10-01T12:00:00Z' - createdBy: system - updatedAt: '2025-10-02T12:00:00Z' - updatedBy: user - isActive: true - _links: - edit: - href: /notificationsubscriptions/5bedce29-af0c-4f3c-b182-2caa8a1f9377 - method: PATCH - delete: - href: /notificationsubscriptions/5bedce29-af0c-4f3c-b182-2caa8a1f9377 - method: DELETE - - notificationSubscriptionId: 39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd - eventTypeChannel: - eventTypeChannelId: c4729ad4-46ef-4329-94f9-5079be21dfc5 - eventType: - eventTypeId: 16 - eventOrigin: - eventOriginId: 1 - name: GBO - description: Events originated at GBO - name: Travel - subname: Missing CKI - prettyName: Checkin gemist - optInRequired: true - channel: - channelId: 1 - name: push - isDefault: true - isMandatory: false - customerProfileId: 1338 - ovpayTokenId: 43 - deviceId: c4b8e1f3-8f4e-4d2a-9f3e-1c2b3a4d5e6f - createdAt: '2025-09-15T08:30:00Z' - createdBy: system - updatedAt: '2025-09-16T09:45:00Z' - updatedBy: user - isActive: false - _links: - edit: - href: /notificationsubscriptions/39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd - method: PATCH - delete: - href: /notificationsubscriptions/39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd - method: DELETE + - notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 + eventTypeChannel: + eventTypeChannelId: 22a9ab1cb-b1a3-482e-bae3-9a517a8cfb4f + eventType: + eventTypeId: 15 + eventOrigin: + eventOriginId: 1 + name: GBO + description: Events originated at GBO + name: Travel + subname: Missing CKO + prettyName: Checkout gemist + optInRequired: true + channel: + channelId: 1 + name: push + isDefault: true + isMandatory: false + customerProfileId: 1337 + ovpayTokenId: 42 + deviceId: 7122a988-a00a-417d-a5b4-da2d91354976 + subscriptionActivities: + - subscriptionActivityId: 30b32657-1ba1-44e0-8868-4db807695387 + user: "1001337" + timestamp: "2025-10-02T15:00:00Z" + isActive: true + - subscriptionActivityId: f78bc171-a50e-4b88-88d3-a76585bffd54 + user: "1001337" + timestamp: "2025-10-02T14:00:00Z" + isActive: false + _links: + edit: + href: /notificationsubscriptions/5bedce29-af0c-4f3c-b182-2caa8a1f9377 + method: PATCH + delete: + href: /notificationsubscriptions/5bedce29-af0c-4f3c-b182-2caa8a1f9377 + method: DELETE + - notificationSubscriptionId: 39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd + eventTypeChannel: + eventTypeChannelId: c4729ad4-46ef-4329-94f9-5079be21dfc5 + eventType: + eventTypeId: 16 + eventOrigin: + eventOriginId: 1 + name: GBO + description: Events originated at GBO + name: Travel + subname: Missing CKI + prettyName: Checkin gemist + optInRequired: true + channel: + channelId: 1 + name: push + isDefault: true + isMandatory: false + customerProfileId: 1338 + ovpayTokenId: 43 + deviceId: c4b8e1f3-8f4e-4d2a-9f3e-1c2b3a4d5e6f + subscriptionActivities: + - subscriptionActivityId: 7fae0d2c-1e20-4f3e-b25d-fd8505a381c4 + user: "1001338" + timestamp: "2025-10-02T15:00:00Z" + isActive: false + - subscriptionActivityId: cb2fc1d3-f143-4dd7-8608-4538e5637e3a + user: "1001338" + timestamp: "2025-10-02T14:00:00Z" + isActive: true + _links: + edit: + href: /notificationsubscriptions/39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd + method: PATCH + delete: + href: /notificationsubscriptions/39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd + method: DELETE href: null - '400': + "400": description: Bad request content: application/json: schema: type: object - $ref: '#/components/schemas/400Response' - '401': + $ref: "#/components/schemas/400Response" + "401": description: Unauthorized content: application/json: schema: type: object - $ref: '#/components/schemas/401Response' - '404': + $ref: "#/components/schemas/401Response" + "404": description: Not found content: application/json: schema: type: object - $ref: '#/components/schemas/404Response' - '500': + $ref: "#/components/schemas/404Response" + "500": description: Internal server error content: application/json: schema: type: object - $ref: '#/components/schemas/500Response' + $ref: "#/components/schemas/500Response" post: summary: Create a new notification subscription tags: @@ -288,30 +273,38 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/PostNotificationSubscriptionRequest' + $ref: "#/components/schemas/PostNotificationSubscriptionRequest" examples: minimalNotificationSubscriptionRequest: value: eventTypeChannelId: 22a9ab1cb-b1a3-482e-bae3-9a517a8cfb4f - createdAt: '2025-10-01T12:00:00Z' - createdBy: system - isActive: true + subscriptionActivities: [ + { + user: "1001337", + timestamp: "2025-10-02T14:00:00Z", + isActive: true + } + ] fullNotificationSubscriptionRequest: value: eventTypeChannelId: 22a9ab1cb-b1a3-482e-bae3-9a517a8cfb4f customerProfileId: 1337 ovpayTokenId: 42 deviceId: 7122a988-a00a-417d-a5b4-da2d91354976 - createdAt: '2025-10-01T12:00:00Z' - createdBy: system - isActive: true + subscriptionActivities: [ + { + user: "1001337", + timestamp: "2025-10-02T14:00:00Z", + isActive: true + } + ] responses: - '201': + "201": description: Notification subscription created successfully content: application/json: schema: - $ref: '#/components/schemas/PostNotificationSubscriptionResponse' + $ref: "#/components/schemas/PostNotificationSubscriptionResponse" examples: minimalNotificationSubscriptionResponse: value: @@ -333,9 +326,14 @@ paths: name: push isDefault: true isMandatory: false - createdAt: '2025-10-01T12:00:00Z' - createdBy: system - isActive: true + customerProfileId: null + ovpayTokenId: null + deviceId: null + subscriptionActivities: + - subscriptionActivityId: 90353a1d-c5bd-44c2-aa75-57873b8071c8 + user: "1001338" + timestamp: "2025-10-02T14:00:00Z" + isActive: false fullNotificationSubscriptionResponse: value: notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 @@ -359,151 +357,40 @@ paths: customerProfileId: 1337 ovpayTokenId: 42 deviceId: 7122a988-a00a-417d-a5b4-da2d91354976 - createdAt: '2025-10-01T12:00:00Z' - createdBy: system - isActive: true - '400': + subscriptionActivities: + - subscriptionActivityId: 90353a1d-c5bd-44c2-aa75-57873b8071c8 + user: "1001338" + timestamp: "2025-10-02T14:00:00Z" + isActive: false + "400": description: Bad request content: application/json: schema: type: object - $ref: '#/components/schemas/400Response' - '401': + $ref: "#/components/schemas/400Response" + "401": description: Unauthorized content: application/json: schema: type: object - $ref: '#/components/schemas/401Response' - '404': + $ref: "#/components/schemas/401Response" + "404": description: Not found content: application/json: schema: type: object - $ref: '#/components/schemas/404Response' - '500': + $ref: "#/components/schemas/404Response" + "500": description: Internal server error content: application/json: schema: type: object - $ref: '#/components/schemas/500Response' + $ref: "#/components/schemas/500Response" /notificationsubscriptions/{notificationSubscriptionId}: - patch: - summary: Update a notification subscription by ID - tags: - - Notification Subscriptions - parameters: - - name: notificationSubscriptionId - in: path - required: true - schema: - type: string - format: uuid - example: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/PatchNotificationSubscriptionRequest' - examples: - notificationSubscriptionRequest: - value: - updatedAt: '2025-10-01T12:00:00Z' - updatedBy: user - isActive: false - responses: - '200': - description: Notification subscription updated successfully - content: - application/json: - schema: - $ref: '#/components/schemas/PatchNotificationSubscriptionResponse' - examples: - minimalNotificationSubscriptionResponse: - value: - notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 - eventTypeChannel: - eventTypeChannelId: 22a9ab1cb-b1a3-482e-bae3-9a517a8cfb4f - eventType: - eventTypeId: 15 - eventOrigin: - eventOriginId: 1 - name: GBO - description: Events originated at GBO - name: Travel - subname: Missing CKO - prettyName: Checkout gemist - optInRequired: true - channel: - channelId: 1 - name: push - isDefault: true - isMandatory: false - createdAt: '2025-10-01T12:00:00Z' - createdBy: system - updatedAt: '2025-10-02T12:00:00Z' - updatedBy: user - isActive: false - fullNotificationSubscriptionResponse: - value: - notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 - eventTypeChannel: - eventTypeChannelId: 22a9ab1cb-b1a3-482e-bae3-9a517a8cfb4f - eventType: - eventTypeId: 15 - eventOrigin: - eventOriginId: 1 - name: GBO - description: Events originated at GBO - name: Travel - subname: Missing CKO - prettyName: Checkout gemist - optInRequired: true - channel: - channelId: 1 - name: push - isDefault: true - isMandatory: false - customerProfileId: 1337 - ovpayTokenId: 42 - deviceId: 7122a988-a00a-417d-a5b4-da2d91354976 - createdAt: '2025-10-01T12:00:00Z' - createdBy: system - updatedAt: '2025-10-02T12:00:00Z' - updatedBy: user - isActive: false - '400': - description: Bad request - content: - application/json: - schema: - type: object - $ref: '#/components/schemas/400Response' - '401': - description: Unauthorized - content: - application/json: - schema: - type: object - $ref: '#/components/schemas/401Response' - '404': - description: Not found - content: - application/json: - schema: - type: object - $ref: '#/components/schemas/404Response' - '500': - description: Internal server error - content: - application/json: - schema: - type: object - $ref: '#/components/schemas/500Response' delete: summary: Delete a notification subscription by ID tags: @@ -517,48 +404,141 @@ paths: format: uuid example: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 responses: - '204': + "204": description: No content - '400': + "400": description: Bad request content: application/json: schema: type: object - $ref: '#/components/schemas/400Response' - '401': + $ref: "#/components/schemas/400Response" + "401": description: Unauthorized content: application/json: schema: type: object - $ref: '#/components/schemas/401Response' - '404': + $ref: "#/components/schemas/401Response" + "404": description: Not found content: application/json: schema: type: object - $ref: '#/components/schemas/404Response' - '500': + $ref: "#/components/schemas/404Response" + "500": description: Internal server error content: application/json: schema: type: object - $ref: '#/components/schemas/500Response' + $ref: "#/components/schemas/500Response" + /notificationsubscriptions/{notificationSubscriptionId}/subscriptionactivities: + post: + summary: Add a subscription activity to a notification subscription + tags: + - Notification Subscriptions + parameters: + - name: notificationSubscriptionId + in: path + required: true + schema: + type: string + format: uuid + example: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/PostSubscriptionActivityRequest" + examples: + addSubscriptionActivityRequest: + value: + user: "1001337" + timestamp: "2025-10-08T15:00:00Z" + isActive: true + responses: + "201": + description: Subscription activity added successfully + content: + application/json: + schema: + $ref: "#/components/schemas/PostSubscriptionActivityResponse" + examples: + addSubscriptionActivityResponse: + value: + notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 + eventTypeChannel: + eventTypeChannelId: 22a9ab1cb-b1a3-482e-bae3-9a517a8cfb4f + eventType: + eventTypeId: 15 + eventOrigin: + eventOriginId: 1 + name: GBO + description: Events originated at GBO + name: Travel + subname: Missing CKO + prettyName: Checkout gemist + optInRequired: true + channel: + channelId: 1 + name: push + isDefault: true + isMandatory: false + customerProfileId: 1337 + ovpayTokenId: 42 + deviceId: 7122a988-a00a-417d-a5b4-da2d91354976 + subscriptionActivities: + - subscriptionActivityId: 30b32657-1ba1-44e0-8868-4db807695387 + user: "1001337" + timestamp: "2025-10-08T15:00:00Z" + isActive: true + - subscriptionActivityId: 90353a1d-c5bd-44c2-aa75-57873b8071c8 + user: "1001338" + timestamp: "2025-10-02T14:00:00Z" + isActive: false + "400": + description: Bad request + content: + application/json: + schema: + type: object + $ref: "#/components/schemas/400Response" + "401": + description: Unauthorized + content: + application/json: + schema: + type: object + $ref: "#/components/schemas/401Response" + "404": + description: Not found + content: + application/json: + schema: + type: object + $ref: "#/components/schemas/404Response" + "500": + description: Internal server error + content: + application/json: + schema: + type: object + $ref: "#/components/schemas/500Response" /eventorigins: get: summary: Get all event origins tags: - References responses: - '200': + "200": description: A list of event origins content: application/json: schema: - $ref: '#/components/schemas/GetEventOriginsResponse' + $ref: "#/components/schemas/GetEventOriginsResponse" examples: eventOriginsResponse: value: @@ -578,46 +558,46 @@ paths: - eventOriginId: 5 name: TapConnect description: Events originated at TapConnect - '400': + "400": description: Bad request content: application/json: schema: type: object - $ref: '#/components/schemas/400Response' - '401': + $ref: "#/components/schemas/400Response" + "401": description: Unauthorized content: application/json: schema: type: object - $ref: '#/components/schemas/401Response' - '404': + $ref: "#/components/schemas/401Response" + "404": description: Not found content: application/json: schema: type: object - $ref: '#/components/schemas/404Response' - '500': + $ref: "#/components/schemas/404Response" + "500": description: Internal server error content: application/json: schema: type: object - $ref: '#/components/schemas/500Response' + $ref: "#/components/schemas/500Response" /channels: get: summary: Get all channels tags: - References responses: - '200': + "200": description: A list of channels content: application/json: schema: - $ref: '#/components/schemas/GetChannelsResponse' + $ref: "#/components/schemas/GetChannelsResponse" examples: channelsResponse: value: @@ -630,46 +610,46 @@ paths: name: sms - channelId: 4 name: mail - '400': + "400": description: Bad request content: application/json: schema: type: object - $ref: '#/components/schemas/400Response' - '401': + $ref: "#/components/schemas/400Response" + "401": description: Unauthorized content: application/json: schema: type: object - $ref: '#/components/schemas/401Response' - '404': + $ref: "#/components/schemas/401Response" + "404": description: Not found content: application/json: schema: type: object - $ref: '#/components/schemas/404Response' - '500': + $ref: "#/components/schemas/404Response" + "500": description: Internal server error content: application/json: schema: type: object - $ref: '#/components/schemas/500Response' + $ref: "#/components/schemas/500Response" /notificationcategories: get: summary: Get all notification categories tags: - References responses: - '200': + "200": description: A list of notification categories content: application/json: schema: - $ref: '#/components/schemas/GetNotificationCategoriesResponse' + $ref: "#/components/schemas/GetNotificationCategoriesResponse" examples: notificationCategoriesResponse: value: @@ -684,46 +664,46 @@ paths: name: Service Berichten - notifcationCategoryId: 5 name: Mijn Betalingen - '400': + "400": description: Bad request content: application/json: schema: type: object - $ref: '#/components/schemas/400Response' - '401': + $ref: "#/components/schemas/400Response" + "401": description: Unauthorized content: application/json: schema: type: object - $ref: '#/components/schemas/401Response' - '404': + $ref: "#/components/schemas/401Response" + "404": description: Not found content: application/json: schema: type: object - $ref: '#/components/schemas/404Response' - '500': + $ref: "#/components/schemas/404Response" + "500": description: Internal server error content: application/json: schema: type: object - $ref: '#/components/schemas/500Response' + $ref: "#/components/schemas/500Response" /eventtypes: get: summary: Get all event types tags: - References responses: - '200': + "200": description: A list of event types content: application/json: schema: - $ref: '#/components/schemas/GetEventTypesResponse' + $ref: "#/components/schemas/GetEventTypesResponse" examples: eventTypesResponse: value: @@ -755,46 +735,46 @@ paths: subname: Failed Payment prettyName: Betaling mislukt optInRequired: false - '400': + "400": description: Bad request content: application/json: schema: type: object - $ref: '#/components/schemas/400Response' - '401': + $ref: "#/components/schemas/400Response" + "401": description: Unauthorized content: application/json: schema: type: object - $ref: '#/components/schemas/401Response' - '404': + $ref: "#/components/schemas/401Response" + "404": description: Not found content: application/json: schema: type: object - $ref: '#/components/schemas/404Response' - '500': + $ref: "#/components/schemas/404Response" + "500": description: Internal server error content: application/json: schema: type: object - $ref: '#/components/schemas/500Response' + $ref: "#/components/schemas/500Response" /eventtypecategories: get: summary: Get all event type categories tags: - References responses: - '200': + "200": description: A list of event type categories content: application/json: schema: - $ref: '#/components/schemas/GetEventTypeCategoriesResponse' + $ref: "#/components/schemas/GetEventTypeCategoriesResponse" examples: eventTypeCategoriesResponse: value: @@ -825,46 +805,46 @@ paths: notificationCategory: notifcationCategoryId: 1 name: Mijn Reizen - '400': + "400": description: Bad request content: application/json: schema: type: object - $ref: '#/components/schemas/400Response' - '401': + $ref: "#/components/schemas/400Response" + "401": description: Unauthorized content: application/json: schema: type: object - $ref: '#/components/schemas/401Response' - '404': + $ref: "#/components/schemas/401Response" + "404": description: Not found content: application/json: schema: type: object - $ref: '#/components/schemas/404Response' - '500': + $ref: "#/components/schemas/404Response" + "500": description: Internal server error content: application/json: schema: type: object - $ref: '#/components/schemas/500Response' + $ref: "#/components/schemas/500Response" /eventtypechannels: get: summary: Get all event type channels tags: - References responses: - '200': + "200": description: A list of event type channels content: application/json: schema: - $ref: '#/components/schemas/GetEventTypeChannelResponse' + $ref: "#/components/schemas/GetEventTypeChannelResponse" examples: eventTypeChannelsResponse: value: @@ -901,34 +881,34 @@ paths: name: push isDefault: true isMandatory: false - '400': + "400": description: Bad request content: application/json: schema: type: object - $ref: '#/components/schemas/400Response' - '401': + $ref: "#/components/schemas/400Response" + "401": description: Unauthorized content: application/json: schema: type: object - $ref: '#/components/schemas/401Response' - '404': + $ref: "#/components/schemas/401Response" + "404": description: Not found content: application/json: schema: type: object - $ref: '#/components/schemas/404Response' - '500': + $ref: "#/components/schemas/404Response" + "500": description: Internal server error content: application/json: schema: type: object - $ref: '#/components/schemas/500Response' + $ref: "#/components/schemas/500Response" components: schemas: GetNotificationSubscriptionsResponse: @@ -937,7 +917,7 @@ components: notificationSubscriptions: type: array items: - $ref: '#/components/schemas/NotificationSubscription' + $ref: "#/components/schemas/NotificationSubscription" href: type: string required: @@ -951,7 +931,7 @@ components: format: uuid example: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 eventTypeChannel: - $ref: '#/components/schemas/EventTypeChannel' + $ref: "#/components/schemas/EventTypeChannel" customerProfileId: type: integer example: 1337 @@ -962,29 +942,33 @@ components: type: string format: uuid example: 7122a988-a00a-417d-a5b4-da2d91354976 - createdAt: - type: string - format: date-time - example: '2025-10-01T12:00:00Z' - createdBy: - type: string - example: system - updatedAt: - type: string - format: date-time - example: '2025-10-02T12:00:00Z' - updatedBy: - type: string - example: user - isActive: - type: boolean - example: true + subscriptionActivities: + type: array + items: + type: object + properties: + subscriptionActivityId: + type: string + format: uuid + example: 30b32657-1ba1-44e0-8868-4db807695387 + user: + type: string + example: "1001337" + timestamp: + type: string + format: date-time + example: "2025-10-02T15:00:00Z" + isActive: + type: boolean + example: true + required: + - subscriptionActivityId + - user + - timestamp + - isActive required: - notificationSubscriptionId - eventTypeChannel - - createdAt - - createdBy - - isActive PostNotificationSubscriptionRequest: type: object properties: @@ -1002,65 +986,76 @@ components: type: string format: uuid example: 7122a988-a00a-417d-a5b4-da2d91354976 - createdAt: + subscriptionActivities: + type: array + items: + type: object + properties: + user: + type: string + example: "1001337" + timestamp: + type: string + format: date-time + example: "2025-10-02T15:00:00Z" + isActive: + type: boolean + example: true + required: + - user + - timestamp + - isActive + required: + - eventTypeChannelId + PostNotificationSubscriptionResponse: + $ref: "#/components/schemas/NotificationSubscription" + PostSubscriptionActivityRequest: + type: object + properties: + user: + type: string + example: "1001337" + timestamp: type: string format: date-time - example: '2025-10-01T12:00:00Z' - createdBy: - type: string - example: system + example: "2025-10-08T15:00:00Z" isActive: type: boolean example: true required: - - eventTypeChannelId - - createdAt - - createdBy - PostNotificationSubscriptionResponse: - $ref: '#/components/schemas/NotificationSubscription' - PatchNotificationSubscriptionRequest: - type: object - properties: - updatedAt: - type: string - format: date-time - example: '2025-10-01T12:00:00Z' - updatedBy: - type: string - example: user - isActive: - type: boolean - example: false - PatchNotificationSubscriptionResponse: - $ref: '#/components/schemas/NotificationSubscription' + - user + - timestamp + - isActive + PostSubscriptionActivityResponse: + $ref: "#/components/schemas/NotificationSubscription" GetEventOriginsResponse: type: object properties: eventOrigins: type: array items: - $ref: '#/components/schemas/EventOrigin' + $ref: "#/components/schemas/EventOrigin" GetChannelsResponse: type: object properties: channels: type: array items: - $ref: '#/components/schemas/Channel' + $ref: "#/components/schemas/Channel" GetNotificationCategoriesResponse: type: object properties: notificationCategories: type: array items: - $ref: '#/components/schemas/NotificationCategory' + $ref: "#/components/schemas/NotificationCategory" GetEventTypesResponse: type: object properties: eventTypes: type: array items: - $ref: '#/components/schemas/EventType' + $ref: "#/components/schemas/EventType" GetEventTypeCategoriesResponse: type: object properties: @@ -1070,16 +1065,16 @@ components: type: object properties: eventType: - $ref: '#/components/schemas/EventType' + $ref: "#/components/schemas/EventType" notificationCategory: - $ref: '#/components/schemas/NotificationCategory' + $ref: "#/components/schemas/NotificationCategory" GetEventTypeChannelResponse: type: object properties: eventTypeChannels: type: array items: - $ref: '#/components/schemas/EventTypeChannel' + $ref: "#/components/schemas/EventTypeChannel" EventTypeChannel: type: object properties: @@ -1088,9 +1083,9 @@ components: format: uuid example: 22a9ab1cb-b1a3-482e-bae3-9a517a8cfb4f eventType: - $ref: '#/components/schemas/EventType' + $ref: "#/components/schemas/EventType" channel: - $ref: '#/components/schemas/Channel' + $ref: "#/components/schemas/Channel" isDefault: type: boolean example: true @@ -1110,7 +1105,7 @@ components: type: integer example: 15 eventOrigin: - $ref: '#/components/schemas/EventOrigin' + $ref: "#/components/schemas/EventOrigin" name: type: string example: Travel @@ -1173,7 +1168,7 @@ components: properties: code: type: string - example: '400' + example: "400" type: type: string message: @@ -1189,7 +1184,7 @@ components: properties: code: type: string - example: '401' + example: "401" type: type: string message: @@ -1205,7 +1200,7 @@ components: properties: code: type: string - example: '404' + example: "404" type: type: string example: Status report @@ -1220,7 +1215,7 @@ components: properties: code: type: string - example: '500' + example: "500" type: type: string message: @@ -1234,4 +1229,4 @@ components: flows: implicit: authorizationUrl: https://services.acc.api.htm.nl/authorize - scopes: {} \ No newline at end of file + scopes: {}