From 7a2ecec13376994dd923a931796bdee69616cf6a Mon Sep 17 00:00:00 2001 From: "b.boterman@htm.nl" Date: Wed, 1 Oct 2025 16:11:00 +0200 Subject: [PATCH] OVPAY-2186 - Added proper schema for POST contracts. --- src/openapi/contracts/contracts-crud.yaml | 103 +++++++++++++++++++++- 1 file changed, 100 insertions(+), 3 deletions(-) diff --git a/src/openapi/contracts/contracts-crud.yaml b/src/openapi/contracts/contracts-crud.yaml index 46e2f79..8560cec 100644 --- a/src/openapi/contracts/contracts-crud.yaml +++ b/src/openapi/contracts/contracts-crud.yaml @@ -34,7 +34,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/Contract" + $ref: "#/components/schemas/Contracts" example: { "contracts": @@ -105,7 +105,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/Contract" + $ref: "#/components/schemas/PostContractsRequestBody" example: { "contract": @@ -147,7 +147,7 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/Contract" + $ref: "#/components/schemas/PostContractsResponseBody" example: { "contract": @@ -1110,6 +1110,103 @@ components: scheme: bearer bearerFormat: JWT schemas: + PostContractsRequestBody: + type: object + properties: + contract: + type: object + properties: + orderId: + type: string + format: uuid + example: eb3d08f7-7feb-4f31-9f5b-daa634e51f48 + orderLineId: + type: string + format: uuid + example: 52efbbfc-8c28-4016-9ece-dc3ef9a70bd8 + touchpointId: + type: integer + example: 2 + termDuration: + type: string + format: ISO8601 + example: P0Y1M0D + billingDay: + type: integer + example: 15 + highestInvoiceTerm: + type: integer + example: 0 + contractVersions: + type: array + items: + type: object + properties: + termsAndConditions: + type: string + format: url + example: https://www.htm.nl/reisproducten/productvoorwaarden/htm-maandkorting/ + productId: + type: integer + example: 1 + productName: + type: string + example: HTM Maand 20% korting + taxCode: + type: string + example: V9 + taxPercentage: + type: number + format: float + example: 9.0 + termAmountInclTax: + type: integer + example: 400 + start: + type: string + format: date-time + example: 2024-07-04 15:01:00.000 + end: + type: string + format: date-time + example: 2024-12-31 15:01:00.000 + required: + - termsAndConditions + - productId + - productName + - taxCode + - taxPercentage + - termAmountInclTax + - start + required: + - orderId + - orderLineId + - touchpointId + - termDuration + - billingDay + - highestInvoiceTerm + - contractVersions + required: + - contract + PostContractsResponseBody: + type: object + properties: + contract: + type: object + properties: + contractId: + type: string + format: uuid + example: 5a3876a1-e9a1-4278-8983-4679a8d583c2 + contractNumber: + type: string + pattern: '^D\d{6}$' + example: D123456 + required: + - contractId + - contractNumber + required: + - contract Contract: type: object properties: