From bb5e38d413ab4308646539bba65c3a899a5e5381 Mon Sep 17 00:00:00 2001 From: Serhiy Date: Mon, 14 Oct 2024 18:12:07 +0300 Subject: [PATCH 1/2] Solution --- app/cinema/__init__.py | 0 app/cinema/bar.py | 8 ++++++++ app/cinema/hall.py | 17 +++++++++++++++++ app/main.py | 35 +++++++++++++++++++++++++++++++---- app/people/__init__.py | 0 app/people/cinema_staff.py | 7 +++++++ app/people/customer.py | 8 ++++++++ 7 files changed, 71 insertions(+), 4 deletions(-) create mode 100644 app/cinema/__init__.py create mode 100644 app/cinema/bar.py create mode 100644 app/cinema/hall.py create mode 100644 app/people/__init__.py create mode 100644 app/people/cinema_staff.py create mode 100644 app/people/customer.py diff --git a/app/cinema/__init__.py b/app/cinema/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/app/cinema/bar.py b/app/cinema/bar.py new file mode 100644 index 000000000..23b0421bb --- /dev/null +++ b/app/cinema/bar.py @@ -0,0 +1,8 @@ +from app.people.customer import Customer + + +class CinemaBar: + + @staticmethod + def sell_product(product: str, customer: Customer) -> None: + print(f"Cinema bar sold {product} to {customer.name}.") diff --git a/app/cinema/hall.py b/app/cinema/hall.py new file mode 100644 index 000000000..2396fec05 --- /dev/null +++ b/app/cinema/hall.py @@ -0,0 +1,17 @@ +from app.people.cinema_staff import Cleaner +from app.people.customer import Customer + + +class CinemaHall: + + def __init__(self, number: int) -> None: + self.number = number + + def movie_session(self, movie_name: str, customers: list[Customer], + cleaning_staff: Cleaner) -> None: + + print(f'"{movie_name}" started in hall number {self.number}.') + for customer in customers: + customer.watch_movie(movie_name) + print(f'"{movie_name}" ended.') + cleaning_staff.clean_hall(self.number) diff --git a/app/main.py b/app/main.py index 7eeef6542..c8134cab6 100644 --- a/app/main.py +++ b/app/main.py @@ -1,6 +1,33 @@ -# write your imports here +from app.cinema.bar import CinemaBar +from app.cinema.hall import CinemaHall +from app.people.cinema_staff import Cleaner +from app.people.customer import Customer -def cinema_visit(customers: list, hall_number: int, cleaner: str, movie: str): - # write you code here - pass +def cinema_visit(customers: list, hall_number: int, + cleaner: str, movie: str) -> None: + + hall = CinemaHall(hall_number) + bar_func = CinemaBar() + cleaning = Cleaner(cleaner) + list_of_customer = [] + + for bar_sell in customers: + customer = Customer(bar_sell["name"], bar_sell["food"]) + list_of_customer.append(customer) + bar_func.sell_product(product=bar_sell["food"], customer=customer) + + CinemaHall.movie_session(self=hall, movie_name=movie, + customers=list_of_customer, + cleaning_staff=cleaning) + + +customers = [ + {"name": "Bob", "food": "Coca-cola"}, + {"name": "Alex", "food": "popcorn"} +] +hall_number = 5 +cleaner = "Anna" +movie = "Madagascar" +cinema_visit(customers=customers, hall_number=5, + cleaner="Anna", movie="Madagascar") diff --git a/app/people/__init__.py b/app/people/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/app/people/cinema_staff.py b/app/people/cinema_staff.py new file mode 100644 index 000000000..ca2b5a90c --- /dev/null +++ b/app/people/cinema_staff.py @@ -0,0 +1,7 @@ +class Cleaner: + + def __init__(self, name: str) -> None: + self.name = name + + def clean_hall(self, hall_number: int) -> None: + print(f"Cleaner {self.name} is cleaning hall number {hall_number}.") diff --git a/app/people/customer.py b/app/people/customer.py new file mode 100644 index 000000000..00b3da32c --- /dev/null +++ b/app/people/customer.py @@ -0,0 +1,8 @@ +class Customer: + + def __init__(self, name: str, food: str) -> None: + self.name = name + self.food = food + + def watch_movie(self, movie: str) -> None: + print(f'{self.name} is watching "{movie}".') From 700028b8ee6e4feeec834e3f60d1cc87e915c1fb Mon Sep 17 00:00:00 2001 From: Serhiy Date: Mon, 14 Oct 2024 18:25:38 +0300 Subject: [PATCH 2/2] fix variables and remove example --- app/main.py | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/app/main.py b/app/main.py index c8134cab6..0071a5b69 100644 --- a/app/main.py +++ b/app/main.py @@ -5,29 +5,18 @@ def cinema_visit(customers: list, hall_number: int, - cleaner: str, movie: str) -> None: + cleaner_name: str, movie: str) -> None: hall = CinemaHall(hall_number) bar_func = CinemaBar() - cleaning = Cleaner(cleaner) + cleaning = Cleaner(cleaner_name) list_of_customer = [] - for bar_sell in customers: - customer = Customer(bar_sell["name"], bar_sell["food"]) + for customer_info in customers: + customer = Customer(customer_info["name"], customer_info["food"]) list_of_customer.append(customer) - bar_func.sell_product(product=bar_sell["food"], customer=customer) + bar_func.sell_product(product=customer_info["food"], customer=customer) CinemaHall.movie_session(self=hall, movie_name=movie, customers=list_of_customer, cleaning_staff=cleaning) - - -customers = [ - {"name": "Bob", "food": "Coca-cola"}, - {"name": "Alex", "food": "popcorn"} -] -hall_number = 5 -cleaner = "Anna" -movie = "Madagascar" -cinema_visit(customers=customers, hall_number=5, - cleaner="Anna", movie="Madagascar")