From eae6053ec48e3c9c423e48f08ede0f2677e588ce Mon Sep 17 00:00:00 2001 From: Insarov Kuzma Date: Fri, 27 Sep 2024 20:04:56 +0300 Subject: [PATCH] Solution --- app/cinema/__init__.py | 0 app/cinema/bar.py | 7 +++++++ app/cinema/hall.py | 15 +++++++++++++++ app/main.py | 20 +++++++++++++++++--- app/people/cinema_staff.py | 6 ++++++ app/people/customer.py | 7 +++++++ 6 files changed, 52 insertions(+), 3 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/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..44f7b8408 --- /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..56102a9f5 --- /dev/null +++ b/app/cinema/hall.py @@ -0,0 +1,15 @@ +from app.people.customer import Customer +from app.people.cinema_staff import Cleaner + + +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..4cebc5417 100644 --- a/app/main.py +++ b/app/main.py @@ -1,6 +1,20 @@ # 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: + # creating instances + customer_objects = [Customer(name=c["name"], + food=c["food"]) for c in customers] + cinema_bar = CinemaBar() + cleaner_staff = Cleaner(cleaner) + + # implementation of cinema work + for customer in customer_objects: + cinema_bar.sell_product(product=customer.food, customer=customer) + cinema_hall = CinemaHall(hall_number) + cinema_hall.movie_session(movie, customer_objects, cleaner_staff) diff --git a/app/people/cinema_staff.py b/app/people/cinema_staff.py new file mode 100644 index 000000000..ddab0df53 --- /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..a3a615a41 --- /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}\".")