GRO-1999: UAT seed-test-data job (image 2026.05.31-5390131) crashes with
22P02 'invalid input value for enum pet_size_category: "extra_large"'.
seed.ts petSizeCategoryPool and the drizzle schema both use
'extra_large', but migration 0031_buffer_rules.sql created the enum
with 'xlarge' instead — same migration drift pattern that GRO-1971
fixed for coat_type.
Add migration 0037_add_extra_large_to_pet_size_category.sql that
ALTERs the enum to add the missing 'extra_large' value (idempotent,
auto-commit because Postgres forbids ALTER TYPE ADD VALUE inside a
transaction block). Register idx 37 in the drizzle journal.
Mirror the UAT_PLAYBOOK entry from GRO-1971: TC-API-3.28 verifies the
pet_size_category enum has all 4 values used by seed.ts after the seed
job completes, so future enum drift is caught at the UAT gate.
Refs: GRO-1950 (UAT regression that surfaced this), GRO-1971
(pattern this fix mirrors), GRO-1979 (parallel fix landed on a
different branch via PR #124 — this is the GRO-1983 baseline equivalent).
Co-Authored-By: Paperclip <noreply@paperclip.ing>
GRO-1850: Adds temperament_score, temperament_flags, medical_alerts,
and preferred_cuts to the pets table.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Adds 0033_add_services_default_buffer_minutes.sql with idempotent
ALTER TABLE to ensure services.default_buffer_minutes exists.
Also fixes _journal.json by adding missing 0031_buffer_rules entry (idx 31)
and 0032_staff_read_at entry (idx 32) that were absent from the journal.
Co-Authored-By: Paperclip <noreply@paperclip.ing>