basquetWi + New ticket

New ticket

Sub-ticket of MARS-163 Sweep: uuid-format guard on all [id] resource routes (comisiones/docentes/alumnos/periodos/solicitudes/soporte/usuarios) — a non-uuid id casts into a uuid-typed query → 'invalid input syntax for type uuid' → unhandled 500 before missing/deleted handling runs (same latent defect found+fixed on practicas via MARS-155). Mirror the practicas data-layer guard (return null on non-uuid → existing friendly not-available path) or a shared isUuid() helper across all resource routes. Reversible per-route guard. · mars