Skip to content

E9-F5: Ticket Transfer (Self-Service)

Epic: E9: Ticket Management & Delivery

Size: M (Medium)

Problem / Outcome

Users with Transfer=YES tickets can reassign without restrictions.

Scope

In-Scope:

  • Reassign ticket to new holder (name, OIB, email)
  • No time restriction for Transfer=YES tickets
  • Blacklist check for new holder
  • Immediate transfer

Out-of-Scope:

  • Transfer=NO tickets (support-only)

Acceptance Criteria

  • AC1: Given Transfer=YES, user sees "Reassign Ticket" button
  • AC2: User enters new holder details, system validates blacklist
  • AC3: Ticket transferred immediately, notifications sent to both parties

Data Model Impact

Ticket table:
- transfer_allowed (BOOLEAN)
- holder_* fields updated on transfer

TransferLog table:
- id (UUID, PK)
- ticket_id (UUID, FK)
- from_holder_name (VARCHAR)
- from_holder_oib (VARCHAR, encrypted)
- to_holder_name (VARCHAR)
- to_holder_oib (VARCHAR, encrypted)
- to_holder_email (VARCHAR)
- transfer_type (ENUM: self_service, support)
- initiated_by (UUID, FK)
- transferred_at (TIMESTAMP)

Permissions/Roles

  • Ticket holder (owner)

How to Verify

npm test -- --grep "self-service transfer"

Expected: Transfer completes, notifications sent.

Dependencies

Implementation Tasks

See E9: Ticket Management Tasks

Doc References


Last Updated: January 2026