Skip to content

Commit 5cceadd

Browse files
committed
feat: ensure sensor dt fields at UTC
1 parent a6ca836 commit 5cceadd

1 file changed

Lines changed: 14 additions & 1 deletion

File tree

schemas/sensor.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,15 @@
1414
# limitations under the License.
1515
# ===============================================================================
1616
from typing_extensions import Annotated, Self
17+
from datetime import timezone
1718

18-
from pydantic import BaseModel, AwareDatetime, PastDatetime, model_validator
19+
from pydantic import (
20+
BaseModel,
21+
AwareDatetime,
22+
PastDatetime,
23+
model_validator,
24+
field_validator,
25+
)
1926

2027
# ------- VALIDATION ------
2128

@@ -25,6 +32,12 @@ class ValidateSensor(BaseModel):
2532
datetime_installed: AwareDatetime
2633
datetime_removed: AwareDatetime
2734

35+
@field_validator("datetime_installed", "datetime_removed")
36+
def convert_datetime_fields_to_utc(cls, field: AwareDatetime) -> AwareDatetime:
37+
if field is not None and field.tzinfo != timezone.utc:
38+
field = field.astimezone(timezone.utc)
39+
return field
40+
2841
@model_validator(mode="after")
2942
def check_datetime_values(self) -> Self:
3043
if (

0 commit comments

Comments
 (0)