1. 09 Jul, 2026 1 commit
    • 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 2 commits
    • 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
    • Mahmoud Aglan's avatar
      Fix dashboard security: redirect roles + hide financial data · e11ab21d
      Mahmoud Aglan authored
      - Trainers/head trainers redirect to /trainer dashboard on login
      - Receptionists redirect to /receptionist dashboard
      - Guardians (parents) redirect to /guardian dashboard
      - Financial data (revenue, invoices, payments) only queried if user
        has 'invoices.list' permission — returns null/empty otherwise
      - Blade sections wrapped in @can('invoices.list') so even direct
        URL access shows no sensitive financial info to unauthorized roles
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      e11ab21d