Nouvelle entité `Artist` (nom + jour de passage), CRUD
`/editions/{id}/artists` (lecture ouverte à tout compte de l'édition,
écriture COORDINATION), unicité (édition, nom, date).
La fiche bénévole porte deux listes de vœux, sur le modèle de
`skill_codes` (None = inchangé, [] = vider) :
- `artist_ids` : artistes que le bénévole veut voir (`volunteer_artist`) ;
- `wished_position_ids` : postes qu'il voudrait tenir
(`volunteer_position_wish`), distinct de l'affectation.
Un id étranger à l'édition renvoie 422 (`artist.unknown` /
`position.unknown`). Suppression d'un artiste : cascade sur les vœux.
Migration 0006. Jeu de démonstration et frontend inchangés (le front
suivra).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017uUsRg7XzopkCPWimwg9ZM
55 lines
1.0 KiB
Python
55 lines
1.0 KiB
Python
"""Tables SQLModel du domaine et énumérations associées.
|
|
|
|
Importé par Alembic (`app/migrations/env.py`) et par les tests pour enregistrer
|
|
les métadonnées sur `SQLModel.metadata`.
|
|
"""
|
|
|
|
from app.models.base import TimestampMixin, local_now
|
|
from app.models.domain import (
|
|
Account,
|
|
Artist,
|
|
Assignment,
|
|
Availability,
|
|
DayPart,
|
|
Edition,
|
|
MagicLinkToken,
|
|
Position,
|
|
Shift,
|
|
ShiftRequiredSkill,
|
|
Skill,
|
|
Volunteer,
|
|
VolunteerArtist,
|
|
VolunteerPositionWish,
|
|
VolunteerSkill,
|
|
)
|
|
from app.models.enums import (
|
|
AssignmentSource,
|
|
AvailabilityStatus,
|
|
PositionCategory,
|
|
Role,
|
|
)
|
|
|
|
__all__ = [
|
|
"Account",
|
|
"Artist",
|
|
"Assignment",
|
|
"AssignmentSource",
|
|
"Availability",
|
|
"AvailabilityStatus",
|
|
"DayPart",
|
|
"Edition",
|
|
"MagicLinkToken",
|
|
"Position",
|
|
"PositionCategory",
|
|
"Role",
|
|
"Shift",
|
|
"ShiftRequiredSkill",
|
|
"Skill",
|
|
"TimestampMixin",
|
|
"Volunteer",
|
|
"VolunteerArtist",
|
|
"VolunteerPositionWish",
|
|
"VolunteerSkill",
|
|
"local_now",
|
|
]
|