from typing import Dict, Any from .models import LocalProblem class BaseAdapter: def to_shared(self, lp: LocalProblem) -> Dict[str, Any]: raise NotImplementedError class DERAdapter(BaseAdapter): def to_shared(self, lp: LocalProblem) -> Dict[str, Any]: return { "type": "DER", "neighborhood_id": lp.neighborhood_id, "pv_kw": lp.pv_kw, "demand_kw": lp.demand_kw, } class BatteryAdapter(BaseAdapter): def to_shared(self, lp: LocalProblem) -> Dict[str, Any]: return { "type": "Battery", "neighborhood_id": lp.neighborhood_id, "storage_kwh": lp.storage_kwh, "evs": lp.evs, }