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

@ -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