Make transaction.meter_end required and force tz utc for all datetimes

This commit is contained in:
Oliver Traber 2025-05-25 21:04:35 +00:00
parent 4272f2878e
commit 8e42205301
Signed by: Bluemedia
GPG key ID: C0674B105057136C
8 changed files with 32 additions and 10 deletions

View file

@ -3,6 +3,7 @@ from datetime import datetime
from pydantic import BaseModel
from app.schemas.user import Role
from app.util.encoders import force_utc_datetime
@dataclass
@ -19,3 +20,6 @@ class TokenResponse(BaseModel):
access_token: str
refresh_token: str
not_after: datetime
class Config:
json_encoders = {datetime: force_utc_datetime}

View file

@ -8,7 +8,7 @@ from app.schemas.connector import Connector
from ocpp.v201.enums import ResetEnumType, ResetStatusEnumType
from app.util.encoders import decimal_encoder
from app.util.encoders import decimal_encoder, force_utc_datetime
class ChargePointBase(BaseModel):
identity: str
@ -34,7 +34,7 @@ class ChargePoint(ChargePointBase):
class Config:
from_attributes = True
json_encoders = {Decimal: decimal_encoder}
json_encoders = {Decimal: decimal_encoder, datetime: force_utc_datetime}
class ChargePointThumb(BaseModel):
id: UUID

View file

@ -5,7 +5,7 @@ from typing import Optional
from uuid import UUID
from pydantic import BaseModel
from app.util.encoders import decimal_encoder
from app.util.encoders import decimal_encoder, force_utc_datetime
class PhaseType(enum.Enum):
L1 = "L1"
@ -57,4 +57,4 @@ class MeterValue(BaseModel):
class Config:
from_attributes = True
json_encoders = {Decimal: decimal_encoder}
json_encoders = {Decimal: decimal_encoder, datetime: force_utc_datetime}

View file

@ -2,6 +2,8 @@ from datetime import datetime
from uuid import UUID
from pydantic import BaseModel
from app.util.encoders import force_utc_datetime
class Session(BaseModel):
id: UUID
@ -9,4 +11,5 @@ class Session(BaseModel):
last_used: datetime
class Config:
from_attributes = True
from_attributes = True
json_encoders = {datetime: force_utc_datetime}

View file

@ -6,7 +6,7 @@ from pydantic import BaseModel
from app.schemas.chargepoint import ChargePointThumb
from app.schemas.user import UserThumb
from app.util.encoders import decimal_encoder
from app.util.encoders import decimal_encoder, force_utc_datetime
class TransactionStatus(enum.Enum):
ONGOING = "ongoing"
@ -45,7 +45,7 @@ class Transaction(BaseModel):
started_at: datetime
ended_at: Optional[datetime] = None
meter_start: Decimal
meter_end: Optional[Decimal] = None
meter_end: Decimal
end_reason: Optional[TransactionEventTriggerReason] = None
price: Decimal
user: UserThumb
@ -53,7 +53,7 @@ class Transaction(BaseModel):
class Config:
from_attributes = True
json_encoders = {Decimal: decimal_encoder}
json_encoders = {Decimal: decimal_encoder, datetime: force_utc_datetime}
class RemoteTransactionStartStopResponse(BaseModel):
status: RemoteTransactionStartStopStatus