Klasa Reservation
¶
Klasa Reservation
reprezentuje pojedynczą rezerwację dokonaną przez gościa w systemie hotelowym.
Zawiera informacje o dacie zameldowania, wymeldowania, wybranym pokoju oraz osobie dokonującej rezerwacji.
Pozwala obliczyć łączny koszt pobytu, liczbę nocy oraz wygenerować podsumowanie rezerwacji.
Dokumentacja techniczna¶
Reprezentuje rezerwację dokonaną przez gościa hotelu.
Atrybuty
reservation_id (str): Unikalny identyfikator rezerwacji. guest (Guest): Gość hotelu dokonujący rezerwacji. room (Room): Pokój, który został zarezerwowany. check_in (date): Data zameldowania. check_out (date): Data wymeldowania.
Inicjalizuje obiekt klasy Reservation. Args: guest: Guest: Gość hotelu. room: Room: Pokój hotelowy. check_in: date: Data zameldowania. check_out: date: Data wymeldowania.
Raises:
Type | Description |
---|---|
TypeError
|
Jeśli gość nie jest prawidłowym obiektem klasy Guest np. nie istnieje gość o danym imieniu i nazwisku, |
TypeError
|
Jeśli pokój nie jest prawidłowym obiektem klasy Room np. podano pokój numer 101, gdy hotel posiada pokoje do numeru 100, |
TypeError
|
Jeśli data została podana w nieprawidłowym formacie np. check_in = date(2025, 7, 23), zamiast check_in= „2025-07-23”, |
ValueError
|
Jeśli data wymeldowania jest wcześniejsza niż zameldowania np. check_in = date(2025-07-23), check_out = date(2025-07-21). |
Dzięki temu program nie przyjmie niepoprawnych danych i nie stworzy błędnej rezerwacji. Po sprawdzeniu poprawności danych, program tworzy nowy obiekt rezerwacji, zgodnie z zadeklarowanymi atrybutami, i przypisuje mu dane.
Source code in models/reservation.py
get_duration()
¶
Oblicza i zwraca liczbę nocy w ramach danej rezerwacji, Returns: int: różnica między datą zameldowania, a datą wymeldowania, z której wyciągnięto liczbę pełnych dni jako liczbę całkowitą.
Source code in models/reservation.py
get_summary()
¶
Returns: Reservation_id – unikalny identyfikator rezerwacji Guest_name – metoda z klasy Guest, która zwraca imię i nazwisko gościa Room_number – unikalny numer pokoju, atrybut klasy Room Check_in – data zameldowania w formacie ISO (RRR-MM-DD) Check_out - data wymeldowania w formacie ISO (RRR-MM-DD) Nights – liczba nocy obliczona za pomocą get_duration() Total_price – całkowity koszt pobytu w hotelu obliczony za pomocą get_total_price()
Source code in models/reservation.py
get_total_price()
¶
Oblicza całkowity koszt pobytu w hotelu Returns: float: iloczyn w formie zmiennoprzecinkowej, obliczonej liczby nocy (get_duration) i ceny jednej nocy w danym pokoju (price_per_night) będącą atrybutem klasy Room