From 8649e0413ff5de58e9357a4a79126ff3a2298eb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Bombeck?= Date: Sat, 24 Oct 2026 22:37:43 +0200 Subject: [PATCH] test(parity): add the course end fields to the medication route snapshots The medication reads now carry `endedAt` and `canEndCourse`, and every course its `endedAt`; the row dumps carry the new columns. Additions only. Refs #1280 --- .../medication-detail.01-rolling.json.snap | 11 +++++++ .../medication-detail.02-daily.json.snap | 11 +++++++ ...medication-detail.03-record-only.json.snap | 11 +++++++ .../medication-detail.04-not-found.json.snap | 9 ++++++ .../medication-detail.05a-reader.json.snap | 11 +++++++ .../medication-detail.05b-anonymous.json.snap | 9 ++++++ ...edication-detail.11-plain-fields.json.snap | 11 +++++++ ...ation-detail.12-schedule-replace.json.snap | 11 +++++++ ...dication-detail.13-schedule-echo.json.snap | 11 +++++++ ...edication-detail.14-grace-bridge.json.snap | 11 +++++++ .../medication-detail.15a-pause.json.snap | 11 +++++++ .../medication-detail.15b-resume.json.snap | 11 +++++++ ...cation-detail.16-auto-mark-taken.json.snap | 11 +++++++ ...ation-detail.17a-custom-category.json.snap | 11 +++++++ ...ion-detail.17b-native-other-kept.json.snap | 11 +++++++ .../medication-detail.17c-web-other.json.snap | 11 +++++++ ...tion-detail.17d-unknown-category.json.snap | 9 ++++++ ...-detail.18a-record-schedule-kept.json.snap | 11 +++++++ ...edication-detail.18b-tracking-on.json.snap | 11 +++++++ ...dication-detail.18c-tracking-off.json.snap | 11 +++++++ ....19a-scheduled-without-schedules.json.snap | 9 ++++++ .../medication-detail.19b-scheduled.json.snap | 11 +++++++ ....19c-as-needed-keeping-schedules.json.snap | 9 ++++++ .../medication-detail.19d-as-needed.json.snap | 11 +++++++ ...etail.20a-one-shot-two-schedules.json.snap | 9 ++++++ ...n-detail.20b-one-shot-recurrence.json.snap | 9 ++++++ .../medication-detail.20c-one-shot.json.snap | 13 ++++++++ ...cation-detail.21a-course-overlap.json.snap | 10 +++++++ ...etail.21b-course-window-required.json.snap | 10 +++++++ ...medication-detail.21c-course-end.json.snap | 14 +++++++++ ...tion-detail.22-composition-units.json.snap | 12 ++++++++ .../medication-detail.23a-invalid.json.snap | 10 +++++++ .../medication-detail.23b-not-found.json.snap | 10 +++++++ .../medication-detail.24a-writer.json.snap | 10 +++++++ .../medication-detail.24b-manager.json.snap | 12 ++++++++ .../medication-detail.24c-anonymous.json.snap | 10 +++++++ .../medication-detail.31-delete.json.snap | 9 ++++++ .../medication-detail.32-not-found.json.snap | 9 ++++++ .../medication-detail.33a-manager.json.snap | 9 ++++++ .../medication-detail.33b-anonymous.json.snap | 9 ++++++ .../medication-intake-bulk.01-mixed.json.snap | 4 +++ ...ation-intake-bulk.02-mixed-again.json.snap | 4 +++ ...ation-intake-bulk.03a-background.json.snap | 4 +++ ...ication-intake-bulk.03b-backfill.json.snap | 4 +++ ...cation-intake-bulk.04a-too-large.json.snap | 4 +++ ...dication-intake-bulk.04b-invalid.json.snap | 4 +++ ...take-bulk.04c-apple-not-mirrored.json.snap | 4 +++ ...edication-intake-bulk.05a-native.json.snap | 4 +++ ...ion-intake-bulk.05b-narrow-token.json.snap | 4 +++ ...ication-intake-bulk.05c-delegate.json.snap | 4 +++ ...cation-intake-bulk.05d-anonymous.json.snap | 4 +++ ...on-intake-event.01-take-in-place.json.snap | 2 ++ ...cation-intake-event.02-skip-flip.json.snap | 2 ++ ...ion-intake-event.03-move-by-band.json.snap | 2 ++ ...on-intake-event.04-pin-free-slot.json.snap | 2 ++ ...n-intake-event.05-pin-not-a-slot.json.snap | 2 ++ ...ion-intake-event.06-pin-occupied.json.snap | 2 ++ ...medication-intake-event.07-unpin.json.snap | 2 ++ ...on-intake-event.08-explicit-slot.json.snap | 2 ++ ...ion-intake-event.09-before-start.json.snap | 2 ++ ...dication-intake-event.10-invalid.json.snap | 2 ++ ...tion-intake-event.11a-tombstoned.json.snap | 2 ++ ...ntake-event.11b-other-medication.json.snap | 2 ++ ...dication-intake-event.12a-writer.json.snap | 2 ++ ...ication-intake-event.12b-manager.json.snap | 2 ++ ...cation-intake-event.13-anonymous.json.snap | 2 ++ ...edication-intake-event.21-delete.json.snap | 2 ++ ...-intake-event.22-delete-one-shot.json.snap | 2 ++ ...intake-event.23-other-medication.json.snap | 2 ++ ...dication-intake-event.24a-writer.json.snap | 2 ++ ...ication-intake-event.24b-manager.json.snap | 2 ++ ...cation-intake-event.25-anonymous.json.snap | 2 ++ ...edication-intake-status.01-today.json.snap | 4 +++ ...ntake-status.02a-compliance-cold.json.snap | 4 +++ ...ntake-status.02b-compliance-warm.json.snap | 4 +++ ...ication-intake-status.03-invalid.json.snap | 4 +++ ...ication-intake-status.04a-reader.json.snap | 4 +++ ...tion-intake-status.04b-anonymous.json.snap | 4 +++ ...n-intake-status.11-take-in-place.json.snap | 4 +++ ...-intake-status.12-take-slot-move.json.snap | 4 +++ ...medication-intake-status.13a-pin.json.snap | 4 +++ ...intake-status.13b-pin-not-a-slot.json.snap | 4 +++ ...medication-intake-status.14-skip.json.snap | 4 +++ ...n-intake-status.15a-snooze-until.json.snap | 4 +++ ...intake-status.15b-snooze-default.json.snap | 4 +++ ...cation-intake-status.16a-unknown.json.snap | 4 +++ ...cation-intake-status.16b-foreign.json.snap | 4 +++ ...ion-intake-status.16c-tombstoned.json.snap | 4 +++ ...take-status.17a-record-only-open.json.snap | 4 +++ ...tatus.17b-record-only-correction.json.snap | 4 +++ ...take-status.18a-site-not-allowed.json.snap | 4 +++ ...edication-intake-status.18b-site.json.snap | 4 +++ ...ication-intake-status.19-invalid.json.snap | 4 +++ ...on-intake-status.20a-writer-take.json.snap | 4 +++ ...status.20b-writer-snooze-refused.json.snap | 4 +++ ...us.20c-writer-correction-refused.json.snap | 4 +++ ...ication-intake-status.20d-reader.json.snap | 4 +++ ...tion-intake-status.20e-anonymous.json.snap | 4 +++ ...edication-intake.01-take-in-band.json.snap | 5 ++++ ...ation-intake.02a-take-standalone.json.snap | 5 ++++ ...ntake.02b-take-standalone-repeat.json.snap | 5 ++++ ...ation-intake.03a-skip-named-slot.json.snap | 5 ++++ ...ication-intake.03b-skip-slotless.json.snap | 5 ++++ ...delegate-skip-standalone-refused.json.snap | 5 ++++ ...intake.03d-owner-skip-standalone.json.snap | 5 ++++ .../medication-intake.04a-pin.json.snap | 5 ++++ ...cation-intake.04b-pin-not-a-slot.json.snap | 5 ++++ ...dication-intake.04c-pin-occupied.json.snap | 5 ++++ ...ication-intake.05-named-backfill.json.snap | 5 ++++ .../medication-intake.06a-body-key.json.snap | 5 ++++ ...ation-intake.06b-body-key-replay.json.snap | 5 ++++ ...medication-intake.07a-header-key.json.snap | 5 ++++ ...ion-intake.07b-header-key-replay.json.snap | 5 ++++ .../medication-intake.08-native.json.snap | 5 ++++ ...intake.09a-delegate-skip-refused.json.snap | 5 ++++ ...ation-intake.09b-owner-skip-flip.json.snap | 5 ++++ ...edication-intake.10a-writer-take.json.snap | 5 ++++ .../medication-intake.10b-reader.json.snap | 5 ++++ .../medication-intake.10c-anonymous.json.snap | 5 ++++ ...tion-intake.11a-site-not-allowed.json.snap | 5 ++++ ...ication-intake.11b-site-and-dose.json.snap | 5 ++++ .../medication-intake.12-one-shot.json.snap | 5 ++++ .../medication-intake.13-invalid.json.snap | 5 ++++ .../medication-intake.14a-not-found.json.snap | 5 ++++ ...edication-intake.14b-record-only.json.snap | 5 ++++ .../medication-intake.21-default.json.snap | 5 ++++ ...ication-intake.22-completed-page.json.snap | 5 ++++ .../medication-intake.23a-skipped.json.snap | 5 ++++ .../medication-intake.23b-taken.json.snap | 5 ++++ .../medication-intake.24-invalid.json.snap | 5 ++++ .../medication-intake.25a-not-found.json.snap | 5 ++++ .../medication-intake.25b-reader.json.snap | 5 ++++ .../medication-intake.25c-anonymous.json.snap | 5 ++++ .../medications.01-list.json.snap | 3 ++ .../medications.02a-list-reader.json.snap | 3 ++ .../medications.02b-list-anonymous.json.snap | 1 + .../medications.11-plain.json.snap | 4 +++ .../medications.12-full.json.snap | 7 +++++ .../medications.13a-as-needed.json.snap | 7 +++++ .../medications.13b-one-shot.json.snap | 10 +++++++ ...ications.13c-prn-and-legacy-days.json.snap | 10 +++++++ .../medications.13d-ended-window.json.snap | 13 ++++++++ ...medications.14a-unknown-category.json.snap | 10 +++++++ ...ons.14b-course-ends-before-start.json.snap | 10 +++++++ ...tions.14c-one-shot-two-schedules.json.snap | 10 +++++++ ...ications.14d-one-shot-recurrence.json.snap | 10 +++++++ ...ications.14e-unstable-concept-id.json.snap | 10 +++++++ .../medications.14f-invalid.json.snap | 10 +++++++ .../medications.15a-mirror.json.snap | 13 ++++++++ .../medications.15b-mirror-replay.json.snap | 13 ++++++++ .../medications.16-mirror-cap.json.snap | 30 +++++++++++++++++++ ...medications.17a-idempotent-first.json.snap | 14 +++++++++ ...edications.17b-idempotent-replay.json.snap | 14 +++++++++ .../medications.18a-writer.json.snap | 15 ++++++++++ .../medications.18b-reader.json.snap | 13 ++++++++ .../medications.19-anonymous.json.snap | 13 ++++++++ 156 files changed, 1027 insertions(+) diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.01-rolling.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.01-rolling.json.snap index 7d5a09722..fadfcd7b5 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.01-rolling.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.01-rolling.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -68,6 +69,7 @@ "nextDueOverdue": false, "courseStatus": "CURRENT", "intakeActionable": true, + "canEndCourse": true, "stockUnitsRemaining": 3, "stockDosesRemaining": 3, "runwayDays": 21, @@ -116,6 +118,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -150,6 +153,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -184,6 +188,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -218,6 +223,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -252,6 +258,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -286,6 +293,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -320,6 +328,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -492,6 +501,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -502,6 +512,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.02-daily.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.02-daily.json.snap index 618a09d7a..908bc834c 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.02-daily.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.02-daily.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -89,6 +90,7 @@ "nextDueOverdue": false, "courseStatus": "CURRENT", "intakeActionable": true, + "canEndCourse": true, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -127,6 +129,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -161,6 +164,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -195,6 +199,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -229,6 +234,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -263,6 +269,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -297,6 +304,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -331,6 +339,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -503,6 +512,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -513,6 +523,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.03-record-only.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.03-record-only.json.snap index 9b038c771..308885b93 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.03-record-only.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.03-record-only.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -69,6 +70,7 @@ "nextDueOverdue": false, "courseStatus": "CURRENT", "intakeActionable": false, + "canEndCourse": true, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -107,6 +109,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -141,6 +144,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -175,6 +179,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -209,6 +214,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -243,6 +249,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -277,6 +284,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -311,6 +319,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -483,6 +492,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -493,6 +503,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.04-not-found.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.04-not-found.json.snap index 4be62bf07..3a838452f 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.04-not-found.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.04-not-found.json.snap @@ -34,6 +34,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -68,6 +69,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -102,6 +104,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -136,6 +139,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -170,6 +174,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -204,6 +209,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -238,6 +244,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -410,6 +417,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -420,6 +428,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.05a-reader.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.05a-reader.json.snap index 7d5a09722..fadfcd7b5 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.05a-reader.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.05a-reader.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -68,6 +69,7 @@ "nextDueOverdue": false, "courseStatus": "CURRENT", "intakeActionable": true, + "canEndCourse": true, "stockUnitsRemaining": 3, "stockDosesRemaining": 3, "runwayDays": 21, @@ -116,6 +118,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -150,6 +153,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -184,6 +188,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -218,6 +223,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -252,6 +258,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -286,6 +293,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -320,6 +328,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -492,6 +501,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -502,6 +512,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.05b-anonymous.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.05b-anonymous.json.snap index 408d19cc6..3d27bb59f 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.05b-anonymous.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.05b-anonymous.json.snap @@ -37,6 +37,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -71,6 +72,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -105,6 +107,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -139,6 +142,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -173,6 +177,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -207,6 +212,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -241,6 +247,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -413,6 +420,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -423,6 +431,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.11-plain-fields.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.11-plain-fields.json.snap index a51c9f9c7..e29ffb88c 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.11-plain-fields.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.11-plain-fields.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -89,6 +90,7 @@ "nextDueOverdue": false, "courseStatus": "CURRENT", "intakeActionable": true, + "canEndCourse": true, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -127,6 +129,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -161,6 +164,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -195,6 +199,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -229,6 +234,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -263,6 +269,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -297,6 +304,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -331,6 +339,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -503,6 +512,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -513,6 +523,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.12-schedule-replace.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.12-schedule-replace.json.snap index 633798338..ccbedd002 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.12-schedule-replace.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.12-schedule-replace.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -95,6 +96,7 @@ "nextDueOverdue": false, "courseStatus": "CURRENT", "intakeActionable": true, + "canEndCourse": true, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -135,6 +137,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -169,6 +172,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -203,6 +207,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -237,6 +242,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -271,6 +277,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -305,6 +312,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -339,6 +347,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -563,6 +572,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -573,6 +583,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.13-schedule-echo.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.13-schedule-echo.json.snap index 798ac25e4..e65487eca 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.13-schedule-echo.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.13-schedule-echo.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -95,6 +96,7 @@ "nextDueOverdue": false, "courseStatus": "CURRENT", "intakeActionable": true, + "canEndCourse": true, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -133,6 +135,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -167,6 +170,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -201,6 +205,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -235,6 +240,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -269,6 +275,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -303,6 +310,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -337,6 +345,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -561,6 +570,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -571,6 +581,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.14-grace-bridge.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.14-grace-bridge.json.snap index b2c594dfe..758c2b692 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.14-grace-bridge.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.14-grace-bridge.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -95,6 +96,7 @@ "nextDueOverdue": false, "courseStatus": "CURRENT", "intakeActionable": true, + "canEndCourse": true, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -133,6 +135,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -167,6 +170,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -201,6 +205,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -235,6 +240,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -269,6 +275,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -303,6 +310,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -337,6 +345,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -561,6 +570,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -571,6 +581,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.15a-pause.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.15a-pause.json.snap index 341c62676..fb0924bcd 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.15a-pause.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.15a-pause.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -95,6 +96,7 @@ "nextDueOverdue": false, "courseStatus": "CURRENT", "intakeActionable": false, + "canEndCourse": true, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -133,6 +135,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -167,6 +170,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -201,6 +205,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -235,6 +240,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -269,6 +275,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -303,6 +310,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -337,6 +345,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -570,6 +579,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -580,6 +590,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.15b-resume.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.15b-resume.json.snap index eb29dbaf6..a2e1884af 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.15b-resume.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.15b-resume.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -95,6 +96,7 @@ "nextDueOverdue": false, "courseStatus": "CURRENT", "intakeActionable": true, + "canEndCourse": true, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -133,6 +135,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -167,6 +170,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -201,6 +205,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -235,6 +240,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -269,6 +275,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -303,6 +310,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -337,6 +345,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -570,6 +579,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -580,6 +590,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.16-auto-mark-taken.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.16-auto-mark-taken.json.snap index d9b77b14f..199a3e754 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.16-auto-mark-taken.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.16-auto-mark-taken.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -95,6 +96,7 @@ "nextDueOverdue": false, "courseStatus": "CURRENT", "intakeActionable": true, + "canEndCourse": true, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -133,6 +135,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -167,6 +170,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -201,6 +205,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -235,6 +240,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -269,6 +275,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -303,6 +310,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -337,6 +345,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -570,6 +579,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -580,6 +590,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.17a-custom-category.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.17a-custom-category.json.snap index 1aff35567..9ea6183b1 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.17a-custom-category.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.17a-custom-category.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -95,6 +96,7 @@ "nextDueOverdue": false, "courseStatus": "CURRENT", "intakeActionable": true, + "canEndCourse": true, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -133,6 +135,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -167,6 +170,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -201,6 +205,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -235,6 +240,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -269,6 +275,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -303,6 +310,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -337,6 +345,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -570,6 +579,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -580,6 +590,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.17b-native-other-kept.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.17b-native-other-kept.json.snap index d6d69d3b3..7253a5ac5 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.17b-native-other-kept.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.17b-native-other-kept.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -95,6 +96,7 @@ "nextDueOverdue": false, "courseStatus": "CURRENT", "intakeActionable": true, + "canEndCourse": true, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -135,6 +137,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -169,6 +172,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -203,6 +207,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -237,6 +242,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -271,6 +277,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -305,6 +312,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -339,6 +347,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -572,6 +581,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -582,6 +592,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.17c-web-other.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.17c-web-other.json.snap index 8298a4f74..a0a2f9f89 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.17c-web-other.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.17c-web-other.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -95,6 +96,7 @@ "nextDueOverdue": false, "courseStatus": "CURRENT", "intakeActionable": true, + "canEndCourse": true, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -133,6 +135,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -167,6 +170,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -201,6 +205,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -235,6 +240,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -269,6 +275,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -303,6 +310,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -337,6 +345,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -570,6 +579,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -580,6 +590,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.17d-unknown-category.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.17d-unknown-category.json.snap index 42df8b7a2..257b03adb 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.17d-unknown-category.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.17d-unknown-category.json.snap @@ -34,6 +34,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -68,6 +69,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -102,6 +104,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -136,6 +139,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -170,6 +174,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -204,6 +209,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -238,6 +244,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -471,6 +478,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -481,6 +489,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.18a-record-schedule-kept.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.18a-record-schedule-kept.json.snap index b8c24ee3e..23d2b7dd8 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.18a-record-schedule-kept.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.18a-record-schedule-kept.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -69,6 +70,7 @@ "nextDueOverdue": false, "courseStatus": "CURRENT", "intakeActionable": false, + "canEndCourse": true, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -111,6 +113,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -145,6 +148,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -179,6 +183,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -213,6 +218,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -247,6 +253,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -281,6 +288,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -315,6 +323,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -548,6 +557,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -558,6 +568,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.18b-tracking-on.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.18b-tracking-on.json.snap index fb5603aae..3d331df26 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.18b-tracking-on.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.18b-tracking-on.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -68,6 +69,7 @@ "nextDueOverdue": false, "courseStatus": "CURRENT", "intakeActionable": true, + "canEndCourse": true, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -109,6 +111,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -143,6 +146,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -177,6 +181,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -211,6 +216,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -245,6 +251,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -279,6 +286,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -313,6 +321,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -556,6 +565,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -566,6 +576,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.18c-tracking-off.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.18c-tracking-off.json.snap index 725e80fbf..243bfedfe 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.18c-tracking-off.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.18c-tracking-off.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -69,6 +70,7 @@ "nextDueOverdue": false, "courseStatus": "CURRENT", "intakeActionable": false, + "canEndCourse": true, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -110,6 +112,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -144,6 +147,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -178,6 +182,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -212,6 +217,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -246,6 +252,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -280,6 +287,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -314,6 +322,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -585,6 +594,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -595,6 +605,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.19a-scheduled-without-schedules.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.19a-scheduled-without-schedules.json.snap index a114b01cb..1b9000bc5 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.19a-scheduled-without-schedules.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.19a-scheduled-without-schedules.json.snap @@ -34,6 +34,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -68,6 +69,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -102,6 +104,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -136,6 +139,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -170,6 +174,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -204,6 +209,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -238,6 +244,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -509,6 +516,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -519,6 +527,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.19b-scheduled.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.19b-scheduled.json.snap index fe0b6e967..43a995ddf 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.19b-scheduled.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.19b-scheduled.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -68,6 +69,7 @@ "nextDueOverdue": false, "courseStatus": "CURRENT", "intakeActionable": true, + "canEndCourse": true, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -108,6 +110,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -142,6 +145,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -176,6 +180,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -210,6 +215,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -244,6 +250,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -278,6 +285,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -312,6 +320,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -613,6 +622,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -623,6 +633,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.19c-as-needed-keeping-schedules.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.19c-as-needed-keeping-schedules.json.snap index fbcedbd50..302d9b2d6 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.19c-as-needed-keeping-schedules.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.19c-as-needed-keeping-schedules.json.snap @@ -34,6 +34,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -68,6 +69,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -102,6 +104,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -136,6 +139,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -170,6 +174,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -204,6 +209,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -238,6 +244,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -539,6 +546,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -549,6 +557,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.19d-as-needed.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.19d-as-needed.json.snap index 582f4f13f..ab4e2d3fb 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.19d-as-needed.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.19d-as-needed.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -46,6 +47,7 @@ "nextDueOverdue": false, "courseStatus": "CURRENT", "intakeActionable": true, + "canEndCourse": true, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -86,6 +88,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -120,6 +123,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -154,6 +158,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -188,6 +193,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -222,6 +228,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -256,6 +263,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -290,6 +298,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -599,6 +608,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -609,6 +619,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.20a-one-shot-two-schedules.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.20a-one-shot-two-schedules.json.snap index bf46e1b89..c865ac348 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.20a-one-shot-two-schedules.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.20a-one-shot-two-schedules.json.snap @@ -34,6 +34,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -68,6 +69,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -102,6 +104,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -136,6 +139,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -170,6 +174,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -204,6 +209,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -238,6 +244,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -547,6 +554,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -557,6 +565,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.20b-one-shot-recurrence.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.20b-one-shot-recurrence.json.snap index a7639f5bc..5c7c0c0ca 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.20b-one-shot-recurrence.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.20b-one-shot-recurrence.json.snap @@ -34,6 +34,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -68,6 +69,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -102,6 +104,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -136,6 +139,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -170,6 +174,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -204,6 +209,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -238,6 +244,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -547,6 +554,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -557,6 +565,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.20c-one-shot.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.20c-one-shot.json.snap index 0560579b9..45d3302dd 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.20c-one-shot.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.20c-one-shot.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -64,6 +65,7 @@ "id": "", "startsOn": "2026-10-20", "endsOn": "2026-10-20", + "endedAt": null, "status": "UPCOMING", "takenDoses": 0, "note": null @@ -77,6 +79,7 @@ "nextDueOverdue": false, "courseStatus": "UPCOMING", "intakeActionable": false, + "canEndCourse": false, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -117,6 +120,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -151,6 +155,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -185,6 +190,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -219,6 +225,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -253,6 +260,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -287,6 +295,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -321,6 +330,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -658,6 +668,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -668,6 +679,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -678,6 +690,7 @@ "userId": "", "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.21a-course-overlap.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.21a-course-overlap.json.snap index 95ee616b8..643118922 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.21a-course-overlap.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.21a-course-overlap.json.snap @@ -34,6 +34,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -68,6 +69,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -102,6 +104,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -136,6 +139,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -170,6 +174,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -204,6 +209,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -238,6 +244,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -575,6 +582,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -585,6 +593,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -595,6 +604,7 @@ "userId": "", "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.21b-course-window-required.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.21b-course-window-required.json.snap index 29c9db892..203769d88 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.21b-course-window-required.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.21b-course-window-required.json.snap @@ -34,6 +34,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -68,6 +69,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -102,6 +104,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -136,6 +139,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -170,6 +174,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -204,6 +209,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -238,6 +244,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -575,6 +582,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -585,6 +593,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -595,6 +604,7 @@ "userId": "", "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.21c-course-end.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.21c-course-end.json.snap index 7d472d215..32048150f 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.21c-course-end.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.21c-course-end.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -64,6 +65,7 @@ "id": "", "startsOn": "2026-08-01", "endsOn": "2026-08-31", + "endedAt": null, "status": "ENDED", "takenDoses": 0, "note": null @@ -72,6 +74,7 @@ "id": "", "startsOn": "2026-10-01", "endsOn": "2026-12-31", + "endedAt": null, "status": "CURRENT", "takenDoses": 0, "note": null @@ -85,6 +88,7 @@ "nextDueOverdue": false, "courseStatus": "CURRENT", "intakeActionable": true, + "canEndCourse": true, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -123,6 +127,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -157,6 +162,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -191,6 +197,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -225,6 +232,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -259,6 +267,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -293,6 +302,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -327,6 +337,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -664,6 +675,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -674,6 +686,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -684,6 +697,7 @@ "userId": "", "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.22-composition-units.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.22-composition-units.json.snap index 02ed0c383..093b55a10 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.22-composition-units.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.22-composition-units.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -68,6 +69,7 @@ "nextDueOverdue": false, "courseStatus": "CURRENT", "intakeActionable": true, + "canEndCourse": true, "stockUnitsRemaining": 3, "stockDosesRemaining": 1, "runwayDays": 10, @@ -123,6 +125,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -157,6 +160,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -191,6 +195,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -225,6 +230,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -259,6 +265,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -293,6 +300,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -327,6 +335,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -664,6 +673,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -674,6 +684,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -684,6 +695,7 @@ "userId": "", "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.23a-invalid.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.23a-invalid.json.snap index 0967c7eaa..b7f9aba85 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.23a-invalid.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.23a-invalid.json.snap @@ -53,6 +53,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -87,6 +88,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -121,6 +123,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -155,6 +158,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -189,6 +193,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -223,6 +228,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -257,6 +263,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -594,6 +601,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -604,6 +612,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -614,6 +623,7 @@ "userId": "", "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.23b-not-found.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.23b-not-found.json.snap index 9848e8212..d587eb862 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.23b-not-found.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.23b-not-found.json.snap @@ -34,6 +34,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -68,6 +69,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -102,6 +104,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -136,6 +139,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -170,6 +174,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -204,6 +209,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -238,6 +244,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -575,6 +582,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -585,6 +593,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -595,6 +604,7 @@ "userId": "", "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.24a-writer.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.24a-writer.json.snap index 28c205ead..76f3545ba 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.24a-writer.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.24a-writer.json.snap @@ -39,6 +39,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -73,6 +74,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -107,6 +109,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -141,6 +144,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -175,6 +179,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -209,6 +214,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -243,6 +249,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -580,6 +587,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -590,6 +598,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -600,6 +609,7 @@ "userId": "", "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.24b-manager.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.24b-manager.json.snap index ee901103c..fc30cf253 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.24b-manager.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.24b-manager.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -95,6 +96,7 @@ "nextDueOverdue": false, "courseStatus": "CURRENT", "intakeActionable": true, + "canEndCourse": true, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -133,6 +135,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -167,6 +170,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -201,6 +205,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -235,6 +240,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -269,6 +275,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -303,6 +310,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -337,6 +345,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -674,6 +683,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -684,6 +694,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -694,6 +705,7 @@ "userId": "", "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.24c-anonymous.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.24c-anonymous.json.snap index 028da3263..5361c6039 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.24c-anonymous.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.24c-anonymous.json.snap @@ -37,6 +37,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -71,6 +72,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -105,6 +107,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -139,6 +142,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -173,6 +177,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -207,6 +212,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -241,6 +247,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -578,6 +585,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -588,6 +596,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -598,6 +607,7 @@ "userId": "", "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.31-delete.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.31-delete.json.snap index 4459480a0..23dd277b8 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.31-delete.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.31-delete.json.snap @@ -43,6 +43,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -77,6 +78,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -111,6 +113,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -145,6 +148,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -179,6 +183,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -213,6 +218,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -530,6 +536,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -540,6 +547,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -550,6 +558,7 @@ "userId": "", "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.32-not-found.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.32-not-found.json.snap index 5f7a74b90..d5704e024 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.32-not-found.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.32-not-found.json.snap @@ -34,6 +34,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -68,6 +69,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -102,6 +104,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -136,6 +139,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -170,6 +174,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -204,6 +209,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -521,6 +527,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -531,6 +538,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -541,6 +549,7 @@ "userId": "", "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.33a-manager.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.33a-manager.json.snap index 849675a62..21bb52672 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.33a-manager.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.33a-manager.json.snap @@ -39,6 +39,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -73,6 +74,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -107,6 +109,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -141,6 +144,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -175,6 +179,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -209,6 +214,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -526,6 +532,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -536,6 +543,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -546,6 +554,7 @@ "userId": "", "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-detail.33b-anonymous.json.snap b/tests/integration/routes/parity/__snapshots__/medication-detail.33b-anonymous.json.snap index 29eef6fb4..2edeadaa2 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-detail.33b-anonymous.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-detail.33b-anonymous.json.snap @@ -37,6 +37,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -71,6 +72,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -105,6 +107,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -139,6 +142,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -173,6 +177,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -207,6 +212,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -524,6 +530,7 @@ "userId": "", "startsOn": "2026-08-01T00:00:00.000Z", "endsOn": "2026-08-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -534,6 +541,7 @@ "userId": "", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -544,6 +552,7 @@ "userId": "", "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.01-mixed.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.01-mixed.json.snap index 436ec3020..6a11c1d74 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.01-mixed.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.01-mixed.json.snap @@ -231,6 +231,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -265,6 +266,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -302,6 +304,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -336,6 +339,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.02-mixed-again.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.02-mixed-again.json.snap index 3cb7d5b8a..d75efdf72 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.02-mixed-again.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.02-mixed-again.json.snap @@ -219,6 +219,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -253,6 +254,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -290,6 +292,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -324,6 +327,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.03a-background.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.03a-background.json.snap index eebf4724a..20fed75d5 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.03a-background.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.03a-background.json.snap @@ -90,6 +90,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -124,6 +125,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -161,6 +163,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -195,6 +198,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.03b-backfill.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.03b-backfill.json.snap index 628b2b978..0eabbaeb1 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.03b-backfill.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.03b-backfill.json.snap @@ -89,6 +89,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -123,6 +124,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -160,6 +162,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -194,6 +197,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.04a-too-large.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.04a-too-large.json.snap index 3b6ab3db5..2a194eb68 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.04a-too-large.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.04a-too-large.json.snap @@ -36,6 +36,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -70,6 +71,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -107,6 +109,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -141,6 +144,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.04b-invalid.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.04b-invalid.json.snap index 8d502393a..37645d0cf 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.04b-invalid.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.04b-invalid.json.snap @@ -54,6 +54,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -88,6 +89,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -125,6 +127,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -159,6 +162,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.04c-apple-not-mirrored.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.04c-apple-not-mirrored.json.snap index 1b576c2b2..c6d66efd3 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.04c-apple-not-mirrored.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.04c-apple-not-mirrored.json.snap @@ -36,6 +36,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -70,6 +71,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -107,6 +109,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -141,6 +144,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.05a-native.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.05a-native.json.snap index 7f14348a3..0f38ac32f 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.05a-native.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.05a-native.json.snap @@ -92,6 +92,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -126,6 +127,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -163,6 +165,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -197,6 +200,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.05b-narrow-token.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.05b-narrow-token.json.snap index 8b38a8d26..14d3d3550 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.05b-narrow-token.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.05b-narrow-token.json.snap @@ -37,6 +37,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -71,6 +72,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -108,6 +110,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -142,6 +145,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.05c-delegate.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.05c-delegate.json.snap index e30efa5ac..0107f8c9a 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.05c-delegate.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.05c-delegate.json.snap @@ -39,6 +39,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -73,6 +74,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -110,6 +112,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -144,6 +147,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.05d-anonymous.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.05d-anonymous.json.snap index 06466d200..aa8bddbc4 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.05d-anonymous.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-bulk.05d-anonymous.json.snap @@ -37,6 +37,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -71,6 +72,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -108,6 +110,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -142,6 +145,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-event.01-take-in-place.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-event.01-take-in-place.json.snap index 6ce397312..018ac0aed 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-event.01-take-in-place.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-event.01-take-in-place.json.snap @@ -71,6 +71,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -105,6 +106,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-event.02-skip-flip.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-event.02-skip-flip.json.snap index f264ae601..1ba3463cd 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-event.02-skip-flip.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-event.02-skip-flip.json.snap @@ -75,6 +75,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -109,6 +110,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-event.03-move-by-band.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-event.03-move-by-band.json.snap index 6136a16fc..dc2fbea2b 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-event.03-move-by-band.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-event.03-move-by-band.json.snap @@ -66,6 +66,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -100,6 +101,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-event.04-pin-free-slot.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-event.04-pin-free-slot.json.snap index 554560af1..fc7baa67c 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-event.04-pin-free-slot.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-event.04-pin-free-slot.json.snap @@ -66,6 +66,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -100,6 +101,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-event.05-pin-not-a-slot.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-event.05-pin-not-a-slot.json.snap index c6e364cd5..7b077dba5 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-event.05-pin-not-a-slot.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-event.05-pin-not-a-slot.json.snap @@ -39,6 +39,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -73,6 +74,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-event.06-pin-occupied.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-event.06-pin-occupied.json.snap index 5e081753f..54240a673 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-event.06-pin-occupied.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-event.06-pin-occupied.json.snap @@ -39,6 +39,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -73,6 +74,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-event.07-unpin.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-event.07-unpin.json.snap index a0661d19b..7c0ec4913 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-event.07-unpin.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-event.07-unpin.json.snap @@ -66,6 +66,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -100,6 +101,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-event.08-explicit-slot.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-event.08-explicit-slot.json.snap index 8af962b7e..605b48570 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-event.08-explicit-slot.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-event.08-explicit-slot.json.snap @@ -66,6 +66,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -100,6 +101,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-event.09-before-start.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-event.09-before-start.json.snap index 84475f2d0..7251d4876 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-event.09-before-start.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-event.09-before-start.json.snap @@ -39,6 +39,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -73,6 +74,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-event.10-invalid.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-event.10-invalid.json.snap index e78d84965..2ede7d14c 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-event.10-invalid.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-event.10-invalid.json.snap @@ -55,6 +55,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -89,6 +90,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-event.11a-tombstoned.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-event.11a-tombstoned.json.snap index 7a2824812..4374fa8c5 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-event.11a-tombstoned.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-event.11a-tombstoned.json.snap @@ -34,6 +34,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -68,6 +69,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-event.11b-other-medication.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-event.11b-other-medication.json.snap index 7a2824812..4374fa8c5 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-event.11b-other-medication.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-event.11b-other-medication.json.snap @@ -34,6 +34,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -68,6 +69,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-event.12a-writer.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-event.12a-writer.json.snap index 5cc86ab63..83c820948 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-event.12a-writer.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-event.12a-writer.json.snap @@ -39,6 +39,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -73,6 +74,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-event.12b-manager.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-event.12b-manager.json.snap index d3b8934ca..f0912295a 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-event.12b-manager.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-event.12b-manager.json.snap @@ -66,6 +66,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -100,6 +101,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-event.13-anonymous.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-event.13-anonymous.json.snap index a1e963e0d..3084379ef 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-event.13-anonymous.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-event.13-anonymous.json.snap @@ -37,6 +37,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -71,6 +72,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-event.21-delete.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-event.21-delete.json.snap index 4658173e8..d91c10a34 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-event.21-delete.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-event.21-delete.json.snap @@ -48,6 +48,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -82,6 +83,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-event.22-delete-one-shot.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-event.22-delete-one-shot.json.snap index 7bc6ba40a..0d59213d6 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-event.22-delete-one-shot.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-event.22-delete-one-shot.json.snap @@ -47,6 +47,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -81,6 +82,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-event.23-other-medication.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-event.23-other-medication.json.snap index c7950a1eb..d507d8089 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-event.23-other-medication.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-event.23-other-medication.json.snap @@ -34,6 +34,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -68,6 +69,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-event.24a-writer.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-event.24a-writer.json.snap index 9ae53c9b8..601f8ae80 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-event.24a-writer.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-event.24a-writer.json.snap @@ -39,6 +39,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -73,6 +74,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-event.24b-manager.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-event.24b-manager.json.snap index 32e1401fb..8d45ef6cb 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-event.24b-manager.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-event.24b-manager.json.snap @@ -48,6 +48,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -82,6 +83,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-event.25-anonymous.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-event.25-anonymous.json.snap index 9d3d932eb..b053161b3 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-event.25-anonymous.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-event.25-anonymous.json.snap @@ -37,6 +37,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -71,6 +72,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-status.01-today.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-status.01-today.json.snap index 542dd90b5..ef3553289 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-status.01-today.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-status.01-today.json.snap @@ -85,6 +85,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -122,6 +123,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -156,6 +158,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -190,6 +193,7 @@ "snoozedUntil": "2026-10-15T12:30:00.000Z", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-status.02a-compliance-cold.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-status.02a-compliance-cold.json.snap index 6296a686c..dc985d803 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-status.02a-compliance-cold.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-status.02a-compliance-cold.json.snap @@ -73,6 +73,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -110,6 +111,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -144,6 +146,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -178,6 +181,7 @@ "snoozedUntil": "2026-10-15T12:30:00.000Z", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-status.02b-compliance-warm.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-status.02b-compliance-warm.json.snap index 20f1f535b..8e8e292b5 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-status.02b-compliance-warm.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-status.02b-compliance-warm.json.snap @@ -73,6 +73,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -110,6 +111,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -144,6 +146,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -178,6 +181,7 @@ "snoozedUntil": "2026-10-15T12:30:00.000Z", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-status.03-invalid.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-status.03-invalid.json.snap index 9de2f573c..3b0fbf4f0 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-status.03-invalid.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-status.03-invalid.json.snap @@ -53,6 +53,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -90,6 +91,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -124,6 +126,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -158,6 +161,7 @@ "snoozedUntil": "2026-10-15T12:30:00.000Z", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-status.04a-reader.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-status.04a-reader.json.snap index 542dd90b5..ef3553289 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-status.04a-reader.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-status.04a-reader.json.snap @@ -85,6 +85,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -122,6 +123,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -156,6 +158,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -190,6 +193,7 @@ "snoozedUntil": "2026-10-15T12:30:00.000Z", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-status.04b-anonymous.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-status.04b-anonymous.json.snap index 3016b5ab1..cae6c976b 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-status.04b-anonymous.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-status.04b-anonymous.json.snap @@ -37,6 +37,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -74,6 +75,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -108,6 +110,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -142,6 +145,7 @@ "snoozedUntil": "2026-10-15T12:30:00.000Z", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-status.11-take-in-place.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-status.11-take-in-place.json.snap index 6001b05ef..99adee5e6 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-status.11-take-in-place.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-status.11-take-in-place.json.snap @@ -100,6 +100,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -137,6 +138,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -171,6 +173,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -205,6 +208,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-status.12-take-slot-move.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-status.12-take-slot-move.json.snap index 3fa6e304b..ed5baac0a 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-status.12-take-slot-move.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-status.12-take-slot-move.json.snap @@ -100,6 +100,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -137,6 +138,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -171,6 +173,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -205,6 +208,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-status.13a-pin.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-status.13a-pin.json.snap index 3b10a3bff..054ee2099 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-status.13a-pin.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-status.13a-pin.json.snap @@ -100,6 +100,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -137,6 +138,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -171,6 +173,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -205,6 +208,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-status.13b-pin-not-a-slot.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-status.13b-pin-not-a-slot.json.snap index 11df637ed..6aa653941 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-status.13b-pin-not-a-slot.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-status.13b-pin-not-a-slot.json.snap @@ -39,6 +39,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -76,6 +77,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -110,6 +112,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -144,6 +147,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-status.14-skip.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-status.14-skip.json.snap index 522843f52..657ce643a 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-status.14-skip.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-status.14-skip.json.snap @@ -94,6 +94,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -131,6 +132,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -165,6 +167,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -199,6 +202,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-status.15a-snooze-until.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-status.15a-snooze-until.json.snap index 80c9de305..a308a9bbc 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-status.15a-snooze-until.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-status.15a-snooze-until.json.snap @@ -76,6 +76,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -113,6 +114,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -147,6 +149,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -181,6 +184,7 @@ "snoozedUntil": "2026-10-15T13:00:00.000Z", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-status.15b-snooze-default.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-status.15b-snooze-default.json.snap index 7ab938329..a7e84e0cc 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-status.15b-snooze-default.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-status.15b-snooze-default.json.snap @@ -76,6 +76,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -113,6 +114,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -147,6 +149,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -181,6 +184,7 @@ "snoozedUntil": "2026-10-15T12:30:00.000Z", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-status.16a-unknown.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-status.16a-unknown.json.snap index fba272828..6646f7cab 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-status.16a-unknown.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-status.16a-unknown.json.snap @@ -34,6 +34,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -71,6 +72,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -105,6 +107,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -139,6 +142,7 @@ "snoozedUntil": "2026-10-15T12:30:00.000Z", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-status.16b-foreign.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-status.16b-foreign.json.snap index fba272828..6646f7cab 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-status.16b-foreign.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-status.16b-foreign.json.snap @@ -34,6 +34,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -71,6 +72,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -105,6 +107,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -139,6 +142,7 @@ "snoozedUntil": "2026-10-15T12:30:00.000Z", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-status.16c-tombstoned.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-status.16c-tombstoned.json.snap index fba272828..6646f7cab 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-status.16c-tombstoned.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-status.16c-tombstoned.json.snap @@ -34,6 +34,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -71,6 +72,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -105,6 +107,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -139,6 +142,7 @@ "snoozedUntil": "2026-10-15T12:30:00.000Z", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-status.17a-record-only-open.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-status.17a-record-only-open.json.snap index 547106503..62c80aeb4 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-status.17a-record-only-open.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-status.17a-record-only-open.json.snap @@ -34,6 +34,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -71,6 +72,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -105,6 +107,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -139,6 +142,7 @@ "snoozedUntil": "2026-10-15T12:30:00.000Z", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-status.17b-record-only-correction.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-status.17b-record-only-correction.json.snap index e314edc22..934a769af 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-status.17b-record-only-correction.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-status.17b-record-only-correction.json.snap @@ -94,6 +94,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -131,6 +132,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -165,6 +167,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -199,6 +202,7 @@ "snoozedUntil": "2026-10-15T12:30:00.000Z", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-status.18a-site-not-allowed.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-status.18a-site-not-allowed.json.snap index df23d680d..c3e8a898d 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-status.18a-site-not-allowed.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-status.18a-site-not-allowed.json.snap @@ -39,6 +39,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -76,6 +77,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -110,6 +112,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -144,6 +147,7 @@ "snoozedUntil": "2026-10-15T12:30:00.000Z", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-status.18b-site.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-status.18b-site.json.snap index 0579f7e56..ced1d3c2c 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-status.18b-site.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-status.18b-site.json.snap @@ -98,6 +98,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -135,6 +136,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -169,6 +171,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -203,6 +206,7 @@ "snoozedUntil": "2026-10-15T12:30:00.000Z", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-status.19-invalid.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-status.19-invalid.json.snap index d124ccc0f..fbc19c409 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-status.19-invalid.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-status.19-invalid.json.snap @@ -53,6 +53,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -90,6 +91,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -124,6 +126,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -158,6 +161,7 @@ "snoozedUntil": "2026-10-15T12:30:00.000Z", "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-status.20a-writer-take.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-status.20a-writer-take.json.snap index a7a6cb365..7aa4d03c3 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-status.20a-writer-take.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-status.20a-writer-take.json.snap @@ -99,6 +99,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -136,6 +137,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -170,6 +172,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -204,6 +207,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-status.20b-writer-snooze-refused.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-status.20b-writer-snooze-refused.json.snap index 8dd33d85b..791a3e966 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-status.20b-writer-snooze-refused.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-status.20b-writer-snooze-refused.json.snap @@ -38,6 +38,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -75,6 +76,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -109,6 +111,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -143,6 +146,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-status.20c-writer-correction-refused.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-status.20c-writer-correction-refused.json.snap index 4083a8d7e..6aff596a7 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-status.20c-writer-correction-refused.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-status.20c-writer-correction-refused.json.snap @@ -38,6 +38,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -75,6 +76,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -109,6 +111,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -143,6 +146,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-status.20d-reader.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-status.20d-reader.json.snap index 2f40671a2..bcef0c96f 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-status.20d-reader.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-status.20d-reader.json.snap @@ -39,6 +39,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -76,6 +77,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -110,6 +112,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -144,6 +147,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake-status.20e-anonymous.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake-status.20e-anonymous.json.snap index 76f803a7e..a9a2c9851 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake-status.20e-anonymous.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake-status.20e-anonymous.json.snap @@ -37,6 +37,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -74,6 +75,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -108,6 +110,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -142,6 +145,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.01-take-in-band.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.01-take-in-band.json.snap index beb3a4a7a..5bfe65d1a 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.01-take-in-band.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.01-take-in-band.json.snap @@ -101,6 +101,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -135,6 +136,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -169,6 +171,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -203,6 +206,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -237,6 +241,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.02a-take-standalone.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.02a-take-standalone.json.snap index 5854deab4..87fd35d61 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.02a-take-standalone.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.02a-take-standalone.json.snap @@ -99,6 +99,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -133,6 +134,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -167,6 +169,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -201,6 +204,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -235,6 +239,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.02b-take-standalone-repeat.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.02b-take-standalone-repeat.json.snap index 193515ce6..dd84287fe 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.02b-take-standalone-repeat.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.02b-take-standalone-repeat.json.snap @@ -50,6 +50,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -84,6 +85,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -118,6 +120,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -152,6 +155,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -186,6 +190,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.03a-skip-named-slot.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.03a-skip-named-slot.json.snap index 3187012c4..df5287a0f 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.03a-skip-named-slot.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.03a-skip-named-slot.json.snap @@ -96,6 +96,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -130,6 +131,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -164,6 +166,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -198,6 +201,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -232,6 +236,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.03b-skip-slotless.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.03b-skip-slotless.json.snap index 4a8993e7b..121c49ebe 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.03b-skip-slotless.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.03b-skip-slotless.json.snap @@ -105,6 +105,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -139,6 +140,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -173,6 +175,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -207,6 +210,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -241,6 +245,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.03c-delegate-skip-standalone-refused.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.03c-delegate-skip-standalone-refused.json.snap index ed16d5992..2328084f0 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.03c-delegate-skip-standalone-refused.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.03c-delegate-skip-standalone-refused.json.snap @@ -38,6 +38,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -72,6 +73,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -106,6 +108,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -140,6 +143,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -174,6 +178,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.03d-owner-skip-standalone.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.03d-owner-skip-standalone.json.snap index b10338d3a..70490b749 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.03d-owner-skip-standalone.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.03d-owner-skip-standalone.json.snap @@ -96,6 +96,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -130,6 +131,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -164,6 +166,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -198,6 +201,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -232,6 +236,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.04a-pin.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.04a-pin.json.snap index 56d4d628a..d2cc36112 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.04a-pin.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.04a-pin.json.snap @@ -101,6 +101,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -135,6 +136,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -169,6 +171,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -203,6 +206,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -237,6 +241,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.04b-pin-not-a-slot.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.04b-pin-not-a-slot.json.snap index b9c5ed52a..e10c9693d 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.04b-pin-not-a-slot.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.04b-pin-not-a-slot.json.snap @@ -38,6 +38,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -72,6 +73,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -106,6 +108,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -140,6 +143,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -174,6 +178,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.04c-pin-occupied.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.04c-pin-occupied.json.snap index 58bfa457d..32e10bb15 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.04c-pin-occupied.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.04c-pin-occupied.json.snap @@ -38,6 +38,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -72,6 +73,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -106,6 +108,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -140,6 +143,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -174,6 +178,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.05-named-backfill.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.05-named-backfill.json.snap index 00581cc79..0a3817108 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.05-named-backfill.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.05-named-backfill.json.snap @@ -101,6 +101,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -135,6 +136,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -169,6 +171,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -203,6 +206,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -237,6 +241,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.06a-body-key.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.06a-body-key.json.snap index f97aba489..3374e4a7a 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.06a-body-key.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.06a-body-key.json.snap @@ -101,6 +101,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -135,6 +136,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -169,6 +171,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -203,6 +206,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -237,6 +241,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.06b-body-key-replay.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.06b-body-key-replay.json.snap index 3f0b28077..6824257fe 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.06b-body-key-replay.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.06b-body-key-replay.json.snap @@ -55,6 +55,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -89,6 +90,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -123,6 +125,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -157,6 +160,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -191,6 +195,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.07a-header-key.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.07a-header-key.json.snap index 15d1bf5cc..f2645fa53 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.07a-header-key.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.07a-header-key.json.snap @@ -101,6 +101,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -135,6 +136,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -169,6 +171,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -203,6 +206,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -237,6 +241,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.07b-header-key-replay.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.07b-header-key-replay.json.snap index a2bab3d76..897b3b218 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.07b-header-key-replay.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.07b-header-key-replay.json.snap @@ -55,6 +55,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -89,6 +90,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -123,6 +125,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -157,6 +160,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -191,6 +195,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.08-native.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.08-native.json.snap index b60ae002d..decbbe0d3 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.08-native.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.08-native.json.snap @@ -101,6 +101,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -135,6 +136,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -169,6 +171,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -203,6 +206,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -237,6 +241,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.09a-delegate-skip-refused.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.09a-delegate-skip-refused.json.snap index 4943b7232..df4367392 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.09a-delegate-skip-refused.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.09a-delegate-skip-refused.json.snap @@ -38,6 +38,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -72,6 +73,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -106,6 +108,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -140,6 +143,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -174,6 +178,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.09b-owner-skip-flip.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.09b-owner-skip-flip.json.snap index 6794d89eb..0bdb15dc7 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.09b-owner-skip-flip.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.09b-owner-skip-flip.json.snap @@ -96,6 +96,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -130,6 +131,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -164,6 +166,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -198,6 +201,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -232,6 +236,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.10a-writer-take.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.10a-writer-take.json.snap index c4053484a..ca6facc1d 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.10a-writer-take.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.10a-writer-take.json.snap @@ -101,6 +101,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -135,6 +136,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -169,6 +171,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -203,6 +206,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -237,6 +241,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.10b-reader.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.10b-reader.json.snap index ed6df220c..9491d583c 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.10b-reader.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.10b-reader.json.snap @@ -39,6 +39,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -73,6 +74,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -107,6 +109,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -141,6 +144,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -175,6 +179,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.10c-anonymous.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.10c-anonymous.json.snap index 249b68b7d..6087c232b 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.10c-anonymous.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.10c-anonymous.json.snap @@ -37,6 +37,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -71,6 +72,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -105,6 +107,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -139,6 +142,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -173,6 +177,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.11a-site-not-allowed.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.11a-site-not-allowed.json.snap index 717ee34c5..d9b7ac67b 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.11a-site-not-allowed.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.11a-site-not-allowed.json.snap @@ -39,6 +39,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -73,6 +74,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -107,6 +109,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -141,6 +144,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -175,6 +179,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.11b-site-and-dose.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.11b-site-and-dose.json.snap index 6ac1a2a5d..fdc78e6fd 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.11b-site-and-dose.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.11b-site-and-dose.json.snap @@ -99,6 +99,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -133,6 +134,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -167,6 +169,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -201,6 +204,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -235,6 +239,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.12-one-shot.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.12-one-shot.json.snap index 034101fed..2cb5cf28f 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.12-one-shot.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.12-one-shot.json.snap @@ -98,6 +98,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -132,6 +133,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -166,6 +168,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -200,6 +203,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -234,6 +238,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.13-invalid.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.13-invalid.json.snap index aad4622ea..5a1c0e905 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.13-invalid.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.13-invalid.json.snap @@ -57,6 +57,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -91,6 +92,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -125,6 +127,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -159,6 +162,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -193,6 +197,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.14a-not-found.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.14a-not-found.json.snap index 8515c277e..7795a843f 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.14a-not-found.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.14a-not-found.json.snap @@ -34,6 +34,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -68,6 +69,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -102,6 +104,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -136,6 +139,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -170,6 +174,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.14b-record-only.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.14b-record-only.json.snap index 94711ec7a..a561d91dd 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.14b-record-only.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.14b-record-only.json.snap @@ -34,6 +34,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -68,6 +69,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -102,6 +104,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -136,6 +139,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -170,6 +174,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.21-default.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.21-default.json.snap index 7f5fee32b..90f48bc02 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.21-default.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.21-default.json.snap @@ -284,6 +284,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -318,6 +319,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -352,6 +354,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -386,6 +389,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -420,6 +424,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.22-completed-page.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.22-completed-page.json.snap index 15c13c61b..954702e49 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.22-completed-page.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.22-completed-page.json.snap @@ -122,6 +122,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -156,6 +157,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -190,6 +192,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -224,6 +227,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -258,6 +262,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.23a-skipped.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.23a-skipped.json.snap index 75c78f503..c3e129027 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.23a-skipped.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.23a-skipped.json.snap @@ -128,6 +128,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -162,6 +163,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -196,6 +198,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -230,6 +233,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -264,6 +268,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.23b-taken.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.23b-taken.json.snap index ebf41b9e7..a99daab22 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.23b-taken.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.23b-taken.json.snap @@ -200,6 +200,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -234,6 +235,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -268,6 +270,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -302,6 +305,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -336,6 +340,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.24-invalid.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.24-invalid.json.snap index 01250074c..3f38a6124 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.24-invalid.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.24-invalid.json.snap @@ -54,6 +54,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -88,6 +89,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -122,6 +124,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -156,6 +159,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -190,6 +194,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.25a-not-found.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.25a-not-found.json.snap index 8515c277e..7795a843f 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.25a-not-found.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.25a-not-found.json.snap @@ -34,6 +34,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -68,6 +69,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -102,6 +104,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -136,6 +139,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -170,6 +174,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.25b-reader.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.25b-reader.json.snap index 7f5fee32b..90f48bc02 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.25b-reader.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.25b-reader.json.snap @@ -284,6 +284,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -318,6 +319,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -352,6 +354,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -386,6 +389,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -420,6 +424,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medication-intake.25c-anonymous.json.snap b/tests/integration/routes/parity/__snapshots__/medication-intake.25c-anonymous.json.snap index 31c8b1e6c..4940ea7b7 100644 --- a/tests/integration/routes/parity/__snapshots__/medication-intake.25c-anonymous.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medication-intake.25c-anonymous.json.snap @@ -37,6 +37,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -71,6 +72,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -105,6 +107,7 @@ "snoozedUntil": null, "startsOn": "2026-10-15T00:00:00.000Z", "endsOn": "2026-10-15T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -139,6 +142,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -173,6 +177,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medications.01-list.json.snap b/tests/integration/routes/parity/__snapshots__/medications.01-list.json.snap index f9dd28d2e..1511100dd 100644 --- a/tests/integration/routes/parity/__snapshots__/medications.01-list.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medications.01-list.json.snap @@ -16,6 +16,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -73,6 +74,7 @@ "nextDueScheduleId": "", "courseStatus": "CURRENT", "intakeActionable": true, + "canEndCourse": true, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null @@ -112,6 +114,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medications.02a-list-reader.json.snap b/tests/integration/routes/parity/__snapshots__/medications.02a-list-reader.json.snap index 1a1069321..d6fe8ec45 100644 --- a/tests/integration/routes/parity/__snapshots__/medications.02a-list-reader.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medications.02a-list-reader.json.snap @@ -16,6 +16,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -73,6 +74,7 @@ "nextDueScheduleId": "", "courseStatus": "CURRENT", "intakeActionable": true, + "canEndCourse": true, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null @@ -112,6 +114,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medications.02b-list-anonymous.json.snap b/tests/integration/routes/parity/__snapshots__/medications.02b-list-anonymous.json.snap index 45da3b863..6c6e62001 100644 --- a/tests/integration/routes/parity/__snapshots__/medications.02b-list-anonymous.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medications.02b-list-anonymous.json.snap @@ -37,6 +37,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medications.11-plain.json.snap b/tests/integration/routes/parity/__snapshots__/medications.11-plain.json.snap index 42f544ad5..99cf281ca 100644 --- a/tests/integration/routes/parity/__snapshots__/medications.11-plain.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medications.11-plain.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -68,6 +69,7 @@ "nextDueOverdue": false, "courseStatus": "CURRENT", "intakeActionable": true, + "canEndCourse": true, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -106,6 +108,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -140,6 +143,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medications.12-full.json.snap b/tests/integration/routes/parity/__snapshots__/medications.12-full.json.snap index 9a4f14354..296a57fc8 100644 --- a/tests/integration/routes/parity/__snapshots__/medications.12-full.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medications.12-full.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -73,6 +74,7 @@ "id": "", "startsOn": "2026-10-10", "endsOn": "2026-12-31", + "endedAt": null, "status": "CURRENT", "takenDoses": 0, "note": null @@ -86,6 +88,7 @@ "nextDueOverdue": true, "courseStatus": "CURRENT", "intakeActionable": true, + "canEndCourse": true, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -124,6 +127,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -158,6 +162,7 @@ "snoozedUntil": null, "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -195,6 +200,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -293,6 +299,7 @@ "userId": "", "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medications.13a-as-needed.json.snap b/tests/integration/routes/parity/__snapshots__/medications.13a-as-needed.json.snap index f3a3616bd..5289efb77 100644 --- a/tests/integration/routes/parity/__snapshots__/medications.13a-as-needed.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medications.13a-as-needed.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -46,6 +47,7 @@ "nextDueOverdue": false, "courseStatus": "CURRENT", "intakeActionable": true, + "canEndCourse": true, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -84,6 +86,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -118,6 +121,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -152,6 +156,7 @@ "snoozedUntil": null, "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -189,6 +194,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -287,6 +293,7 @@ "userId": "", "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medications.13b-one-shot.json.snap b/tests/integration/routes/parity/__snapshots__/medications.13b-one-shot.json.snap index e90f7436b..626304105 100644 --- a/tests/integration/routes/parity/__snapshots__/medications.13b-one-shot.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medications.13b-one-shot.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -64,6 +65,7 @@ "id": "", "startsOn": "2026-10-20", "endsOn": "2026-10-20", + "endedAt": null, "status": "UPCOMING", "takenDoses": 0, "note": null @@ -77,6 +79,7 @@ "nextDueOverdue": false, "courseStatus": "UPCOMING", "intakeActionable": false, + "canEndCourse": false, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -115,6 +118,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -149,6 +153,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -183,6 +188,7 @@ "snoozedUntil": null, "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -220,6 +226,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -254,6 +261,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -372,6 +380,7 @@ "userId": "", "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -382,6 +391,7 @@ "userId": "", "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medications.13c-prn-and-legacy-days.json.snap b/tests/integration/routes/parity/__snapshots__/medications.13c-prn-and-legacy-days.json.snap index 70bc8174e..63fb80837 100644 --- a/tests/integration/routes/parity/__snapshots__/medications.13c-prn-and-legacy-days.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medications.13c-prn-and-legacy-days.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -111,6 +112,7 @@ "nextDueOverdue": false, "courseStatus": "CURRENT", "intakeActionable": false, + "canEndCourse": true, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -149,6 +151,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -183,6 +186,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -217,6 +221,7 @@ "snoozedUntil": null, "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -254,6 +259,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -288,6 +294,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -322,6 +329,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -500,6 +508,7 @@ "userId": "", "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -510,6 +519,7 @@ "userId": "", "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medications.13d-ended-window.json.snap b/tests/integration/routes/parity/__snapshots__/medications.13d-ended-window.json.snap index 6c2a8d479..7584b78fb 100644 --- a/tests/integration/routes/parity/__snapshots__/medications.13d-ended-window.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medications.13d-ended-window.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": "2026-10-05T00:00:00.000Z", "endsOn": "2026-10-05T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -64,6 +65,7 @@ "id": "", "startsOn": "2026-10-05", "endsOn": "2026-10-05", + "endedAt": null, "status": "ENDED", "takenDoses": 0, "note": null @@ -77,6 +79,7 @@ "nextDueOverdue": false, "courseStatus": "ENDED", "intakeActionable": false, + "canEndCourse": false, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -115,6 +118,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -149,6 +153,7 @@ "snoozedUntil": null, "startsOn": "2026-10-05T00:00:00.000Z", "endsOn": "2026-10-05T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -183,6 +188,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -217,6 +223,7 @@ "snoozedUntil": null, "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -254,6 +261,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -288,6 +296,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -322,6 +331,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -520,6 +530,7 @@ "userId": "", "startsOn": "2026-10-05T00:00:00.000Z", "endsOn": "2026-10-05T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -530,6 +541,7 @@ "userId": "", "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -540,6 +552,7 @@ "userId": "", "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medications.14a-unknown-category.json.snap b/tests/integration/routes/parity/__snapshots__/medications.14a-unknown-category.json.snap index b55686124..da4e4314d 100644 --- a/tests/integration/routes/parity/__snapshots__/medications.14a-unknown-category.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medications.14a-unknown-category.json.snap @@ -34,6 +34,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -68,6 +69,7 @@ "snoozedUntil": null, "startsOn": "2026-10-05T00:00:00.000Z", "endsOn": "2026-10-05T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -102,6 +104,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -136,6 +139,7 @@ "snoozedUntil": null, "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -173,6 +177,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -207,6 +212,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -241,6 +247,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -439,6 +446,7 @@ "userId": "", "startsOn": "2026-10-05T00:00:00.000Z", "endsOn": "2026-10-05T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -449,6 +457,7 @@ "userId": "", "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -459,6 +468,7 @@ "userId": "", "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medications.14b-course-ends-before-start.json.snap b/tests/integration/routes/parity/__snapshots__/medications.14b-course-ends-before-start.json.snap index 5cc3ae9de..ba4dd30c7 100644 --- a/tests/integration/routes/parity/__snapshots__/medications.14b-course-ends-before-start.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medications.14b-course-ends-before-start.json.snap @@ -43,6 +43,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -77,6 +78,7 @@ "snoozedUntil": null, "startsOn": "2026-10-05T00:00:00.000Z", "endsOn": "2026-10-05T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -111,6 +113,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -145,6 +148,7 @@ "snoozedUntil": null, "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -182,6 +186,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -216,6 +221,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -250,6 +256,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -448,6 +455,7 @@ "userId": "", "startsOn": "2026-10-05T00:00:00.000Z", "endsOn": "2026-10-05T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -458,6 +466,7 @@ "userId": "", "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -468,6 +477,7 @@ "userId": "", "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medications.14c-one-shot-two-schedules.json.snap b/tests/integration/routes/parity/__snapshots__/medications.14c-one-shot-two-schedules.json.snap index 688566769..e2885bb55 100644 --- a/tests/integration/routes/parity/__snapshots__/medications.14c-one-shot-two-schedules.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medications.14c-one-shot-two-schedules.json.snap @@ -34,6 +34,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -68,6 +69,7 @@ "snoozedUntil": null, "startsOn": "2026-10-05T00:00:00.000Z", "endsOn": "2026-10-05T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -102,6 +104,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -136,6 +139,7 @@ "snoozedUntil": null, "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -173,6 +177,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -207,6 +212,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -241,6 +247,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -439,6 +446,7 @@ "userId": "", "startsOn": "2026-10-05T00:00:00.000Z", "endsOn": "2026-10-05T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -449,6 +457,7 @@ "userId": "", "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -459,6 +468,7 @@ "userId": "", "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medications.14d-one-shot-recurrence.json.snap b/tests/integration/routes/parity/__snapshots__/medications.14d-one-shot-recurrence.json.snap index 85ecda70f..cc03c6261 100644 --- a/tests/integration/routes/parity/__snapshots__/medications.14d-one-shot-recurrence.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medications.14d-one-shot-recurrence.json.snap @@ -34,6 +34,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -68,6 +69,7 @@ "snoozedUntil": null, "startsOn": "2026-10-05T00:00:00.000Z", "endsOn": "2026-10-05T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -102,6 +104,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -136,6 +139,7 @@ "snoozedUntil": null, "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -173,6 +177,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -207,6 +212,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -241,6 +247,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -439,6 +446,7 @@ "userId": "", "startsOn": "2026-10-05T00:00:00.000Z", "endsOn": "2026-10-05T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -449,6 +457,7 @@ "userId": "", "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -459,6 +468,7 @@ "userId": "", "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medications.14e-unstable-concept-id.json.snap b/tests/integration/routes/parity/__snapshots__/medications.14e-unstable-concept-id.json.snap index a2b535824..6f801961c 100644 --- a/tests/integration/routes/parity/__snapshots__/medications.14e-unstable-concept-id.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medications.14e-unstable-concept-id.json.snap @@ -49,6 +49,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -83,6 +84,7 @@ "snoozedUntil": null, "startsOn": "2026-10-05T00:00:00.000Z", "endsOn": "2026-10-05T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -117,6 +119,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -151,6 +154,7 @@ "snoozedUntil": null, "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -188,6 +192,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -222,6 +227,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -256,6 +262,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -454,6 +461,7 @@ "userId": "", "startsOn": "2026-10-05T00:00:00.000Z", "endsOn": "2026-10-05T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -464,6 +472,7 @@ "userId": "", "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -474,6 +483,7 @@ "userId": "", "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medications.14f-invalid.json.snap b/tests/integration/routes/parity/__snapshots__/medications.14f-invalid.json.snap index c0abd73eb..6f24feb0f 100644 --- a/tests/integration/routes/parity/__snapshots__/medications.14f-invalid.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medications.14f-invalid.json.snap @@ -53,6 +53,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -87,6 +88,7 @@ "snoozedUntil": null, "startsOn": "2026-10-05T00:00:00.000Z", "endsOn": "2026-10-05T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -121,6 +123,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -155,6 +158,7 @@ "snoozedUntil": null, "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -192,6 +196,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -226,6 +231,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -260,6 +266,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -458,6 +465,7 @@ "userId": "", "startsOn": "2026-10-05T00:00:00.000Z", "endsOn": "2026-10-05T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -468,6 +476,7 @@ "userId": "", "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -478,6 +487,7 @@ "userId": "", "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medications.15a-mirror.json.snap b/tests/integration/routes/parity/__snapshots__/medications.15a-mirror.json.snap index 5b84cf296..6619f57b1 100644 --- a/tests/integration/routes/parity/__snapshots__/medications.15a-mirror.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medications.15a-mirror.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -68,6 +69,7 @@ "nextDueOverdue": false, "courseStatus": "CURRENT", "intakeActionable": true, + "canEndCourse": true, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -106,6 +108,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -140,6 +143,7 @@ "snoozedUntil": null, "startsOn": "2026-10-05T00:00:00.000Z", "endsOn": "2026-10-05T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -174,6 +178,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -208,6 +213,7 @@ "snoozedUntil": null, "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -245,6 +251,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -279,6 +286,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -313,6 +321,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -347,6 +356,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -565,6 +575,7 @@ "userId": "", "startsOn": "2026-10-05T00:00:00.000Z", "endsOn": "2026-10-05T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -575,6 +586,7 @@ "userId": "", "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -585,6 +597,7 @@ "userId": "", "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medications.15b-mirror-replay.json.snap b/tests/integration/routes/parity/__snapshots__/medications.15b-mirror-replay.json.snap index ca1c2c536..c811c4cd5 100644 --- a/tests/integration/routes/parity/__snapshots__/medications.15b-mirror-replay.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medications.15b-mirror-replay.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -68,6 +69,7 @@ "nextDueOverdue": false, "courseStatus": "CURRENT", "intakeActionable": true, + "canEndCourse": true, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -108,6 +110,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -142,6 +145,7 @@ "snoozedUntil": null, "startsOn": "2026-10-05T00:00:00.000Z", "endsOn": "2026-10-05T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -176,6 +180,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -210,6 +215,7 @@ "snoozedUntil": null, "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -247,6 +253,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -281,6 +288,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -315,6 +323,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -349,6 +358,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -567,6 +577,7 @@ "userId": "", "startsOn": "2026-10-05T00:00:00.000Z", "endsOn": "2026-10-05T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -577,6 +588,7 @@ "userId": "", "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -587,6 +599,7 @@ "userId": "", "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medications.16-mirror-cap.json.snap b/tests/integration/routes/parity/__snapshots__/medications.16-mirror-cap.json.snap index a7712a941..9f2877c5b 100644 --- a/tests/integration/routes/parity/__snapshots__/medications.16-mirror-cap.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medications.16-mirror-cap.json.snap @@ -38,6 +38,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -72,6 +73,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -106,6 +108,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -140,6 +143,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -174,6 +178,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -208,6 +213,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -242,6 +248,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -276,6 +283,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -310,6 +318,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -344,6 +353,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -378,6 +388,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -412,6 +423,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -446,6 +458,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -480,6 +493,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -514,6 +528,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -548,6 +563,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -582,6 +598,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -616,6 +633,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -650,6 +668,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -684,6 +703,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -718,6 +738,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -752,6 +773,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -786,6 +808,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -820,6 +843,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -854,6 +878,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -888,6 +913,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -922,6 +948,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -956,6 +983,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -990,6 +1018,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -1024,6 +1053,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, diff --git a/tests/integration/routes/parity/__snapshots__/medications.17a-idempotent-first.json.snap b/tests/integration/routes/parity/__snapshots__/medications.17a-idempotent-first.json.snap index 075912d7f..ee499300f 100644 --- a/tests/integration/routes/parity/__snapshots__/medications.17a-idempotent-first.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medications.17a-idempotent-first.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -68,6 +69,7 @@ "nextDueOverdue": false, "courseStatus": "CURRENT", "intakeActionable": true, + "canEndCourse": true, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -106,6 +108,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -140,6 +143,7 @@ "snoozedUntil": null, "startsOn": "2026-10-05T00:00:00.000Z", "endsOn": "2026-10-05T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -174,6 +178,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -208,6 +213,7 @@ "snoozedUntil": null, "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -245,6 +251,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -279,6 +286,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -313,6 +321,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -347,6 +356,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -381,6 +391,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -619,6 +630,7 @@ "userId": "", "startsOn": "2026-10-05T00:00:00.000Z", "endsOn": "2026-10-05T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -629,6 +641,7 @@ "userId": "", "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -639,6 +652,7 @@ "userId": "", "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medications.17b-idempotent-replay.json.snap b/tests/integration/routes/parity/__snapshots__/medications.17b-idempotent-replay.json.snap index b2041d2c4..fa0acd8f8 100644 --- a/tests/integration/routes/parity/__snapshots__/medications.17b-idempotent-replay.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medications.17b-idempotent-replay.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -68,6 +69,7 @@ "nextDueOverdue": false, "courseStatus": "CURRENT", "intakeActionable": true, + "canEndCourse": true, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -107,6 +109,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -141,6 +144,7 @@ "snoozedUntil": null, "startsOn": "2026-10-05T00:00:00.000Z", "endsOn": "2026-10-05T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -175,6 +179,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -209,6 +214,7 @@ "snoozedUntil": null, "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -246,6 +252,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -280,6 +287,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -314,6 +322,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -348,6 +357,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -382,6 +392,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -620,6 +631,7 @@ "userId": "", "startsOn": "2026-10-05T00:00:00.000Z", "endsOn": "2026-10-05T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -630,6 +642,7 @@ "userId": "", "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -640,6 +653,7 @@ "userId": "", "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medications.18a-writer.json.snap b/tests/integration/routes/parity/__snapshots__/medications.18a-writer.json.snap index 524d5101f..55a10a069 100644 --- a/tests/integration/routes/parity/__snapshots__/medications.18a-writer.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medications.18a-writer.json.snap @@ -15,6 +15,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -68,6 +69,7 @@ "nextDueOverdue": false, "courseStatus": "CURRENT", "intakeActionable": true, + "canEndCourse": true, "stockUnitsRemaining": null, "stockDosesRemaining": null, "runwayDays": null, @@ -106,6 +108,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -140,6 +143,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -174,6 +178,7 @@ "snoozedUntil": null, "startsOn": "2026-10-05T00:00:00.000Z", "endsOn": "2026-10-05T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -208,6 +213,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -242,6 +248,7 @@ "snoozedUntil": null, "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -279,6 +286,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -313,6 +321,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -347,6 +356,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -381,6 +391,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -415,6 +426,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -673,6 +685,7 @@ "userId": "", "startsOn": "2026-10-05T00:00:00.000Z", "endsOn": "2026-10-05T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -683,6 +696,7 @@ "userId": "", "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -693,6 +707,7 @@ "userId": "", "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medications.18b-reader.json.snap b/tests/integration/routes/parity/__snapshots__/medications.18b-reader.json.snap index ee5305870..33f0d317f 100644 --- a/tests/integration/routes/parity/__snapshots__/medications.18b-reader.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medications.18b-reader.json.snap @@ -39,6 +39,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -73,6 +74,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -107,6 +109,7 @@ "snoozedUntil": null, "startsOn": "2026-10-05T00:00:00.000Z", "endsOn": "2026-10-05T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -141,6 +144,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -175,6 +179,7 @@ "snoozedUntil": null, "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -212,6 +217,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -246,6 +252,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -280,6 +287,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -314,6 +322,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -348,6 +357,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -606,6 +616,7 @@ "userId": "", "startsOn": "2026-10-05T00:00:00.000Z", "endsOn": "2026-10-05T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -616,6 +627,7 @@ "userId": "", "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -626,6 +638,7 @@ "userId": "", "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" diff --git a/tests/integration/routes/parity/__snapshots__/medications.19-anonymous.json.snap b/tests/integration/routes/parity/__snapshots__/medications.19-anonymous.json.snap index 5a4de87eb..5cfd95cf1 100644 --- a/tests/integration/routes/parity/__snapshots__/medications.19-anonymous.json.snap +++ b/tests/integration/routes/parity/__snapshots__/medications.19-anonymous.json.snap @@ -37,6 +37,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": true, "trackIntake": true, @@ -71,6 +72,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -105,6 +107,7 @@ "snoozedUntil": null, "startsOn": "2026-10-05T00:00:00.000Z", "endsOn": "2026-10-05T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -139,6 +142,7 @@ "snoozedUntil": null, "startsOn": "2026-10-01T00:00:00.000Z", "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -173,6 +177,7 @@ "snoozedUntil": null, "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -210,6 +215,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -244,6 +250,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": false, @@ -278,6 +285,7 @@ "snoozedUntil": null, "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "oneShot": true, "asNeeded": false, "trackIntake": true, @@ -312,6 +320,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -346,6 +355,7 @@ "snoozedUntil": null, "startsOn": null, "endsOn": null, + "endedAt": null, "oneShot": false, "asNeeded": false, "trackIntake": true, @@ -604,6 +614,7 @@ "userId": "", "startsOn": "2026-10-05T00:00:00.000Z", "endsOn": "2026-10-05T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -614,6 +625,7 @@ "userId": "", "startsOn": "2026-10-10T00:00:00.000Z", "endsOn": "2026-12-31T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": "" @@ -624,6 +636,7 @@ "userId": "", "startsOn": "2026-10-20T00:00:00.000Z", "endsOn": "2026-10-20T00:00:00.000Z", + "endedAt": null, "noteEncrypted": null, "createdAt": "", "updatedAt": ""