diff --git a/package-lock.json b/package-lock.json index 9548407..8621826 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11129,7 +11129,7 @@ }, "packages/events": { "name": "@nhsdigital/nhs-notify-event-schemas-letter-rendering", - "version": "1.0.0", + "version": "1.1.0", "dependencies": { "@asyncapi/bundler": "^0.6.4", "zod": "^4.1.11" diff --git a/packages/events/package.json b/packages/events/package.json index 3822cc7..d7da927 100644 --- a/packages/events/package.json +++ b/packages/events/package.json @@ -40,5 +40,5 @@ "test:unit": "jest", "prepare": "npm run build" }, - "version": "1.0.2" + "version": "1.1.0" } diff --git a/packages/events/schemas/examples/letter-request.prepared.json b/packages/events/schemas/examples/letter-request.prepared.json index 3e82d89..adaed81 100644 --- a/packages/events/schemas/examples/letter-request.prepared.json +++ b/packages/events/schemas/examples/letter-request.prepared.json @@ -4,16 +4,15 @@ "clientId": "00f3b388-bbe9-41c9-9e76-052d37ee8988", "createdAt": "2025-08-28T08:45:00.000Z", "domainId": "0o5Fs0EELR0fUjHjbCnEtdUwQe4_0o5Fs0EELR0fUjHjbCnEtdUwQe5", + "letterVariantId": "standard_economy", "pageCount": 2, "requestId": "0o5Fs0EELR0fUjHjbCnEtdUwQe3", "requestItemId": "0o5Fs0EELR0fUjHjbCnEtdUwQe4", "requestItemPlanId": "0o5Fs0EELR0fUjHjbCnEtdUwQe5", "sha256Hash": "3a7bd3e2360a3d29eea436fcfb7e44c735d117c8f2f1d2d1e4f6e8f7e6e8f7e6", - "specificationId": "standard_economy", "status": "PREPARED", "supplierId": "supplier_123", "templateId": "template_123", - "urgency": "STANDARD", "url": "https://s3.eu-west-2.amazonaws.com/notify-letters-dev/letters/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf" }, "datacontenttype": "application/json", diff --git a/packages/events/src/domain/letter-request.ts b/packages/events/src/domain/letter-request.ts index feb5ec5..017f1ce 100644 --- a/packages/events/src/domain/letter-request.ts +++ b/packages/events/src/domain/letter-request.ts @@ -21,10 +21,10 @@ export const $LetterRequest = DomainBase("LetterRequest") "Identifier for the campaign which this letter is a part of", examples: ["campaign-456", "flu-campaign-2025"], }), - specificationId: z.string().meta({ - title: "Specification ID", + letterVariantId: z.string().meta({ + title: "Letter Variant ID", description: - "Reference to the letter specification which should be used to produce a letter pack for this request", + "Reference to the letter variant which should be used to select a letter pack and supplier for this request", examples: ["1y3q9v1zzzz"], }), requestId: z.string().meta({ @@ -92,11 +92,6 @@ The file will be a PDF file in A4 format suitable for printing.`, description: "Current status of the letter request", examples: ["PREPARED"], }), - urgency: z.enum(["STANDARD", "URGENT"]).meta({ - title: "Urgency", - description: "Indicates whether the letter is standard or urgent", - examples: ["STANDARD", "URGENT"], - }), }) .meta({ title: "Letter Request", diff --git a/packages/events/src/events/__tests__/letter-request-prepared.test.ts b/packages/events/src/events/__tests__/letter-request-prepared.test.ts index 7685be6..1d62f18 100644 --- a/packages/events/src/events/__tests__/letter-request-prepared.test.ts +++ b/packages/events/src/events/__tests__/letter-request-prepared.test.ts @@ -26,10 +26,9 @@ describe("LetterRequestPreparedEvent validations", () => { "https://notify.nhs.uk/cloudevents/schemas/letter-rendering/letter-request.prepared.1.0.0.schema.json", data: expect.objectContaining({ domainId: "0o5Fs0EELR0fUjHjbCnEtdUwQe4_0o5Fs0EELR0fUjHjbCnEtdUwQe5", - specificationId: "standard_economy", + letterVariantId: "standard_economy", templateId: "template_123", requestId: "0o5Fs0EELR0fUjHjbCnEtdUwQe3", - urgency: "STANDARD", }), }), ); @@ -39,7 +38,7 @@ describe("LetterRequestPreparedEvent validations", () => { const json = readJson("letter-request-prepared-with-missing-fields.json"); expect(() => $LetterRequestPreparedEvent.parse(json)).toThrow( - "specificationId", + "letterVariantId", ); }); diff --git a/packages/events/src/events/__tests__/testData/letter-request-prepared-valid.json b/packages/events/src/events/__tests__/testData/letter-request-prepared-valid.json index 25b4f0a..d176607 100644 --- a/packages/events/src/events/__tests__/testData/letter-request-prepared-valid.json +++ b/packages/events/src/events/__tests__/testData/letter-request-prepared-valid.json @@ -4,16 +4,15 @@ "clientId": "00f3b388-bbe9-41c9-9e76-052d37ee8988", "createdAt": "2025-08-28T08:45:00.000Z", "domainId": "0o5Fs0EELR0fUjHjbCnEtdUwQe4_0o5Fs0EELR0fUjHjbCnEtdUwQe5", + "letterVariantId": "standard_economy", "pageCount": 2, "requestId": "0o5Fs0EELR0fUjHjbCnEtdUwQe3", "requestItemId": "0o5Fs0EELR0fUjHjbCnEtdUwQe4", "requestItemPlanId": "0o5Fs0EELR0fUjHjbCnEtdUwQe5", "sha256Hash": "3a7bd3e2360a3d29eea436fcfb7e44c735d117c8f2f1d2d1e4f6e8f7e6e8f7e6", - "specificationId": "standard_economy", "status": "PREPARED", "supplierId": "supplier_123", "templateId": "template_123", - "urgency": "STANDARD", "url": "https://s3.eu-west-2.amazonaws.com/notify-letters-dev/letters/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf" }, "datacontenttype": "application/json", diff --git a/packages/events/src/events/__tests__/testData/letter-request-prepared-with-invalid-major-version.json b/packages/events/src/events/__tests__/testData/letter-request-prepared-with-invalid-major-version.json index 3e1fc8d..77eb1ed 100644 --- a/packages/events/src/events/__tests__/testData/letter-request-prepared-with-invalid-major-version.json +++ b/packages/events/src/events/__tests__/testData/letter-request-prepared-with-invalid-major-version.json @@ -4,16 +4,15 @@ "clientId": "00f3b388-bbe9-41c9-9e76-052d37ee8988", "createdAt": "2025-08-28T08:45:00.000Z", "domainId": "0o5Fs0EELR0fUjHjbCnEtdUwQe4_0o5Fs0EELR0fUjHjbCnEtdUwQe5", + "letterVariantId": "standard_economy", "pageCount": 2, "requestId": "0o5Fs0EELR0fUjHjbCnEtdUwQe3", "requestItemId": "0o5Fs0EELR0fUjHjbCnEtdUwQe4", "requestItemPlanId": "0o5Fs0EELR0fUjHjbCnEtdUwQe5", "sha256Hash": "3a7bd3e2360a3d29eea436fcfb7e44c735d117c8f2f1d2d1e4f6e8f7e6e8f7e6", - "specificationId": "standard_economy", "status": "PREPARED", "supplierId": "supplier_123", "templateId": "template_123", - "urgency": "STANDARD", "url": "https://s3.eu-west-2.amazonaws.com/notify-letters-dev/letters/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf" }, "datacontenttype": "application/json", diff --git a/packages/events/src/events/__tests__/testData/letter-request-prepared-with-missing-fields.json b/packages/events/src/events/__tests__/testData/letter-request-prepared-with-missing-fields.json index c02c524..5eac751 100644 --- a/packages/events/src/events/__tests__/testData/letter-request-prepared-with-missing-fields.json +++ b/packages/events/src/events/__tests__/testData/letter-request-prepared-with-missing-fields.json @@ -12,7 +12,6 @@ "status": "PREPARED", "supplierId": "supplier_123", "templateId": "template_123", - "urgency": "STANDARD", "url": "https://s3.eu-west-2.amazonaws.com/notify-letters-dev/letters/f47ac10b-58cc-4372-a567-0e02b2c3d479.pdf" }, "datacontenttype": "application/json",