Skip to content

E7-F7: Quota Cancellation

Epic: E7: Quota Management

Size: S (Small)

Problem / Outcome

Admin cancels quota with options for what to cancel.

Scope

In-Scope:

  • Cancel All Unused: ALLOCATED + RESERVED tickets
  • Cancel Unfulfilled Only: ALLOCATED only, preserves RESERVED
  • Seat return to inventory
  • Notification to quota holder

Out-of-Scope:

  • Refund of paid tickets (handled by refund flow)

Acceptance Criteria

  • AC1: "Cancel All Unused" cancels both ALLOCATED and RESERVED tickets
  • AC2: "Cancel Unfulfilled Only" cancels only ALLOCATED, preserves RESERVED
  • AC3: Cancelled seats return to inventory, recipients notified

Data Model Impact

Quota table:
- status = CANCELLED
- cancelled_at (TIMESTAMP)
- cancelled_by (UUID, FK)
- cancellation_type (ENUM: all_unused, unfulfilled_only)

QuotaSeat table:
- status = CANCELLED (for affected seats)

Seat table:
- status = AVAILABLE (returned to inventory)

Permissions/Roles

  • Admin (Quota Manager)

How to Verify

npm test -- --grep "quota cancellation"

Expected: Correct tickets cancelled based on option.

Dependencies

Implementation Tasks

See E7: Quota Management Tasks

Doc References


Last Updated: January 2026