from __future__ import annotations

from typing import Any


class EarlyWarningRadarMixin:
    """Autonomous risk radar and early warning indicator mixin."""

    def run_early_warning_radar(self) -> list[dict[str, Any]]:
        """Quét và phân tích cảnh báo sớm rủi ro chi phí & tiến độ trên toàn bộ dự án."""
        projects = self.repo.list_projects()
        warnings = []

        for p in projects:
            code = p.get("project_code")
            name = p.get("project_name")
            progress = p.get("progress_percent") or 0

            # Scenario evaluations
            if progress < 10 and p.get("status") == "in_progress":
                warnings.append(
                    {
                        "severity": "medium",
                        "project_code": code,
                        "project_name": name,
                        "risk_title": "Tiến độ huy động mặt bằng & máy đào chậm",
                        "issue_summary": "Tỷ lệ hoàn thành WBS giai đoạn 1 dưới 10%.",
                        "recommended_action": "Chỉ huy trưởng đôn đốc nhà thầu cơ giới tăng cường máy đào PC200.",
                        "responsible_agent": "phuc_planning_agent",
                    }
                )
            elif progress >= 80 and progress < 100:
                warnings.append(
                    {
                        "severity": "high",
                        "project_code": code,
                        "project_name": name,
                        "risk_title": "Đôn đốc hoàn thiện hồ sơ hoàn công & quyết toán",
                        "issue_summary": "Dự án sắp hoàn thành, cần tập hợp đủ phiếu nén mẫu R28 và bản vẽ hoàn công.",
                        "recommended_action": "Kỹ sư QA/QC phối hợp phòng kế toán xuất hồ sơ IPC đợt cuối.",
                        "responsible_agent": "thao_boq_agent",
                    }
                )

        return warnings
