import requests from datatypes.magicplan.api.response import MagicPlanPlan, PlansListResponse _BASE_URL = "https://cloud.magicplan.app/api/v2" class MagicPlanClient: def __init__(self, customer_id: str, api_key: str) -> None: self._api_key = api_key self._session = requests.Session() self._session.headers.update({"customer": customer_id}) def get_plans(self) -> PlansListResponse: r = self._session.get(f"{_BASE_URL}/plans", params={"key": self._api_key}) r.raise_for_status() return PlansListResponse.model_validate(r.json()["data"]) def get_plan(self, plan_id: str) -> MagicPlanPlan: r = self._session.get( f"{_BASE_URL}/plans/{plan_id}", params={"key": self._api_key} ) r.raise_for_status() return MagicPlanPlan.model_validate(r.json()["data"])