from abc import abstractmethod
from collections.abc import Callable, Sequence
from typing import Any

from csirtmu.core.temporal import TemporalActivities
from temporalio import activity


class LoggedActivities(TemporalActivities):
    @abstractmethod
    def get_activities(self) -> Sequence[Callable[..., Any]]: ...

    @staticmethod
    def log_activity() -> None:
        activity.logger.info("Starting activity: ")
