from __future__ import annotations from typing import Annotated from fastapi import Depends from app.core.deps_types import DbDep from app.features.evaluation.admin_service import EvaluationAdminService from app.features.evaluation.judge_manual_service import EvalJudgeManualService from app.features.evaluation.memoir_readiness_service import MemoirReadinessService from app.features.evaluation.replay_service import ReplayConversationService from app.features.quota.deps import get_quota_service from app.features.quota.service import QuotaService def get_session_catalog_service(db: DbDep) -> "SessionCatalogService": from app.features.evaluation.session_catalog_service import SessionCatalogService return SessionCatalogService(db) def get_evaluation_admin_service(db: DbDep) -> EvaluationAdminService: return EvaluationAdminService(db) def get_replay_conversation_service( db: DbDep, quota: Annotated[QuotaService, Depends(get_quota_service)], ) -> ReplayConversationService: return ReplayConversationService(db, quota) def get_eval_judge_manual_service(db: DbDep) -> EvalJudgeManualService: return EvalJudgeManualService(db) def get_memoir_readiness_service(db: DbDep) -> MemoirReadinessService: return MemoirReadinessService(db)