• Mahmoud Aglan's avatar
    fix(sports-activity): resolve broken queries, fee/threshold drift, and billing gaps · e139a8a2
    Mahmoud Aglan authored
    - ActivitySubscriptions: fix generate/calculateRate querying nonexistent
      `enrollments` table; use `academy_enrollments` with correct columns
    - SportsDashboard: fix queries against nonexistent `disciplines` table;
      use `sport_disciplines`
    - Sports: unify conversion-fee percentage to a single source
      (MembershipRulesService::getAthleticMemberConversionRules), preventing
      the eligibility preview from drifting from what's actually charged
    - SportsActivity: align absence-threshold fallback defaults between
      AttendanceRuleService and TrainingAttendanceService via a shared constant
    - SportsActivity: auto-bill first month on Registration Wizard completion,
      matching the direct-enrollment path so wizard-registered players aren't
      left uncharged until the monthly batch runs
    - ActivitySubscriptions: guard paySubscription() to only transition
      pending/overdue -> paid, making it idempotent against the (currently
      unreachable) payment.completed listener path
    - ActivitySubscriptions: dispatch academy.enrollment_created from the
      enroll wizard so PlayerAffairs' auto-billing listener actually fires
    
    Also adds/updates Architecture Maps for Sports, SportsActivity,
    SportsDashboard, ActivitySubscriptions and the cross-module Dependency
    Graph, per this repo's mandatory architecture-map workflow.
    Co-Authored-By: 's avatarClaude Opus 5 <noreply@anthropic.com>
    Co-Authored-By: 's avatarClaude Sonnet 5 <noreply@anthropic.com>
    e139a8a2
Name
Last commit
Last update
..
Controllers Loading commit data...
Services Loading commit data...
Views Loading commit data...
Routes.php Loading commit data...
bootstrap.php Loading commit data...