In the requirements, guest account can only rent maximum 2 items AT A TIME. So how can we convert AT A TIME into code? When we call the function rent(Item), each transaction is separate.
When VIP has >= 100 reward points -> rent 1 item for free means that all accounts has to pay for their rentals. My question is how would they pay for their rentals?
Only VIP accumulate reward points, so do we need to add another attribute point ? Then how much point each account will receive or be deducted when making rentals?
Rent an item (hence decreasing the number of copies held in stock). It should not be possible to rent an item for which there are no copies held in stock. In this case, the item’s rental status should be ‘not available’ or ‘borrowed’.
Increase the number of copies of an existing item (this is done when new stock arrives).
Return an item (hence increasing the number of copies held in stock).
Although the requirement is "Rental status is either borrowed or available" and we currently use enum for this attribute, I think that we can simply create boolean isAvailable for this. The reason is that item can be both borrowed and available at the same time because we have copies for 1 item.
Promote a customer (from Guest to Regular or from Regular to VIP) (@npat273 and @Railroad-Wrecker
Seach by name / id: searches that match a customer should display the information about that customer including customer name and customer ID, phone, address (@toulletou03 )
The member assigned menu task should also be responsible for other control elements to input relevant info (such as TextField, CheckBox, ComboBox, etc) and something to show that the update is successful.
Below are 2 menus (incomplete) if you need suggestions on what to include in the menu