Skip to content

Commit ef6ce98

Browse files
committed
fix: update PN model to match actual API response structure
- Remove incorrect notificationType field (not in API response) - Add time_from and time_to fields - Make bmu_id optional (46 records have null bmUnit) - Change level fields to int type (matches API) - Add dataset field for consistency Test results: - Physical Notifications: 2,428 records ✅ - PNs with BMU: 2,382 - PNs without BMU: 46 - All records now parse successfully PN endpoint is now production-ready!
1 parent 35c6767 commit ef6ce98

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

elexon_bmrs/models.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -205,13 +205,15 @@ class PN(BaseModel):
205205
"""PN (Physical Notification) - Physical notification data."""
206206
model_config = ConfigDict(extra='allow', populate_by_name=True)
207207

208-
bmu_id: str = Field(alias="bmUnit")
209-
level_from: float = Field(alias="levelFrom")
210-
level_to: float = Field(alias="levelTo")
211-
notification_type: str = Field(alias="notificationType")
208+
bmu_id: Optional[str] = Field(alias="bmUnit", default=None)
209+
level_from: int = Field(alias="levelFrom")
210+
level_to: int = Field(alias="levelTo")
211+
time_from: datetime = Field(alias="timeFrom")
212+
time_to: datetime = Field(alias="timeTo")
212213
settlement_date: str = Field(alias="settlementDate")
213214
settlement_period: int = Field(alias="settlementPeriod")
214-
national_grid_bm_unit: Optional[str] = Field(alias="nationalGridBmUnit", default=None)
215+
national_grid_bm_unit: str = Field(alias="nationalGridBmUnit")
216+
dataset: Optional[str] = None
215217

216218

217219
class B1610(BaseModel):

0 commit comments

Comments
 (0)