c26b40e2996d9c25ac9aea55eefb867828689032
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>
GroomBook API
GroomBook API service — extracted from the groombook/app monorepo.
Overview
This repository contains the GroomBook API service, including:
- REST API endpoints
- Database schema and migrations (via Drizzle ORM)
- Authentication (via Better Auth)
- Background job handlers
Structure
src/ # API service source
packages/db/ # Database schema, migrations, and utilities
packages/types/ # Shared TypeScript types
Setup
pnpm install
cp .env.example .env # Fill in required environment variables
pnpm --filter @groombook/api dev
Docker
docker build -t ghcr.io/groombook/api:latest .
docker run -p 3000:3000 ghcr.io/groombook/api:latest
License
AGPL-3.0-only
Description
Languages
TypeScript
99.3%
JavaScript
0.4%
Dockerfile
0.2%