From 76765d4e85af03c2dcda4158fe7a9ad15449828f Mon Sep 17 00:00:00 2001 From: Lora Evseenko Date: Fri, 4 Oct 2024 16:01:59 +0300 Subject: [PATCH 1/3] 'Solution' --- app/main.py | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/app/main.py b/app/main.py index 7eeef6542..65a76efd9 100644 --- a/app/main.py +++ b/app/main.py @@ -1,6 +1,22 @@ -# 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: + cinema_customers = [ + Customer(customer.get("name"), customer.get("food")) + for customer in customers + ] + + cinema_hall = CinemaHall(hall_number) + cinema_bar = CinemaBar() + cinema_cleaner = Cleaner(cleaner) + + for customer in cinema_customers: + cinema_bar.sell_product(customer, customer.food) + cinema_hall.movie_session(movie, cinema_customers, cinema_cleaner) From 425e172422d955e28405216578f9037e5316d01e Mon Sep 17 00:00:00 2001 From: Lora Evseenko Date: Fri, 4 Oct 2024 16:32:01 +0300 Subject: [PATCH 2/3] Solution --- app/cinema/__init__.py | 0 app/cinema/bar.py | 7 +++++++ app/cinema/hall.py | 17 +++++++++++++++++ app/main.py | 24 ++++++++++++++++++++---- app/people/__init__.py | 0 app/people/cinema_staff.py | 6 ++++++ app/people/customer.py | 7 +++++++ 7 files changed, 57 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..817ebcd98 --- /dev/null +++ b/app/cinema/bar.py @@ -0,0 +1,7 @@ +from app.people.customer import Customer + + +class CinemaBar: + @staticmethod + def sell_product(customer: Customer, product: str) -> 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..d4788285b --- /dev/null +++ b/app/cinema/hall.py @@ -0,0 +1,17 @@ +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, + cleaning_stuff: 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_stuff.clean_hall(self.number) diff --git a/app/main.py b/app/main.py index 7eeef6542..65a76efd9 100644 --- a/app/main.py +++ b/app/main.py @@ -1,6 +1,22 @@ -# 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: + cinema_customers = [ + Customer(customer.get("name"), customer.get("food")) + for customer in customers + ] + + cinema_hall = CinemaHall(hall_number) + cinema_bar = CinemaBar() + cinema_cleaner = Cleaner(cleaner) + + for customer in cinema_customers: + cinema_bar.sell_product(customer, customer.food) + cinema_hall.movie_session(movie, cinema_customers, cinema_cleaner) 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..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..73eba8466 --- /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}".') From 332a98296b53bfedf7e59390170e37d1d84c8585 Mon Sep 17 00:00:00 2001 From: Lora Evseenko Date: Sat, 5 Oct 2024 11:17:45 +0300 Subject: [PATCH 3/3] 'Solution' --- app/cinema/hall.py | 6 ++++-- app/main.py | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/cinema/hall.py b/app/cinema/hall.py index d4788285b..e9cea8114 100644 --- a/app/cinema/hall.py +++ b/app/cinema/hall.py @@ -1,4 +1,5 @@ from app.people.cinema_staff import Cleaner +from app.people.customer import Customer class CinemaHall: @@ -8,8 +9,9 @@ def __init__(self, number: int) -> None: def movie_session( self, movie_name: str, - customers: list, - cleaning_stuff: Cleaner) -> None: + customers: list[Customer], + cleaning_stuff: Cleaner + ) -> None: print(f'"{movie_name}" started in hall number {self.number}.') for customer in customers: customer.watch_movie(movie_name) diff --git a/app/main.py b/app/main.py index 65a76efd9..3955d43a6 100644 --- a/app/main.py +++ b/app/main.py @@ -4,7 +4,7 @@ from app.people.customer import Customer -def cinema_visit(customers: list, +def cinema_visit(customers: list[dict], hall_number: int, cleaner: str, movie: str) -> None: