Codecademy Python3 Project: Basta Fazoolin’ (my code)

class Menu:
  def __init__(self, name, items, start_time, end_time):
    self.name = name
    self.items = items
    self.start_time = start_time
    self.end_time = end_time

  def __str__(self):
    return "{} menu is available from {} to {}.".format(self.name, self.start_time, self.end_time)

  def calculate_bill(self, purchased_items):
    self.purchased_items = purchased_items

    total_bill = 0

    for item in self.purchased_items:
      total_bill += self.items.get(item, 0)
    return total_bill



brunch_items = {
  'pancakes': 7.50, 'waffles': 9.00, 'burger': 11.00, 'home fries': 4.50, 'coffee': 1.50, 'espresso': 3.00, 'tea': 1.00, 'mimosa': 10.50, 'orange juice': 3.50
}

early_bird_items = {
  'salumeria plate': 8.00, 'salad and breadsticks (serves 2, no refills)': 14.00, 'pizza with quattro formaggi': 9.00, 'duck ragu': 17.50, 'mushroom ravioli (vegan)': 13.50, 'coffee': 1.50, 'espresso': 3.00,
}

dinner_items = {
  'crostini with eggplant caponata': 13.00, 'caesar salad': 16.00, 'pizza with quattro formaggi': 11.00, 'duck ragu': 19.50, 'mushroom ravioli (vegan)': 13.50, 'coffee': 2.00, 'espresso': 3.00,
}

kids_items = {
  'chicken nuggets': 6.50, 'fusilli with wild mushrooms': 12.00, 'apple juice': 3.00
}

brunch = Menu("brunch", brunch_items, 1100, 1600)

early_bird = Menu("early bird", early_bird_items, 1500, 1800)

dinner = Menu("dinner", dinner_items, 1700, 2300)

kids = Menu("kids", kids_items, 1100, 2100)

#print(brunch)

brunch_bill = brunch.calculate_bill(["pancakes", "home fries", "coffee"])

#print(brunch_bill)

early_bird_bill = early_bird.calculate_bill(["salumeria plate", "mushroom ravioli (vegan)"])

#print(early_bird_bill)

all_menus = [brunch, early_bird, dinner, kids]




class Franchise:
  def __init__(self, address, menus):
    self.address = address
    self.menus = menus
  
  def __str__(self):
    return "{}".format(self.address)

  def available_menus(self, time):
    for menu in self.menus:
      if time >= menu.start_time and time < menu.end_time:
        print(menu, end = "\n\n")
    return ""



flagship_store = Franchise("1232 West End Road", all_menus)

new_installment = Franchise("12 East Mulberry Street", all_menus)

#print(flagship_store)
#print(new_installment)
#print(flagship_store.available_menus(1200))
print(flagship_store.available_menus(1700))



class Business:
  def __init__(self, name, franchises):
    self.name = name
    self.franchises = franchises

first_business = Business("Basta Fazoolin' with my Heart", [flagship_store, new_installment])



arepas_items = {
  'arepa pabellon': 7.00, 'pernil arepa': 8.50, 'guayanes arepa': 8.00, 'jamon arepa': 7.50
}

arepas_menu = Menu("arepas", arepas_items, 1000, 2000)

arepas_place = Franchise("189 Fitzgerald Avenue", arepas_menu)

new_business = Business("Take a' Arepa", [arepas_place])