- Station.code: usa UniqueConstraint("code", name="uq_stations_code")
esplicito in __table_args__ invece di unique=True sulla colonna,
per allineamento con la migration 002 ed evitare drift Alembic.
- Aggiunge test test_duplicate_assignment_is_rejected per coprire
il vincolo uq_station_recipe (regola business centrale del modello).
- Sposta import IntegrityError a module-level per consistenza.
Feedback da code-reviewer su Task 2.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
TDD: test written first, confirmed failing with ModuleNotFoundError,
then model implemented; all 3 new tests pass. conftest updated to
import new models so Base.metadata.create_all picks up the tables.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>