1. 13 May, 2026 4 commits
  2. 12 May, 2026 8 commits
    • Mahmoud Aglan's avatar
      hgdghkd · 91ab2d74
      Mahmoud Aglan authored
      91ab2d74
    • Mahmoud Aglan's avatar
      Fix TypeError: Router passes route params as strings, not int · f458cd55
      Mahmoud Aglan authored
      Cast string params to int at the start of each controller method.
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      f458cd55
    • Mahmoud Aglan's avatar
    • Mahmoud Aglan's avatar
      vhmh · 51a900da
      Mahmoud Aglan authored
      51a900da
    • Mahmoud Aglan's avatar
      fsgdrndfh · 526babd9
      Mahmoud Aglan authored
      526babd9
    • Mahmoud Aglan's avatar
      Fix migration and seed failures: correct column references · af806c60
      Mahmoud Aglan authored
      - Phase_45_004: activity_pricing has no 'fee_type' column, use
        'nonmember_rate_pm' as AFTER target instead
      - Seed Phase_52_001: system_config uses 'group_name' not 'category',
        and 'description_ar' not 'description', and needs 'config_type'
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      af806c60
    • Mahmoud Aglan's avatar
      Pool management complete overhaul: interactive 2D grid, schedules, dashboard · 5c9ce3c8
      Mahmoud Aglan authored
      Grid rewrite:
      - Fully interactive lanes×timeslots grid with click/drag cell selection
      - Click individual cells, drag-select rectangles, row headers (full lane),
        column headers (full time slot)
      - Inline booking panel slides up from bottom when cells are selected —
        no separate page needed, book directly from the grid
      - Recurring schedules shown as purple cells on the grid
      - Real-time refresh every 30s via AJAX
      - Visual pool dimensions display with lane numbers
      
      New: Weekly Schedules (pool_schedules):
      - Create recurring weekly templates (coach, academy, age group, gender, lanes)
      - Effective date range, color-coded, max swimmers per schedule
      - Auto-displayed on the grid for the matching day of week
      - Manage page with create form + list of all schedules with delete
      
      New: Pool Dashboard (/pool/{id}/dashboard):
      - KPI cards: today/week/month bookings, swimmers, revenue, utilization %
      - Heatmap: bookings per hour per day of week (last 30 days) with color intensity
      - Booking type breakdown with progress bars
      - Lane utilization bars (hours used vs available)
      - Peak hours chart with AI recommendations for increasing occupancy
      - Low-utilization detection + suggestions
      
      Updated pool index:
      - Cards with mini pool visual, 3 action buttons (grid, dashboard, schedules)
      - Better visual hierarchy and information density
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      5c9ce3c8
    • Mahmoud Aglan's avatar
      Phase 52: Medical approval workflow, mirror grid, facility dashboard, pricing integration · d11abbce
      Mahmoud Aglan authored
      - Medical records: upload with certificate type (ممارس/أكاديمي/دولي), auto-validity
        calculation, Board of Trustees approval workflow (pending → approved/rejected)
      - New /medical-approvals page for مجلس الأمناء with approve/reject actions
      - Mirror (المراية): interactive grid system for facility scheduling - create grids,
        assign coaches/academies to boxes, manage trainees (max 5 per box)
      - Facility dashboard: per-facility stats with day/week/month/custom date filtering
      - FacilityPricingService: reads club pricing rules from system_config, integrates
        with reservation creation as rate fallback
      - Pricing seed: official 2025 club ruleset for non-educational activities stored
        in system_config (member/non-member rates, entry tickets, general fees)
      - Updated sidebar menu with medical approvals link
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      d11abbce
  3. 11 May, 2026 3 commits
    • Mahmoud Aglan's avatar
      sgjdfh · d0ef9ed6
      Mahmoud Aglan authored
      d0ef9ed6
    • Mahmoud Aglan's avatar
      sdgjdhfk · d01e77d7
      Mahmoud Aglan authored
      d01e77d7
    • Mahmoud Aglan's avatar
      Sports module overhaul: fix bugs, NID parsing, photo upload, cascading forms, auto-codes · 85a4f4fb
      Mahmoud Aglan authored
      - Fix route URL mismatches in player show.php (card/activate, card/suspend, card/revoke, enroll/drop)
      - Fix Sports module permissions (was using temp.view/temp.add, now sports.view/sports.add/sports.convert)
      - Add CSRF middleware to Sports POST route
      - Fix AcademyEnrollment::getForPlayer() to JOIN academy/level names
      - Add NID auto-parsing API and JS to player create/edit (deduces DOB, age, gender, governorate)
      - Replace raw ID inputs in enrollment form with cascading dropdowns (academy→level→schedule)
      - Add profile photo upload to player create/edit/show with live preview
      - Add full player history timeline (enrollments, payments, medical, attendance)
      - Add sport→facility cascade filter to reservation create form
      - Make all code fields optional with auto-generation (Disciplines, Academies, Facilities, Levels)
      - Overhaul Sports create form with discipline dropdown and competitive level select
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      85a4f4fb
  4. 10 May, 2026 5 commits
  5. 05 May, 2026 8 commits
  6. 03 May, 2026 6 commits
  7. 28 Apr, 2026 6 commits