def show_start_menu(self):
        command = ''
        while command != 'exit':
            command = input(f'\n{self.start_menu}\n\nOption:\n>>>')

            if command == '1':
                MainController.show_movies()
            elif command == '2':
                movie_id = input('Movie_id >>>')
                if movie_id.isdigit() is False or MovieController.check_id(
                        int(movie_id)) is False:
                    print('Invalid movie ID!')
                else:
                    MainController.show_movie_projections(int(movie_id))
            elif command == '3':
                try:
                    self.make_reservation_menu()
                except CancelException as e:
                    print('The reservation was canceled!')
            elif command != 'exit':
                print('Invalid option!')
    def make_reservation_menu(self):
        self.login_register_menu()
        if self.user is None:
            return

        print(f'Hello, {self.user.username}')

        MainController.show_movies()
        movie_id = self.get_number_input('Movie ID >>> ',
                                         MovieController.check_id)

        number_of_tickets = self.get_number_input('Number of tickets >>> ',
                                                  lambda x: int(x) > 0)

        MainController.show_movie_projections(movie_id)
        projection_id = self.get_number_input(
            'Choose a projection >>> ',
            lambda p_id: MovieController.check_id_for_projection(
                movie_id, int(p_id)))

        self.pick_seats_menu(projection_id, number_of_tickets)

        self.finalize_menu()