# Path: src/booking/source/classroom/model/Classroom.py
# class Classroom:
#     """
#     Class that represents a single classroom.
#     """
# 
#     def __init__(self, identifier: str, name: str, building: Building, floor: str):
#         self._identifier = identifier
#         self._name = name
#         self._building = building
#         self._floor = floor
# 
#     def get_identifier(self) -> str:
#         return self._identifier
# 
#     def get_name(self) -> str:
#         return self._name
# 
#     def get_building(self) -> Building:
#         return self._building
# 
#     def get_floor(self) -> str:
#         return self._floor
# 
# Path: src/booking/source/classroom/model/Building.py
# class Building:
# 
#     """
#     Class that represents a building.
#     """
# 
#     def __init__(self, identifier: str, name: str):
#         self._identifier = identifier
#         self._name = name
# 
#     def get_identifier(self):
#         return self._identifier
# 
#     def get_name(self) -> str:
#         return self._name


from abc import abstractmethod, ABC
from typing import List
from .model import Classroom, Building
        :param identifier: building identifier.
        :return: Returns the classrooms that are in the building.
        """
        pass

    def is_classroom_present(self, identifier: str):
        """
        Tels if a classroom is present inside the source.
        :param identifier: Name of the class that will be checked.
        :return: Returns True if the classroom is present False otherwise.
        """
        return self.get_classroom(identifier) is not None

    @abstractmethod
    def add_classroom(self, classroom: Classroom):
        """
        Adds a classroom to the source.
        :param classroom: Classroom that will be added.
        """
        pass

    @abstractmethod
    def get_all_classrooms(self) -> List[Classroom]:
        """
        Gets all the classroom inside the source.
        :return: Returns a List of all the classrooms inside the source.
        """
        pass

    @abstractmethod

# Path: src/booking/source/classroom/model/Classroom.py
# class Classroom:
#     """
#     Class that represents a single classroom.
#     """
# 
#     def __init__(self, identifier: str, name: str, building: Building, floor: str):
#         self._identifier = identifier
#         self._name = name
#         self._building = building
#         self._floor = floor
# 
#     def get_identifier(self) -> str:
#         return self._identifier
# 
#     def get_name(self) -> str:
#         return self._name
# 
#     def get_building(self) -> Building:
#         return self._building
# 
#     def get_floor(self) -> str:
#         return self._floor
# 
# Path: src/booking/source/classroom/model/Building.py
# class Building:
# 
#     """
#     Class that represents a building.
#     """
# 
#     def __init__(self, identifier: str, name: str):
#         self._identifier = identifier
#         self._name = name
# 
#     def get_identifier(self):
#         return self._identifier
# 
#     def get_name(self) -> str:
#         return self._name


# Path: src/booking/source/classroom/ClassroomSource.py
from abc import abstractmethod, ABC
from typing import List
from .model import Classroom, Building

        :param identifier: building identifier.
        :return: Returns the classrooms that are in the building.
        """
        pass

    def is_classroom_present(self, identifier: str):
        """
        Tels if a classroom is present inside the source.
        :param identifier: Name of the class that will be checked.
        :return: Returns True if the classroom is present False otherwise.
        """
        return self.get_classroom(identifier) is not None

    @abstractmethod
    def add_classroom(self, classroom: Classroom):
        """
        Adds a classroom to the source.
        :param classroom: Classroom that will be added.
        """
        pass

    @abstractmethod
    def get_all_classrooms(self) -> List[Classroom]:
        """
        Gets all the classroom inside the source.
        :return: Returns a List of all the classrooms inside the source.
        """
        pass

    @abstractmethod

    def get_all_buildings(self) -> List[Building]: