forked from ashishps1/awesome-low-level-design
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathairline_management_system.py
More file actions
31 lines (24 loc) · 1.06 KB
/
airline_management_system.py
File metadata and controls
31 lines (24 loc) · 1.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from flight import Flight
from aircraft import Aircraft
from flight_search import FlightSearch
from booking_manager import BookingManager
from payment_processor import PaymentProcessor
class AirlineManagementSystem:
def __init__(self):
self.flights = []
self.aircrafts = []
self.flight_search = FlightSearch(self.flights)
self.booking_manager = BookingManager()
self.payment_processor = PaymentProcessor()
def add_flight(self, flight):
self.flights.append(flight)
def add_aircraft(self, aircraft):
self.aircrafts.append(aircraft)
def search_flights(self, source, destination, date):
return self.flight_search.search_flights(source, destination, date)
def book_flight(self, flight, passenger, seat, price):
return self.booking_manager.create_booking(flight, passenger, seat, price)
def cancel_booking(self, booking_number):
self.booking_manager.cancel_booking(booking_number)
def process_payment(self, payment):
self.payment_processor.process_payment(payment)