classDiagram
class User {
<<Abstract>>
-userId
-username
+login()
+logout()
}
class Admin {
+createUser()
}
class Manager {
+addProduct()
+updateStock()
+viewReports()
}
class Cashier {
+createSale()
}
class Product {
-productId
-name
-price
-quantityInStock
+updateStock(int quantity)
}
class Sale {
-saleId
-totalAmount
+calculateTotal()
}
class SaleItem {
-quantity
-priceAtSale
}
class Supplier {
-supplierId
-name
}
User <|-- Admin
User <|-- Manager
User <|-- Cashier
Manager "1" -- "0..*" Product : manages
Manager "1" -- "0..*" Supplier : manages
Cashier "1" -- "1..*" Sale : processes
Sale "1" -- "1..*" SaleItem : contains
Product "1" -- "0..*" SaleItem : is a
Supplier "1" -- "1..*" Product : supplies