from __future__ import annotations

from typing import Any

from .diary_operations import SiteDiaryOperationsMixin
from .mr_operations import MaterialRequisitionOperationsMixin
from .seed_data import SiteOperationsSeedMixin


class SiteOperationsService(
    SiteOperationsSeedMixin,
    SiteDiaryOperationsMixin,
    MaterialRequisitionOperationsMixin,
):
    """Manages Mobile Site Diaries and Material Requisition workflows."""

    def __init__(self, postgres_client: Any | None = None) -> None:
        self.postgres_client = postgres_client
        # In-memory storage with initial truthful seed records
        self._diaries: dict[str, SiteDiaryRecord] = {}
        self._requisitions: dict[str, MaterialRequisitionRecord] = {}
        self._init_seeds()
