Validate event search parameters in FastAPI query models

Merged
FR
17h ago
+59-96

Event listing and statistics routes now validate search parameters through FastAPI query models. Pydantic parses the JSON-encoded filter, enforces the existing three-character minimum for search text, and checks that search text is accompanied by an organization ID.

OpenAPI now declares the search minimum length. The frozen 2026-04 and 2026-10 fixtures include the constraint, and the internal TypeScript client was regenerated.

Closes PLR-428.

Focused query validation checks and both frozen OpenAPI comparisons passed. The event integration tests stopped at fixture setup because the sandbox blocked access to local MinIO.