Bookings are a coordination problem
Start with the resource model
Availability and conflict detection
- Buffer time: Many bookings need gap periods between them (cleaning, setup, travel)
- Partial availability: Resources available only on certain days, hours, or seasons
- Hold states: Reservations in progress that have not completed payment yet
- Cancellation and rebooking: Making a slot available again cleanly without creating orphan records
Payment and booking states
The admin layer
- A calendar view that shows all bookings at a glance
- The ability to manually create, edit, or override bookings
- Reporting on utilisation, revenue, and cancellation rates
- Notification logs so staff know what has been sent
Notifications and communication
- What events trigger notifications? (booking created, reminder, cancellation)
- Who receives them? (customer, staff, third parties)
- What channel? (email, SMS, LINE — relevant for Thailand)
- What happens if delivery fails?
