1. 09 Jul, 2026 2 commits
    • Mahmoud Aglan's avatar
      Fix UserForm to detect existing entities and repair orphan role states · ecf6909c
      Mahmoud Aglan authored
      - Detect on mount if user already has Trainer/Employee/Guardian records
      - Show green notice when record exists, amber warning when role implies
        record but none exists (orphan state)
      - Allow entity creation on save even without role change when entities
        are missing (repair orphaned users from before the redesign)
      - Disable create toggles when record already exists to prevent duplicates
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      ecf6909c
    • Mahmoud Aglan's avatar
      Redesign all entity creation flows into integrated workflows · c000ea07
      Mahmoud Aglan authored
      - CreateTrainerWizard: 9-step flow with activities, user account creation,
        and initial group assignment (was 6 disconnected steps)
      - CreateProgramWizard: 7-step flow with head trainer, schedule template,
        initial group, BasePrice record, facility (was 4 steps, no group/trainer)
      - NewRegistrationWizard: add parent account creation step so guardians
        can log in to the Parent Portal immediately
      - UserForm: role-aware prompts — assigning trainer role creates
        Trainer+Employee records, parent role links Guardian, staff creates Employee
      - EnrollmentForm: 3-panel guided experience with group cards, capacity bars,
        live price preview from PricingService, and schedule conflict detection
      - TrainerCredentialsGenerated event for async email delivery
      
      Closes the "isolated CRUD screens" problem — every entity creation now
      handles the full business workflow in a single transaction.
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      c000ea07
  2. 07 Jul, 2026 3 commits
  3. 06 Jul, 2026 1 commit
  4. 05 Jul, 2026 33 commits
  5. 03 Jul, 2026 1 commit
    • Mahmoud Aglan's avatar
      Add messaging update: 78 notification templates, 14 event listeners, public document links · d3e3030e
      Mahmoud Aglan authored
      - Seed 78 notification templates (26 events × 3 channels: in_app, email, sms) in Arabic
      - Create 14 new listeners for previously unwired events (invoice sent/cancelled, wallet deposit/frozen, cash session closed, enrollment completed, session completed, participant registered/status changed/suspended/frozen, evaluation shared, POS receipt)
      - Wire all listeners in EventServiceProvider
      - Add PublicDocumentController with signed URL routes for invoices, receipts, and POS receipts
      - Add PublicLinkHelper for generating 30-day signed URLs
      - Add 3 standalone RTL Arabic public views (invoice, receipt, pos-receipt)
      - Update existing listeners (SendInvoiceNotification, SendOverdueReminder, SendPaymentConfirmation) to include public_link/receipt_link variables
      - Align all listener variable names with template placeholders
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      d3e3030e