From 5037d63405556521b456eb9fed966c12f66f983b Mon Sep 17 00:00:00 2001 From: Eliza Petrova Date: Wed, 22 Nov 2023 22:05:54 +0200 Subject: [PATCH] py-cinema-visit done --- app/cinema/__init__.py | 0 app/cinema/bar.py | 12 ++++++++++++ app/cinema/hall.py | 23 +++++++++++++++++++++++ app/main.py | 25 +++++++++++++++++++++---- app/people/__init__.py | 0 app/people/cinema_staff.py | 8 ++++++++ app/people/customer.py | 9 +++++++++ 7 files changed, 73 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..5ed263abc --- /dev/null +++ b/app/cinema/bar.py @@ -0,0 +1,12 @@ +from __future__ import annotations +from app.people.customer import Customer + + +class CinemaBar: + + def __init__(self) -> None: + pass + + @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..d10d7a3a1 --- /dev/null +++ b/app/cinema/hall.py @@ -0,0 +1,23 @@ +from __future__ import annotations +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..066e4e723 100644 --- a/app/main.py +++ b/app/main.py @@ -1,6 +1,23 @@ -# write your imports here +from __future__ import annotations +from app.people.cinema_staff import Cleaner +from app.people.customer import Customer +from app.cinema.hall import CinemaHall +from app.cinema.bar import CinemaBar -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_name: str, + movie: str) -> None: + customers_instance = [ + Customer(customer["name"], customer["food"]) + for customer in customers + ] + cinema_hall = CinemaHall(hall_number) + cleaner = Cleaner(cleaner_name) + cinema_bar = CinemaBar() + + for customer in customers_instance: + cinema_bar.sell_product(customer.food, customer) + + cinema_hall.movie_session(movie, customers_instance, 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..a3f75642d --- /dev/null +++ b/app/people/cinema_staff.py @@ -0,0 +1,8 @@ +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..b9fe5f3f0 --- /dev/null +++ b/app/people/customer.py @@ -0,0 +1,9 @@ +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}\".')