A Hungr account. The same account works in the mobile app and the vendor portal.
Food vendors, with their location, opening hours, images, members and rating.
Menus and the items on them. Several vendors can list the same menu, but only its owner can edit it.
Discounts a vendor offers, and the rules that decide which items they take money off.
Finalised carts. A transaction's ID is what the customer's QR code encodes.
Pricing a cart before it is finalised. Nothing here is stored.
Users' reviews of vendors.
Replies to reviews, from users or from the vendor, at most 2 levels deep.
Image uploads. The client asks for a presigned URL, uploads the file straight to storage, then stores the image URL.
Building blocks shared by every resource: the server-set base fields, pagination, and the error response.