[x] Products
Must have title, description, price, and inventory quantity
Must belong to at least one category
If there is no photo, there must be a placeholder photo used
[x] Users (already predefined in boilermaker)
Users must have a valid email address
Users email must be unique
[x] Orders
Orders must belong to a user OR guest session (authenticated vs unauthenticated)
Orders must contain line items that capture the price, current product ID and quantity
If a user completes an order, that order should keep the price of the item at the time when they checked out even if the price of the product later changes
[x] Reviews
All reviews must belong to a product
All reviews must belong to a user
All reviews must be at least X characters
[x] Carts
Belongs to user
Item => cart association table
Need to define the following models: