from __future__ import annotations

import logging

from app.core.postgres.base import BasePostgresClient

from .financial_mutations import FinancialMutationsMixin
from .financial_war_room_queries import FinancialWarRoomQueriesMixin
from .projects_mutations import ProjectsMutationsMixin
from .projects_queries import ProjectsQueriesMixin
from .wbs_operations import WbsOperationsMixin

logger = logging.getLogger("dscons.postgres.project_crud.repo")


class ProjectCrudRepository(
    BasePostgresClient,
    ProjectsQueriesMixin,
    ProjectsMutationsMixin,
    WbsOperationsMixin,
    FinancialMutationsMixin,
    FinancialWarRoomQueriesMixin,
):
    """Comprehensive PostgreSQL repository for projects, contracts, and WBS items."""
