import hashlib
from datetime import datetime, timezone

import requests

from core.config import settings


class CodeIgniterClient:
    def __init__(self) -> None:
        self.base = settings.ci_callback_base_url.rstrip("/")
        self.headers = {
            "Authorization": f"Bearer {settings.ci_callback_token}",
            "Content-Type": "application/json",
        }

    def post_alert(self, event_id: str, severity: str, message: str, evidence: dict) -> dict:
        key = hashlib.sha256(f"{event_id}:{severity}:{message}".encode("utf-8")).hexdigest()
        payload = {
            "alert_key": key,
            "event_id": event_id,
            "severity": severity,
            "message": message,
            "evidence": evidence,
            "timestamp": datetime.now(timezone.utc).isoformat(),
        }
        r = requests.post(f"{self.base}/ai-integration/alerts", json=payload, headers=self.headers, timeout=10)
        r.raise_for_status()
        return r.json()

    def block_workflow(self, event_id: str, reason: str, probability: float) -> dict:
        payload = {
            "event_id": event_id,
            "reason": reason,
            "probability": probability,
            "timestamp": datetime.now(timezone.utc).isoformat(),
        }
        r = requests.post(f"{self.base}/ai-integration/workflow-block", json=payload, headers=self.headers, timeout=10)
        r.raise_for_status()
        return r.json()
