# Column Mismatch Fix Plan — COMPLETED

Audited: 2026-07-01
Executed: 2026-07-01
Commit: 0cc5b98
Source of truth: Live PostgreSQL DB at 18.192.166.221 (elcaptainsportsonly)

---

## ALL ITEMS RESOLVED

| # | Issue | Status |
|---|-------|--------|
| C1 | GlobalSearch.php — non-existent branch_id, invoice_number, participant relationship | FIXED |
| C2 | RevenueWidget.php — payment_method → method | FIXED |
| C3 | FinancialReport.php — line_total, balance_due, payment_method | FIXED |
| C4 | PaymentPlanCreate.php — 8 wrong columns in mass assignment + queries | FIXED |
| H1 | invoice_number → number (8 locations) | FIXED |
| H2 | balance_due → due_amount (6 locations) | FIXED |
| H3 | full_name_ar → full_name (7 locations) | FIXED |
| H4 | payment_method → method in print view | FIXED |
| H5 | subtotal → subtotal_amount | FIXED |
| H6 | description → notes | FIXED |
| H7 | line_total → total_amount | FIXED |
| H8 | reports-page payment_method key → method | FIXED |
| H9 | receipt_number → reference | FIXED |
| M1 | Dashboard format() on string time | FIXED |
| M2 | Participant card person fields via relationship | FIXED |
| L1 | Dashboard participant → contact_name | FIXED |
| L2 | createdBy → creator | FIXED |
| MIG1 | cash_session_id added to payments (migration + live DB) | FIXED |
| MOD1 | float → decimal:2 casts | FIXED |
| MOD2 | Payment::cashSession() now valid (column exists) | FIXED |
| DOC1 | Enum registry updated to match DB | FIXED |

---

## REMAINING TECH DEBT (non-breaking, future consideration)

### NAM1. `training_groups.program_id` should be `training_program_id`

Per project rules in `01-migration-first.md`. Would require:
- Migration to rename column
- Update TrainingGroup model fillable + relationship
- Update all queries/views referencing `program_id`

**Status:** Deferred. The inconsistency works; fixing mid-development risks introducing bugs.
