Problem
No on-chain enforcement prevents a member from holding more simultaneous active bookings than their tier permits. Members can bypass backend limits.
Proposed Solution
Create contracts/cntr/multi_booking.rs implementing pub fn get_booking_limit(tier: &str) -> u32 (Bronze: 2, Silver: 5, Gold: 10, Platinum: u32::MAX) and pub fn can_make_booking(tier: &str, current_active_bookings: u32) -> bool. Unknown tier strings default to Bronze limit. All implementation must live inside contracts/cntr/.
Acceptance Criteria
Problem
No on-chain enforcement prevents a member from holding more simultaneous active bookings than their tier permits. Members can bypass backend limits.
Proposed Solution
Create
contracts/cntr/multi_booking.rsimplementingpub fn get_booking_limit(tier: &str) -> u32(Bronze: 2, Silver: 5, Gold: 10, Platinum:u32::MAX) andpub fn can_make_booking(tier: &str, current_active_bookings: u32) -> bool. Unknown tier strings default to Bronze limit. All implementation must live insidecontracts/cntr/.Acceptance Criteria
contracts/cntr/multi_booking.rscan_make_bookingreturnsfalsewhencurrent_active_bookings >= limitcan_make_bookingreturnstruewhencurrent_active_bookings < limitcargo test