@startuml ERD-HV-LoFi 

skin rose
skinparam Style StrictUML
skinparam LineType ortho
skinparam monochrome true

class Customer {
    * customerID: Integer <<PK>>
--
    * familyName: String 
    * givenName: String
    * email: String 
    * birthDate: Date 
    * phoneNumber: Integer 
    * country : String 
      favouriteStyle : String 
      favouriteGenre : String 
      DOB : Date 
  
}

class Sale{
    * saleID : Integer <<PK>>
    --
    * date  : Date 
    * buyerID   : Integer <<FK>>
    * purchaseTotal  : Double
}

class SaleDetails{
    * saleID : Integer <<FK>>
    * productID : Integer <<FK>>
    --
    * productPrice : Integer
    * quantity : Integer
    * giftWrapped : Boolean
}



class Album {
    * albumName : String <<PK>>
   * albumID : String <<FK>>
--
    * productType : String <<FK>>
    * producerID : Integer <<FK>>
    * genre : String 
    * artist : String 
    * year : Integer 
    * era : String 

}

class Product{
    * productID : Integer <<PK>>
--
    * productType: String <<FK>>
    * productName : String 
    * productPrice : Double 
    * year : Integer 
    * productQuantity : Integer 
    * productDescription : String 
    * unitsInStock : Integer
}



class Producer_Album {
    * producerID: Integer <<FK>>
    * albumID: String <<FK>>
    --
    * tracksProduced : String
    * albumName : String 
    
}

class Producer{
    * producerID : Integer <<PK>>
--
    * producerName : String
    * producerWebsite : String
}
class Cart {
    * cart_ID : long <<Generated>>
--
    * customerID : Integer <<FK>>
}

class Cart_Item {
    * cartID : long <<Generated>>
    * productID : Integer <<FK>>
--
    * Quantity : Integer
}


SaleDetails }o..|| Product 
SaleDetails }|..|| Sale 
Customer ||..o{ Sale  
Product ||..|{ Album : is of type
left to right direction 
Producer_Album }|..|| Album  
Producer_Album }|..|| Producer  

top to bottom direction
Customer ||-|| Cart
Cart ||-o{ Cart_Item
Cart_Item |o-|| Product







@enduml 
