32 lines
855 B
Python
32 lines
855 B
Python
"""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",
|
|
}
|
|
|
|
def __init__(self, db: AsyncSession, tenant_id: int) -> None:
|
|
self.db = db
|
|
self.tenant_id = int(tenant_id)
|