from abc import ABC, abstractmethod
from typing import Any, List, Optional

from backend.condition.domain.element import Element
from backend.condition.domain.property_condition_survey import PropertyConditionSurvey


class Mapper(ABC):

    @abstractmethod
    def map_asset_conditions_for_property(
        self, client_property_data: Any, survey_year: Optional[int] = None
    ) -> PropertyConditionSurvey:
        # TODO: client_data should be properly typed
        pass
