Verified BursaPay workflow: Explains the temporary locking behavior used to prevent conflicting seat selections.
1. Overview & Purpose
Seat.is_locked returns true for sold seats and for temporary locks that are less than five minutes old.
2. Requirements & Setup
A seat can also be locked by a purchasing session identifier to associate the temporary hold with the current transaction.
3. Step-by-Step Workflow
- Select an available seat.
- The seat may receive a locked_at timestamp and session identifier.
- Complete the purchase before the temporary lock expires.
- If the lock expires without sale, recheck availability before selecting again.
4. Rules & Troubleshooting
A lock is temporary and does not equal a completed purchase. Sold status is the durable availability state.
5. Verification & Next Steps
When troubleshooting availability, check both is_sold and locked_at.