"""AI PMO cadence service composition.""" from __future__ import annotations from .mixin_builders import CadenceBuildersMixin from .mixin_program_view import CadenceProgramViewMixin from .mixin_queries_a import CadenceQueriesAMixin from .mixin_queries_b import CadenceQueriesBMixin from .mixin_snapshots import CadenceSnapshotsMixin from .shared import AsyncSession class AIPMOCadenceService( CadenceSnapshotsMixin, CadenceProgramViewMixin, CadenceBuildersMixin, CadenceQueriesAMixin, CadenceQueriesBMixin, ): """Daily/weekly/risk/milestone cadence engine.""" SUPPORTED_CADENCE_TYPES = { "daily_standup", "weekly_review", "risk_review", "milestone_check", "executive_brief", } def __init__(self, db: AsyncSession, tenant_id: int) -> None: self.db = db self.tenant_id = int(tenant_id)