Étape 2 : modèle de données complet et migration initiale
- Tables SQLModel : Edition, DayPart, Volunteer, Skill, Position, Shift, Availability, Assignment, Account, MagicLinkToken + tables d'association - Multi-édition (edition_id partout), énumérations en VARCHAR + CHECK, suppressions ON DELETE CASCADE (droit à l'effacement) - Dates/heures naïves en heure locale Europe/Paris (tzdata + TZ conteneur) - Migration Alembic 0001 écrite à la main, vérifiée par `alembic check` (aucun écart avec les modèles) et par un aller-retour downgrade/upgrade - Tests : graphe complet, unicité email par édition, N-N compétences, aller-retour d'énumération, cascade de suppression d'un bénévole Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017uUsRg7XzopkCPWimwg9ZM
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
09d7d70076
commit
cb2e84adf0
@@ -1,6 +1,54 @@
|
||||
"""Tables SQLModel du domaine.
|
||||
"""Tables SQLModel du domaine et énumérations associées.
|
||||
|
||||
Vide à ce stade : le modèle de données est ajouté à l'étape suivante. Ce module
|
||||
est importé par Alembic (`app/migrations/env.py`) et par les tests pour
|
||||
enregistrer les métadonné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,
|
||||
Assignment,
|
||||
Availability,
|
||||
DayPart,
|
||||
Edition,
|
||||
MagicLinkToken,
|
||||
Position,
|
||||
Shift,
|
||||
ShiftRequiredSkill,
|
||||
Skill,
|
||||
Volunteer,
|
||||
VolunteerSkill,
|
||||
)
|
||||
from app.models.enums import (
|
||||
ACTIVE_ASSIGNMENT_STATUSES,
|
||||
AssignmentSource,
|
||||
AssignmentStatus,
|
||||
AvailabilityStatus,
|
||||
PositionCategory,
|
||||
Role,
|
||||
TshirtSize,
|
||||
)
|
||||
|
||||
__all__ = [
|
||||
"ACTIVE_ASSIGNMENT_STATUSES",
|
||||
"Account",
|
||||
"Assignment",
|
||||
"AssignmentSource",
|
||||
"AssignmentStatus",
|
||||
"Availability",
|
||||
"AvailabilityStatus",
|
||||
"DayPart",
|
||||
"Edition",
|
||||
"MagicLinkToken",
|
||||
"Position",
|
||||
"PositionCategory",
|
||||
"Role",
|
||||
"Shift",
|
||||
"ShiftRequiredSkill",
|
||||
"Skill",
|
||||
"TimestampMixin",
|
||||
"TshirtSize",
|
||||
"Volunteer",
|
||||
"VolunteerSkill",
|
||||
"local_now",
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user