• Mahmoud Aglan's avatar
    feat(participants): record shirt name, school and previous clubs · 25e2be96
    Mahmoud Aglan authored
    Three things a football academy keeps about a player that had nowhere to live,
    found while mapping a 495-row roster exported from a club's previous system.
    
    jersey_name is not the player's name. "Mohamed Sherif Mikkawi" wears "Mikkawi",
    and across 495 players not one shirt name equalled the full name — so it cannot
    be derived and has to be stored. product_customizations can already ask for it
    at the till, but that answer belongs to one sale and freezes onto that invoice;
    the club still needs to know what this player's shirt says, before and after any
    particular kit is bought.
    
    school_name is asked at registration everywhere and is what an academy plans
    term times and school fixtures around.
    
    previous_clubs is free text on purpose. A transfer history is a sentence —
    "Wadi Degla then Zed" — not a foreign key, and a clubs table would force the
    desk to resolve every spelling before it could record anything at all. The same
    roster spells one club four ways.
    
    Full slice: migration, model, service, form, show view. All three nullable and
    additive, each guarded by hasColumn, so the migration is safe against every
    populated tenant and nothing reads them until something writes them.
    Co-Authored-By: 's avatarClaude Opus 5 (1M context) <noreply@anthropic.com>
    25e2be96
Participant.php 6.24 KB