import json
import os
import urllib.parse
import urllib.request

rapidapi_key = os.environ["RAPIDAPI_KEY"]
slack_webhook_url = os.environ["SLACK_WEBHOOK_URL"]

query = urllib.parse.urlencode({
    "tickers": "AAPL,MSFT",
    "since": "2026-07-01",
    "limit": "10",
})

sec_request = urllib.request.Request(
    f"https://sec-event-intelligence.p.rapidapi.com/v1/sec/watchlist/changes?{query}",
    headers={
        "x-rapidapi-host": "sec-event-intelligence.p.rapidapi.com",
        "x-rapidapi-key": rapidapi_key,
    },
)

with urllib.request.urlopen(sec_request, timeout=20) as response:
    payload = json.loads(response.read().decode("utf-8"))

for group in payload["data"]:
    for change in group.get("changes", []):
        filing = change.get("filing", {})
        message = {
            "text": (
                f"{group['ticker']} {filing.get('form', 'filing')} "
                f"from {filing.get('companyName', 'unknown company')}: "
                f"{filing.get('filingUrl', '')}"
            )
        }
        slack_request = urllib.request.Request(
            slack_webhook_url,
            data=json.dumps(message).encode("utf-8"),
            headers={"Content-Type": "application/json"},
            method="POST",
        )
        urllib.request.urlopen(slack_request, timeout=20).read()
