[x] Ensure that the number of seats users reserve doesn't exceed max_attendees in the selected event.
[ ] Implement locking to prevent race conditions
[ ] Prevent shrinking of max_attendees below old.max_attendees - available_seats (i.e prevent user from reducing max_attendees below already booked seats, which will mean the event is overbooked)
max_attendees
in the selected event.old.max_attendees - available_seats
(i.e prevent user from reducingmax_attendees
below already booked seats, which will mean the event is overbooked)