• 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...
Models Loading commit data...
Services Loading commit data...
Views Loading commit data...
Routes.php Loading commit data...
SaConstants.php Loading commit data...
bootstrap.php Loading commit data...