Skip to content

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

See E3: Seat Inventory Tasks

Doc References


Last Updated: January 2026