OfferCode provides a field for max uses.  However, that field is never honored.

The system should validate that an offer code has not been used more than its max uses.  It seems to make sense to add offerCodeId to OfferAudit.  This way we can specify that a specific code has been used by a customer, within an order, and in the context of a particular offer.