from chain_service.database.models.progress_chain import BaseProgressAction from .base import BaseProgressActionService from .wait_progress_action import WaitProgressActionService from .comment_progress_action import CommentProgressActionService from planfix_client import PlanfixClient class ProgressActionServiceFactory: def __init__(self, planfix_client: PlanfixClient): self.planfix_client = planfix_client def __call__( self, progress_action: BaseProgressAction ) -> BaseProgressActionService: match progress_action.action_type: case "wait": return WaitProgressActionService() case "comment": return CommentProgressActionService(planfix_client=self.planfix_client)