1. 30 Jun, 2026 4 commits
    • Mahmoud Aglan's avatar
      Add visual Space Assignment system for groups to facility segments · 40d21535
      Mahmoud Aglan authored
      Features:
      - SpaceLayoutManager: full CRUD for facility layouts (grid/lanes/zones/custom)
        with visual segment preview and toggle availability
      - SpaceAssignmentWizard: 5-step wizard for assigning groups to facility segments
        Step 1: Search and select training group
        Step 2: Choose which schedule slot to assign
        Step 3: Pick the facility (if not already linked)
        Step 4: Visual grid/lane/zone selector with real-time collision detection
        Step 5: Success confirmation
      - Visual grid renders as clickable cells showing available/selected/occupied/disabled states
      - Real-time collision checking against existing confirmed reservations
      - Saves space_reservation_template on TrainingSchedule for auto-reservation on session creation
      - Fix: ReservationService.autoReserveForSession() now uses correct field names
        (space_reservation_template instead of segments, segment_ids instead of segments key)
      - Added "التخطيط" action link in facility list table
      - Added "تعيين المساحات" to sidebar navigation
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      40d21535
    • Mahmoud Aglan's avatar
      Add full branding settings system with live color theming · 4c209476
      Mahmoud Aglan authored
      - BrandingSettings Livewire component with file uploads (logo, dark logo,
        favicon, signature, login background, invoice header)
      - Color picker for primary/secondary/accent/sidebar/status colors with
        live preview panel and preset palettes
      - Typography settings (Arabic/English font, base font size)
      - Invoice/receipt footer text and terms & conditions
      - Display toggles (logo in sidebar, logo in invoice, signature, compact mode)
      - CSS variables injected into app layout that drive sidebar, buttons, etc.
      - Sidebar now uses --brand-sidebar-bg/text/active variables
      - Logo displays in sidebar when uploaded
      - SystemSettingsSeeder populates all 6 groups with 50+ settings
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      4c209476
    • Mahmoud Aglan's avatar
      Fix PermissionSeeder: use correct column names (name not slug, permission_role... · 5fcdb075
      Mahmoud Aglan authored
      Fix PermissionSeeder: use correct column names (name not slug, permission_role not role_permissions)
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      5fcdb075
    • Mahmoud Aglan's avatar
      Fix system coherence: RTL layout, DB column mismatches, permissions, global error handler · 4de529eb
      Mahmoud Aglan authored
      - Fix sidebar positioning (end-0 → start-0) so it appears on the RIGHT in RTL
      - Fix main content margin (me-64 → ms-64) to offset sidebar correctly
      - Fix TrainingProgram queries using non-existent is_active column → status
      - Fix User queries using is_active → status
      - Fix invoice type 'invoice' → 'standard' to match CHECK constraint
      - Fix CollectPaymentWizard using balance_due → due_amount + billable morphs
      - Fix notification template Blade parse error (unclosed parenthesis)
      - Align 10+ sidebar permission checks with actual route middleware permissions
      - Add missing permissions to seeder (pos.sell, inventory.list, reports.view, etc.)
      - Add comprehensive global error handler with full stack trace, SQL log, request data
      - Add Arabic error pages (500, 403, 404) with detailed debugging info
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      4de529eb
  2. 29 Jun, 2026 13 commits