Classes:

UI
- store: Store
+ addOfferViews(HTMLElement, Product[])
+ addProductViews(HTMLElement, Product[])
+ getters
+ setters
Store
- catalog: Catalog
- user: User
+ addProducts()
+ catalog(): Product[]
+ getters
+ setters
Catalog
- productList: Product[]
+ addProduct(Product)
+ getters
+ setters
Product
- id: Number
- title: String
- description: String
- img: String
- quantity: Number
+ decreaseQuantity(Number)
+ increaseQuantity(Number)
+ applyDiscount(Offer)
+ getters
+ setters
User
- userId: Number
- username: String
- password: String
- email: String
+ getters
+ setters
Offer
- discount: Number
- initialDate: Date
- finishDate: Date
+ getters
+ setters
Cart
- items: CartItem[]
+ getters
+ setters
CartItem
- item: Item
- quantity: Number
+ getters
+ setters
Sale
- cart: Cart
- payment: Payment
- date: Date
- state: String
+ getters
+ setters
Payment
- id: Number
+ getters
+ setters