Add jersey order card to player profile page #197
Labels
No labels
domain:backend
domain:devops
domain:frontend
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ldraney/westside-app#197
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Type
Feature
Lineage
Child of
forgejo_admin/westside-landing#196(spike: player self-service jersey ordering).Depends on: backend dual-auth + player_id param tickets (basketball-api).
Story: WS-S18
Repo
forgejo_admin/westside-landingUser Story
As a logged-in parent viewing my player's profile
I want to see a jersey ordering card with current status or an order button
So that I can order a jersey directly from my player's profile
Context
The player profile page (
players/[id]/+page.svelte) has cards for contract, player info, team/coach, payment, and stats — but no jersey section. Jersey ordering is only accessible via the email token link (/jersey?token=...).The backend
PlayerProfileResponseinplayers.pydoes not currently include jersey fields (jersey_option,jersey_order_status,jersey_size,jersey_number), even though they exist on the Player model. The frontend needs these fields to render jersey status.File Targets
Files the agent should modify or create:
src/routes/(app)/players/[id]/+page.svelte— add jersey card section between team/coach card (line ~495) and payment card (line ~498); show status if ordered, "Order Jersey" CTA if notPlayerProfileResponseinbasketball-api/src/basketball_api/routes/players.pyneeds jersey fields added (this may be a separate micro-ticket or done inline)Files the agent should NOT touch:
src/routes/(app)/jersey/+page.svelte— separate ticket handles session auth theresrc/routes/(app)/checkout/+page.svelte— separate ticketAcceptance Criteria
jersey_order_status === 'none', then I see an "Order Jersey" button/jersey?player_id={player.id}jersey_order_status === 'paid', then I see the jersey option, size, and number displayedTest Expectations
npm run build(SvelteKit build check)Constraints
.info-cardpattern used by other cards on the page)isOwnerorisAdmin(same permission model as payment card)PlayerProfileResponsefirstChecklist
Related
westside-basketball— project this affectsforgejo_admin/westside-landing#196— parent spike issue