From 8cbd3fb92da11f6245ebd2f17bf5c60b3dcc1caf Mon Sep 17 00:00:00 2001 From: ExampleE Date: Tue, 7 Jan 2025 09:09:48 +0200 Subject: [PATCH 1/2] Solution --- app/main.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/app/main.py b/app/main.py index 7eeef6542..41aabe579 100644 --- a/app/main.py +++ b/app/main.py @@ -1,6 +1,17 @@ -# write your imports here +from app.cinema.hall import CinemaHall +from app.cinema.bar import CinemaBar +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[dict], hall_number: int, cleaner: str, movie: str +) -> None: + customers_list = list() + for customer in customers: + customers_list.append(Customer(customer["name"], customer["food"])) + visit_cleaner = Cleaner(cleaner) + visit_hall = CinemaHall(hall_number) + for customer in customers_list: + CinemaBar.sell_product(customer.food, customer) + visit_hall.movie_session(movie, customers_list, visit_cleaner) From e1702ec8e24e9bc25caad6f5038626acc60a5fb0 Mon Sep 17 00:00:00 2001 From: ExampleE Date: Tue, 7 Jan 2025 09:20:34 +0200 Subject: [PATCH 2/2] Solution --- app/cinema/__init__.py | 0 app/cinema/bar.py | 7 +++++++ app/cinema/hall.py | 17 +++++++++++++++++ app/people/__init__.py | 0 app/people/cinema_staff.py | 6 ++++++ app/people/customer.py | 7 +++++++ 6 files changed, 37 insertions(+) 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..3d4303b55 --- /dev/null +++ b/app/cinema/bar.py @@ -0,0 +1,7 @@ +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..89f03f068 --- /dev/null +++ b/app/cinema/hall.py @@ -0,0 +1,17 @@ +from app.people import customer as p_customer +from app.people import cinema_staff as p_cinema_staff + + +class CinemaHall: + def __init__(self, number : int) -> None: + self.number = number + + def movie_session(self, movie_name : str, + customers : list[p_customer.Customer], + cleaner : p_cinema_staff.Cleaner) -> None: + print(f'"{movie_name}" started in hall number {self.number}.') + for customer in customers: + current_cust = p_customer.Customer(customer.name, customer.food) + current_cust.watch_movie(movie_name) + print(f'"{movie_name}\" ended.') + cleaner.clean_hall(self.number) 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..45baa1e75 --- /dev/null +++ b/app/people/cinema_staff.py @@ -0,0 +1,6 @@ +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..24d26363f --- /dev/null +++ b/app/people/customer.py @@ -0,0 +1,7 @@ +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}".')