напиши покупку, регистрацию и отмену билетов
from tkinter import *


# Паспорт пассажира
class Passport:
    def __init__(self, name, surname, series, number):
        self.__series = series
        self.__number = number
        self.__name = name
        self.__surname = surname

    # Геттер серии паспорта
    @property
    def series(self):
        return self.__series

    # Геттер номера паспорта
    @property
    def number(self):
        return self.__number

    # Геттер имени
    @property
    def name(self):
        return self.__name

    # Геттер фамилии
    @property
    def surname(self):
        return self.__surname


# Пассажир
class Passenger:
    def __init__(self, passport, phone_number, email):
        self.__passport = passport
        self.__phone_number = phone_number
        self.__email = email

    # Геттер телефона пассажира
    @property
    def phone_number(self):
        return self.__phone_number

    # Геттер почты пассажира
    @property
    def email(self):
        return self.__email

    # Геттер имени пассажира
    @property
    def name(self):
        return self.__passport.name

    # Геттер фамилии пассажира
    @property
    def surname(self):
        return self.__passport.surname

    # Геттер серии паспорта
    @property
    def series(self):
        return self.__passport.series

    # Геттер номера паспорта
    @property
    def number(self):
        return self.__passport.number


# Место в самолете
class Seat:
    def __init__(self, price, boarding_group):
        self.__boarding_group = boarding_group
        self.__price = price
        self.__status = 0

    # Геттер цены места
    @property
    def price(self):
        return self.__price

    # Геттер посадочной группы места
    @property
    def boarding_group(self):
        return self.__boarding_group

    # Геттер статуса места (0 - свободно, 1 - куплено, 2 - зарегестрировано)
    @property
    def status(self):
        return self.__status

    # Сеттер статуса места
    @status.setter
    def status(self, val):
        if val in (0, 1, 2):
            self.__status = val
        else:
            print("Недопустимый статус.")


# Аэропорт
class Airport:
    def __init__(self):
        self.__flights = []     # Список рейсов

    # Удаление рейса из списка
    def cancel_flight(self, flight):
        if flight in self.__flights:
            self.__flights.remove(flight)
            print(f"Рейс номер {flight.flight_number} отменён.")
        else:
            print("Рейс не найден.")

    # Добавление рейса в список
    def add_flight(self, flight):
        self.__flights.append(flight)
        print(f"Рейс номер {flight.flight_number} добавлен.")

    # Вывод текущих рейсов
    def display_flights(self):
        if self.__flights:
            for flight in self.__flights:
                print(f"Рейс номер: {flight.flight_number} - Назначение: "
                      f"{flight.destination} - Время отправления: {flight.departure_time} - Свободные места: "
                      f"{flight.available_seats}")


# Самолёт
class Flight:
    def __init__(self, flight_number, destination, departure_time, total_seats):
        self.__flight_number = flight_number      # Номер рейса
        self.__destination = destination      # Место назначения
        self.__departure_time = departure_time      # Время отправки
        self.__total_seats = total_seats    # Всего мест в самолете
        self.__available_seats = total_seats        # Доступных мест
        self.__occupied_seats = 0       # Занятых мест
        self.__registered_seats = 0      # Зарегестрированных мест
        self.__passengers = []      # Список пассажиров

    # Регистрация пассажира
    def register_passenger(self, passenger):
        print(f"Пассажир {passenger.name} зарегестрирован на рейс номер {self.__flight_number}.")

    # Покупка билета
    def buy_ticket(self, passenger, seat_price, boarding_group):
        print(f"Билет куплен {passenger.name} на рейс номер {self.__flight_number}.")

    # Возврат билета
    def cancel_ticket(self, passenger):
        print(f"Возврат билета пассажиром {passenger.name}.")

    # Геттер номера рейса
    @property
    def flight_number(self):
        return self.__flight_number

    # Геттер времени отправления
    @property
    def departure_time(self):
        return self.__departure_time

    # Геттер количества свободных мест
    @property
    def available_seats(self):
        return self.__available_seats

    # Геттер места прибытия
    @property
    def destination(self):
        return self.__destination

    # Геттер общего количества мест
    @property
    def total_seats(self):
        return self.__total_seats

    # Геттер количества занятых мест
    @property
    def occupied_seats(self):
        return self.__occupied_seats

    # Геттер количества зарегестрированных мест
    @property
    def registered_seats(self):
        return self.__registered_seats


class Interface:
    airport = Airport
    mainscreen = Tk()
    # def __init__(self):


# Пример
passport1 = Passport("Боб", "Боб", "4517", "357645")    # Содание объекта паспорт
passenger1 = Passenger(passport1, "89131331224", "bob@gmail.com")   # Создание объекта пассажир

airport = Airport()     # Создание объекта аэропорт

flight1 = Flight("F123", "Москва", "12:00", 100)      # Создание объекта самолёт
flight2 = Flight("A200", "Новосибирск", "09:00", 300)      # Создание объекта самолёт
airport.add_flight(flight1)     # Добавление самолёта в список рейсов
airport.add_flight(flight2)      # Добавление самолёта в список рейсов

flight1.buy_ticket(passenger1, 200, "Group A")  # Покупка билета
flight1.register_passenger(passenger1)        # Регистрация билета
flight1.cancel_ticket(passenger1)   # Отмена билета

airport.display_flights()       # Отображение всех рейсов
airport.cancel_flight(flight1)      # Отмена рейса
airport.display_flights()       # Отображение всех рейсов