Skip to content

E3: Seat Inventory Management - Tasks

Epic: E3: Seat Inventory Management

Task Legend

Symbol Status
⬜ Not started
🟡 In progress
✅ Complete
❌ Blocked

E3-F1: Seat Status Model

Feature: E3-F1: Seat Status Model

Status Task Verification
⬜ Define SeatStatus enum (Available, Sold, Reserved, Technical, Official, Blocked, Maintenance, Quarantined, Allocated, Inactive) Enum created
⬜ Define color codes for each status Config/constants file updated
⬜ Define valid status transitions matrix Transition rules documented and coded
⬜ Add audit fields to Seat model (last_modified_by, last_modified_at) Migration run

E3-F2: Individual Seat Status Change

Feature: E3-F2: Individual Seat Status Change

Status Task Verification
⬜ Implement PUT /admin/seats/{id}/status endpoint Updates seat status
⬜ Validate status transition against allowed transitions Invalid transition returns 400
⬜ Require reason parameter for status change Missing reason returns 400
⬜ Log change to SeatAudit table Audit record created
⬜ Warn if seat is locked (in cart) Response includes warning

E3-F3: Bulk Seat Operations

Feature: E3-F3: Bulk Seat Operations

Status Task Verification
⬜ Implement POST /admin/seats/bulk-status endpoint Accepts seat IDs array
⬜ Add selection by section parameter Selects all seats in section
⬜ Add selection by row range (section + from_row + to_row) Selects correct rows
⬜ Add optional status filter (only change seats with specific current status) Filter applied
⬜ Process in batches with progress tracking Progress updates available
⬜ Skip locked seats and report in response Skipped seats listed

E3-F4: Seat Search & Lookup

Feature: E3-F4: Seat Search & Lookup

Status Task Verification
⬜ Implement GET /admin/seats/search?seat_number=X endpoint Returns seat details
⬜ Implement GET /admin/seats/search?quota_id=X endpoint Returns all seats in quota
⬜ Implement GET /admin/seats/search?email=X endpoint Returns tickets for email
⬜ Implement advanced search with multiple filters (match, status, section, date range) Filters combine correctly
⬜ Add pagination to search results Page/limit params work

E3-F5: Stadium Visualization

Feature: E3-F5: Stadium Visualization

Admin Visualization (Inventory Monitoring)

Status Task Verification
⬜ Create Konva.js canvas component for seat map rendering Canvas renders seat grid
⬜ Load seat map JSON and render seats with correct positions Seats match JSON layout
⬜ Color-code seats by status (10 status colors) Colors match legend
⬜ Implement zoom controls (mouse wheel, buttons) Zoom in/out works
⬜ Implement pan controls (drag, keyboard) Can navigate large maps
⬜ Add status legend component All 10 statuses shown
⬜ Implement sector-level view with aggregated status colors Sectors colored by dominant status
⬜ Implement click on sector to show seat grid Seat grid loads
⬜ Implement click on seat to show detail modal Modal shows seat info
⬜ Show ticket holder info in modal (if sold) Holder name visible
⬜ Add "Change Status" action in modal Status change works

Status Color Reference

Status Color Hex
Available Green #22C55E
Sold Blue #3B82F6
Reserved Yellow #EAB308
Technical Purple #A855F7
Official Orange #F97316
Blocked Red #EF4444
Maintenance Gray #6B7280
Quarantined Brown #92400E
Allocated Teal #14B8A6
Inactive Black #1F2937

E3-F6: Sector-to-Sector Transfer

Feature: E3-F6: Sector-to-Sector Transfer

Status Task Verification
⬜ Implement POST /admin/tickets/sector-transfer endpoint Accepts source seats and destination sector
⬜ Assign new seats in destination using snake algorithm Adjacent seats assigned
⬜ Update ticket seat_id to new seats Tickets point to new seats
⬜ Mark original seats as Blocked Original seats status changed
⬜ Send notification to affected ticket holders Email/push sent
⬜ Make transfer atomic (all or nothing) Partial failure rolls back

Last Updated: February 2026