From 8e5522524c8ddf12564d063eba0dfe98869d2b5f Mon Sep 17 00:00:00 2001 From: Max Martens Date: Wed, 18 Jun 2025 20:59:30 +0200 Subject: [PATCH] Add two new attributes isValid and isArchived (only in CRUD, SE/TP will never get those attributes in response); update to correct Regio Vrij gboPackageTemplateIds --- src/openapi/products/SE-products-SE.yaml | 12 +-- src/openapi/products/SE-products-TP.yaml | 12 +-- src/openapi/products/products-crud.yaml | 130 +++++++++++++++++++++-- 3 files changed, 132 insertions(+), 22 deletions(-) diff --git a/src/openapi/products/SE-products-SE.yaml b/src/openapi/products/SE-products-SE.yaml index 0de3d63..06ba8cc 100644 --- a/src/openapi/products/SE-products-SE.yaml +++ b/src/openapi/products/SE-products-SE.yaml @@ -929,7 +929,7 @@ paths: "productId": 109, "parentProductId": 49, "fikoArticleNumber": "1234", - "gboPackageTemplateId": null, + "gboPackageTemplateId": "33615", "tapConnectProductCode": null, "productName": "HTM Regio Vrij - HL62", "productDescription": "Voor een vast bedrag onbeperkt reizen met EBS, HTM en RET in gebied HL62", @@ -1095,7 +1095,7 @@ paths: "productId": 114, "parentProductId": 109, "fikoArticleNumber": "1234", - "gboPackageTemplateId": "33629", + "gboPackageTemplateId": "33615", "tapConnectProductCode": null, "productName": "HTM Regio Vrij - Voltarief - HL62", "productDescription": "Voor een vast bedrag onbeperkt reizen met EBS, HTM en RET in gebied HL62", @@ -1261,7 +1261,7 @@ paths: "productId": 115, "parentProductId": 109, "fikoArticleNumber": "1234", - "gboPackageTemplateId": "33630", + "gboPackageTemplateId": "33615", "tapConnectProductCode": null, "productName": "HTM Regio Vrij - Reductietarief - HL62", "productDescription": "Voor een vast bedrag onbeperkt reizen met EBS, HTM en RET in gebied HL62", @@ -1422,7 +1422,7 @@ paths: "productId": 116, "parentProductId": 115, "fikoArticleNumber": "1234", - "gboPackageTemplateId": "33630", + "gboPackageTemplateId": "33615", "tapConnectProductCode": null, "productName": "HTM Regio Vrij - Reductietarief - Losse Maand- HL62", "productDescription": "Voor een vast bedrag onbeperkt reizen met EBS, HTM en RET in gebied HL62", @@ -1586,7 +1586,7 @@ paths: "productId": 117, "parentProductId": 115, "fikoArticleNumber": "1234", - "gboPackageTemplateId": "33630", + "gboPackageTemplateId": "33615", "tapConnectProductCode": null, "productName": "HTM Regio Vrij - Reductietarief - Doorlopend abonnement- HL62", "productDescription": "Voor een vast bedrag onbeperkt reizen met EBS, HTM en RET in gebied HL62", @@ -1754,7 +1754,7 @@ paths: "productId": 112, "parentProductId": 49, "fikoArticleNumber": "1234", - "gboPackageTemplateId": null, + "gboPackageTemplateId": "33618", "tapConnectProductCode": null, "productName": "HTM Regio Vrij - HL65", "productDescription": "Voor een vast bedrag onbeperkt reizen met EBS, HTM en RET in gebied HL65", diff --git a/src/openapi/products/SE-products-TP.yaml b/src/openapi/products/SE-products-TP.yaml index 1bf9558..a9fa5de 100644 --- a/src/openapi/products/SE-products-TP.yaml +++ b/src/openapi/products/SE-products-TP.yaml @@ -929,7 +929,7 @@ paths: "productId": 109, "parentProductId": 49, "fikoArticleNumber": "1234", - "gboPackageTemplateId": null, + "gboPackageTemplateId": "33615", "tapConnectProductCode": null, "productName": "HTM Regio Vrij - HL62", "productDescription": "Voor een vast bedrag onbeperkt reizen met EBS, HTM en RET in gebied HL62", @@ -1095,7 +1095,7 @@ paths: "productId": 114, "parentProductId": 109, "fikoArticleNumber": "1234", - "gboPackageTemplateId": "33629", + "gboPackageTemplateId": "33615", "tapConnectProductCode": null, "productName": "HTM Regio Vrij - Voltarief - HL62", "productDescription": "Voor een vast bedrag onbeperkt reizen met EBS, HTM en RET in gebied HL62", @@ -1261,7 +1261,7 @@ paths: "productId": 115, "parentProductId": 109, "fikoArticleNumber": "1234", - "gboPackageTemplateId": "33630", + "gboPackageTemplateId": "33615", "tapConnectProductCode": null, "productName": "HTM Regio Vrij - Reductietarief - HL62", "productDescription": "Voor een vast bedrag onbeperkt reizen met EBS, HTM en RET in gebied HL62", @@ -1422,7 +1422,7 @@ paths: "productId": 116, "parentProductId": 115, "fikoArticleNumber": "1234", - "gboPackageTemplateId": "33630", + "gboPackageTemplateId": "33615", "tapConnectProductCode": null, "productName": "HTM Regio Vrij - Reductietarief - Losse Maand- HL62", "productDescription": "Voor een vast bedrag onbeperkt reizen met EBS, HTM en RET in gebied HL62", @@ -1586,7 +1586,7 @@ paths: "productId": 117, "parentProductId": 115, "fikoArticleNumber": "1234", - "gboPackageTemplateId": "33630", + "gboPackageTemplateId": "33615", "tapConnectProductCode": null, "productName": "HTM Regio Vrij - Reductietarief - Doorlopend abonnement- HL62", "productDescription": "Voor een vast bedrag onbeperkt reizen met EBS, HTM en RET in gebied HL62", @@ -1754,7 +1754,7 @@ paths: "productId": 112, "parentProductId": 49, "fikoArticleNumber": "1234", - "gboPackageTemplateId": null, + "gboPackageTemplateId": "33618", "tapConnectProductCode": null, "productName": "HTM Regio Vrij - HL65", "productDescription": "Voor een vast bedrag onbeperkt reizen met EBS, HTM en RET in gebied HL65", diff --git a/src/openapi/products/products-crud.yaml b/src/openapi/products/products-crud.yaml index d91131a..3afaaa7 100644 --- a/src/openapi/products/products-crud.yaml +++ b/src/openapi/products/products-crud.yaml @@ -23,6 +23,7 @@ paths: Get a list of all HTM products that refer to a given parentProductId (or without parent, if not specified), without any other filters. \ Only a few details are returned per product - use the `GET /products/{productId}` endpoint to get more details. \ + Two attributes are only returned if no touchpoint HTTP header is present: `isValid` and `isArchived`. \ In the examples, it can be seen that (when a touchpoint HTTP header is present) only products that have active sellingPeriods for touchpoints within the same retailer as the calling retailer are returned. \ @@ -52,14 +53,46 @@ paths: { "Entries": [] } - getListOneProductNoSellingPeriodsNoTouchpointId: - summary: List containing one product without any SellingPeriods (no touchpointId in HTTP-headers) - description: All products are returned, even if they have no activesellingPeriods + getListOneValidProductNoSellingPeriodsNoTouchpointId: + summary: List containing one (valid) product without any SellingPeriods (no touchpointId in HTTP-headers) + description: All products are returned, even if they have no active sellingPeriods or are invalid or archived value: { "Entries": [ { "productId": 1, + "isValid": true, + "isArchived": false, + "productName": "HTM pilot 90% korting", + "productDescription": "Reis met 90% korting gedurende de eerste F&F pilot!", + "productCategory": { + "productCategoryId": 1, + "isTravelProduct": true, + "name": "Kortingsabonnement" + }, + "tokenTypes": [ + { + "tokenTypeId": 1, + "name": "EMV" + } + ], + "sellableTouchpointIds": null, + "amountInclTax": null, + "imageReference": "https://www.htm.nl/media/leif2leu/htm-logo-mobile.svg", + "productPageUrl": "https://www.htm.nl/nog-onbekende-product-pagina" + } + ] + } + getListOneInvalidProductNoSellingPeriodsNoTouchpointId: + summary: List containing one (invalid) product without any SellingPeriods (no touchpointId in HTTP-headers) + description: All products are returned, even if they have no active sellingPeriods or are invalid or archived + value: + { + "Entries": [ + { + "productId": 1, + "isValid": false, + "isArchived": false, "productName": "HTM pilot 90% korting", "productDescription": "Reis met 90% korting gedurende de eerste F&F pilot!", "productCategory": { @@ -82,12 +115,14 @@ paths: } getListOneProductNoTouchpointId: summary: List containing one product with 4 currently active SellingPeriods (no touchpointId in HTTP-headers) - description: All products are returned, even if they have no active SellingPeriods + description: All products are returned, even if they have no active SellingPeriods or are invalid or archived value: { "Entries": [ { "productId": 2, + "isValid": true, + "isArchived": false, "productName": "HTM dagkaart", "productDescription": "Reis een dag met het openbaar vervoer bij HTM", "productCategory": { @@ -136,12 +171,14 @@ paths: } getListMultipleProductsNoTouchpointId: summary: List containing multiple products (no touchpointId in HTTP-headers) - description: All products are returned, even if they have no active SellingPeriods + description: All products are returned, even if they have no active SellingPeriods or are invalid or archived value: { "Entries": [ { "productId": 1, + "isValid": true, + "isArchived": false, "productName": "HTM pilot 90% korting", "productDescription": "Reis met 90% korting gedurende de eerste F&F pilot!", "productCategory": { @@ -162,6 +199,8 @@ paths: }, { "productId": 2, + "isValid": true, + "isArchived": false, "productName": "HTM dagkaart", "productDescription": "Reis een dag met het openbaar vervoer bij HTM", "productCategory": { @@ -182,6 +221,8 @@ paths: }, { "productId": 3, + "isValid": true, + "isArchived": false, "productName": "HTM 20% korting", "productDescription": "Reis een maand lang met 20% korting!", "productCategory": { @@ -205,6 +246,8 @@ paths: }, { "productId": 4, + "isValid": true, + "isArchived": false, "productName": "HTM 40% korting", "productDescription": "Reis een maand lang met 40% korting!", "productCategory": { @@ -228,7 +271,7 @@ paths: } ] } - getListMultipleProductsTuchpointId1: + getListMultipleProductsTouchpointId1: summary: List containing multiple products (touchpointId 3 in HTTP-headers) description: Only products that have active SellingPeriods for touchpoint 3 and/or 4 (part of same retailer) are returned value: @@ -325,6 +368,8 @@ paths: value: { "productOwnerId": 1, + "isValid": false, + "isArchived": false, "isSellableAtHtm": false } postGboProduct: @@ -332,6 +377,8 @@ paths: value: { "fikoArticleNumber": "1234", + "isValid": true, + "isArchived": false, "gboPackageTemplateId": "30901", "productName": "HTM pilot 90% korting", "productDescription": "Reis met 90% korting gedurende de eerste F&F pilot!", @@ -420,6 +467,8 @@ paths: value: { "fikoArticleNumber": "1234", + "isValid": true, + "isArchived": false, "gboPackageTemplateId": "30901", "productName": "HTM pilot 90% korting", "productDescription": "Reis met 90% korting gedurende de eerste F&F pilot!", @@ -542,6 +591,8 @@ paths: value: { "fikoArticleNumber": "1234", + "isValid": true, + "isArchived": false, "gboPackageTemplateId": "35301", "productName": "HTM Regio Vrij DH73", "productDescription": "Voor een vast bedrag onbeperkt reizen met EBS, HTM en RET in het gekozen gebied in de regio Rotterdam Den Haag.", @@ -728,6 +779,8 @@ paths: "productId": 1, "parentProductId": null, "fikoArticleNumber": "1234", + "isValid": true, + "isArchived": false, "gboPackageTemplateId": "30901", "tapConnectProductCode": null, "productName": "HTM pilot 90% korting", @@ -900,6 +953,8 @@ paths: "productId": 2, "parentProductId": null, "fikoArticleNumber": "1234", + "isValid": true, + "isArchived": false, "gboPackageTemplateId": "30901", "tapConnectProductCode": null, "productName": "HTM pilot 90% korting", @@ -1129,6 +1184,8 @@ paths: "productId": 3, "parentProductId": null, "fikoArticleNumber": "1234", + "isValid": true, + "isArchived": false, "gboPackageTemplateId": "35301", "tapConnectProductCode": null, "productName": "HTM Regio Vrij DH73", @@ -1413,16 +1470,17 @@ paths: value: { "productOwnerId": 1, - "isRenewable": false, - "isSellableAtHtm": false, - "needsSolvencyCheckConsumer": false, - "needsSolvencyCheckBusiness": false + "isValid": false, + "isArchived": false, + "isSellableAtHtm": false } updateGboProduct: summary: Update existing GBO product (non-renewable) value: { "fikoArticleNumber": "1234", + "isValid": true, + "isArchived": false, "gboPackageTemplateId": "30901", "productName": "HTM pilot 90% korting", "productDescription": "Reis met 90% korting gedurende de eerste F&F pilot!", @@ -1515,6 +1573,8 @@ paths: value: { "fikoArticleNumber": "1234", + "isValid": true, + "isArchived": false, "gboPackageTemplateId": "30901", "productName": "HTM pilot 90% korting", "productDescription": "Reis met 90% korting gedurende de eerste F&F pilot!", @@ -1629,6 +1689,8 @@ paths: value: { "fikoArticleNumber": "1234", + "isValid": true, + "isArchived": false, "gboPackageTemplateId": "30901", "productName": "HTM pilot 90% korting", "productDescription": "Reis met 90% korting gedurende de eerste F&F pilot!", @@ -1759,6 +1821,8 @@ paths: value: { "fikoArticleNumber": "1234", + "isValid": true, + "isArchived": false, "gboPackageTemplateId": "35301", "productName": "HTM Regio Vrij DH73", "productDescription": "Voor een vast bedrag onbeperkt reizen met EBS, HTM en RET in het gekozen gebied in de regio Rotterdam Den Haag.", @@ -2096,10 +2160,26 @@ components: type: object required: - productId + - productName + - productDescription + - productCategory + - tokenTypes + - sellableTouchpointIds + - amountInclTax + - imageReference + - productPageUrl properties: productId: type: integer example: 1 + isValid: + type: boolean + description: Not returned for external touchpoints + example: true + isArchived: + type: boolean + description: Not returned for external touchpoints + example: false productName: type: string example: HTM pilot 90% korting @@ -2156,6 +2236,8 @@ components: required: - productId - productOwner + - isValid + - isArchived - isSellableAtHtm properties: productId: @@ -2168,6 +2250,14 @@ components: type: string description: The article number of the product in FIKO example: 1234 + isValid: + type: boolean + description: Indicates if the product is valid - if false, the Service Engine will prevent touchpoints from seeing this product + example: true + isArchived: + type: boolean + description: Indicates if the product is archived - if true, the Service Engine will prevent touchpoints from seeing this product + example: false gboPackageTemplateId: type: string example: '30901' @@ -2500,6 +2590,8 @@ components: CreateProductRequest: required: - productOwnerId + - isValid + - isArchived - isSellableAtHtm type: object properties: @@ -2511,6 +2603,14 @@ components: type: string description: The article number of the product in FIKO example: 1234 + isValid: + type: boolean + description: Indicates if the product is valid - if false, the Service Engine will prevent touchpoints from seeing this product + example: true + isArchived: + type: boolean + description: Indicates if the product is archived - if true, the Service Engine will prevent touchpoints from seeing this product + example: false gboPackageTemplateId: type: string description: >- @@ -2863,6 +2963,8 @@ components: UpdateProductRequest: required: - productOwnerId + - isValid + - isArchived - isSellableAtHtm type: object properties: @@ -2874,6 +2976,14 @@ components: type: string description: The article number of the product in FIKO example: 1234 + isValid: + type: boolean + description: Indicates if the product is valid - if false, the Service Engine will prevent touchpoints from seeing this product + example: true + isArchived: + type: boolean + description: Indicates if the product is archived - if true, the Service Engine will prevent touchpoints from seeing this product + example: false gboPackageTemplateId: type: string description: >-