E3-F3: Bulk Seat Operations¶
Epic: E3: Seat Inventory Management
Size: M (Medium)
Problem / Outcome¶
Admin changes status of multiple seats at once.
Scope¶
In-Scope:
- Selection methods: by section, row range, seat range, filter-based
- Bulk status change with optional status filter
- Progress indicator for large operations
Out-of-Scope:
- Scheduling bulk operations
Acceptance Criteria¶
- AC1: Given section selection, when bulk change applied, then all matching seats updated
- AC2: Given filter "Only Available seats", when bulk change to Blocked, then only Available seats affected
- AC3: Given locked seats in selection, then those seats skipped with summary report
Data Model Impact¶
BulkOperation table:
- id (UUID, PK)
- operation_type (ENUM: status_change)
- selection_criteria_json (JSONB)
- target_status (ENUM)
- total_seats (INTEGER)
- processed_seats (INTEGER)
- skipped_seats (INTEGER)
- status (ENUM: pending, processing, completed, failed)
- created_by (UUID, FK)
- created_at (TIMESTAMP)
- completed_at (TIMESTAMP)
Permissions/Roles¶
- Admin (Inventory Manager)
How to Verify¶
npm test -- --grep "bulk seat"
Expected: Bulk selection works, filtered changes apply correctly.
Dependencies¶
Implementation Tasks¶
Doc References¶
Last Updated: January 2026