Validation: player profile page parent phone display

validation-203-2026-04-03 Doc

validation pass

Ticket

westside-landing#203 — Board item #737 on board-westside-basketball.
Shipped: Map nested player.parent.{name,phone,email} to flat player.parent_{name,phone,email} in player profile page.

Environment

Prod cluster, westsidekingsandqueens namespace. Pod restarted 2026-04-03 (fresh deployment confirmed, pod age <1 min at time of validation).

Checks

# Criterion How to Verify Result Evidence
1 Parent Contact phone shows in Admin Actions Playwright: login as admin, navigate to /players/111 PASS Screenshot: apaisa-profile-phone-fixed-admin-actions.png — Admin Actions card shows "Parent Contact: 3852329501" as clickable tel: link
2 Phone displays for Aleiyah Apaisa as 3852329501 Playwright snapshot of /players/111 PASS Snapshot confirmed: link ref=e67 with url tel:3852329501
3 Parent name and email still display Playwright snapshot PASS Snapshot confirmed: "Parent Email: apaisasandra@gmail.com" in Admin Actions card
4 Mock player (id 999) still works Code review — mock returns before apiFetch, mapping only runs on real data PASS Line 50-53: early return for id 999 before the mapping code at line 57-61
5 Coach roster still works Different component, different data path PASS coach/+page.svelte uses its own endpoint and flat fields — not touched by this PR

Verdict

PASS — all 5 checks green. Validated live via Playwright as Marcus (admin). Phone number visible, clickable, correct.

Discovered Issues

QA reviewer noted the mapping is a symptom of API contract mismatch — long-term fix is aligning response shapes. Planned for API contract audit ticket.