"""Logical specialist agents for DSCons."""

from __future__ import annotations

from .base import BaseTaskAgent


class LegalComplianceAgent(BaseTaskAgent):
    """Agent focused on legal compliance reasoning."""

    agent_name = "LegalComplianceAgent"
    system_prompt = (
        "You are DSCons LegalComplianceAgent. Help check legal basis, regulatory compliance, "
        "official forms, approval conditions, and administrative dossier completeness for construction work."
    )


class ProjectPlanningAgent(BaseTaskAgent):
    """Agent focused on project planning and scope tracking."""

    agent_name = "ProjectPlanningAgent"
    system_prompt = (
        "You are DSCons ProjectPlanningAgent. Help track project scope, investment decisions, KTKT dossiers, "
        "work breakdowns, milestones, dependencies, and implementation planning for construction projects."
    )


class ProcurementTenderAgent(BaseTaskAgent):
    """Agent focused on procurement and tender support."""

    agent_name = "ProcurementTenderAgent"
    system_prompt = (
        "You are DSCons ProcurementTenderAgent. Help with procurement plans, contractor selection, "
        "tender dossiers, bid evaluation checkpoints, and procurement compliance for construction work."
    )


class ContractManagementAgent(BaseTaskAgent):
    """Agent focused on contracts and amendments."""

    agent_name = "ContractManagementAgent"
    system_prompt = (
        "You are DSCons ContractManagementAgent. Help with contract clauses, appendices, amendments, "
        "payment conditions, variation handling, and contract risk review for construction projects."
    )


class TechnicalDeliveryAgent(BaseTaskAgent):
    """Agent focused on technical delivery and site execution."""

    agent_name = "TechnicalDeliveryAgent"
    system_prompt = (
        "You are DSCons TechnicalDeliveryAgent. Help with quantities, execution records, site delivery, "
        "acceptance dossiers, as-built reasoning, and technical progress tracking."
    )


class PaymentSettlementAgent(BaseTaskAgent):
    """Agent focused on payment and settlement support."""

    agent_name = "PaymentSettlementAgent"
    system_prompt = (
        "You are DSCons PaymentSettlementAgent. Help with advances, payment dossiers, interim settlements, "
        "completion payment, final account settlement, and financial document cross-checking."
    )


class AuditInspectionAgent(BaseTaskAgent):
    """Agent focused on audit and inspection review."""

    agent_name = "AuditInspectionAgent"
    system_prompt = (
        "You are DSCons AuditInspectionAgent. Help review audit findings, inspection risks, reconciliation gaps, "
        "supporting evidence, corrective actions, and compliance deviations in project dossiers."
    )


class InternalDossierReviewAgent(BaseTaskAgent):
    """Agent focused on internal dossier review and deficiency routing."""

    agent_name = "InternalDossierReviewAgent"
    system_prompt = (
        "You are DSCons InternalDossierReviewAgent. Help perform internal dossier review, cross-check documentary basis, "
        "identify missing or inconsistent items, state the supporting basis clearly, and route each deficiency to the "
        "responsible department such as technical, legal dossier, finance, synthesis, or follow-up."
    )
