from __future__ import annotations

from typing import Any
from fastapi import APIRouter, Depends, HTTPException, Query

router = APIRouter(prefix="/v1/erp/invoices/analytics", tags=["Invoice Analytics"])

@router.get("/business-breakdown")
async def get_business_breakdown() -> dict[str, Any]:
    """Returns the breakdown of invoices by commercial vs service."""
    # Dummy mock for now, actual implementation would query erp_invoices
    return {
        "status": "success",
        "data": {
            "commercial": {
                "total_amount_vnd": 5000000000,
                "purchase_in": 3000000000,
                "sales_out": 1500000000,
                "machine_rental_in": 200000000,
                "machine_sublease_out": 300000000
            },
            "service": {
                "total_amount_vnd": 2500000000,
                "equipment_leasing": 500000000,
                "transport_hire": 500000000,
                "construction_work": 1500000000
            },
            "mixed": {
                "total_amount_vnd": 1000000000,
                "complex_mixed": 1000000000
            }
        }
    }

@router.get("/machinery-roi")
async def get_machinery_roi() -> dict[str, Any]:
    """Returns Machinery ROI analytics for rent vs lease."""
    return {
        "status": "success",
        "data": {
            "rented_in_costs": 150000000,
            "leased_out_revenue": 300000000,
            "roi_percent": 100.0,
            "recommendation": "Tiếp tục thuê ngoài (Lợi nhuận gộp dương)."
        }
    }

@router.get("/cost-anomalies")
async def get_cost_anomalies() -> dict[str, Any]:
    """Returns anomalous invoices vs AEC pricing norms."""
    return {
        "status": "success",
        "data": [
            {
                "invoice_number": "00009876",
                "business_subcategory": "transport_hire",
                "deviation_percent": 25.5,
                "risk_level": "high",
                "notes": "Vượt định mức AEC 2026 cho cấu kiện cừ Larsen."
            }
        ]
    }
