Encode decimals as number in JSON

This commit is contained in:
Oliver Traber 2025-04-28 17:52:35 +00:00
parent e7e7179cd9
commit 3f130363d7
Signed by: Bluemedia
GPG key ID: C0674B105057136C
6 changed files with 36 additions and 1 deletions

View file

@ -8,6 +8,8 @@ from app.schemas.connector import Connector
from ocpp.v201.enums import ResetEnumType, ResetStatusEnumType
from app.util.encoders import decimal_encoder
class ChargePointBase(BaseModel):
identity: str
is_active: bool
@ -32,6 +34,7 @@ class ChargePoint(ChargePointBase):
class Config:
from_attributes = True
json_encoders = {Decimal: decimal_encoder}
class ChargePointPassword(BaseModel):
password: str

View file

@ -4,6 +4,8 @@ from uuid import UUID
from pydantic import BaseModel
import enum
from app.util.encoders import decimal_encoder
class AttributeType(enum.Enum):
ACTUAL = "Actual"
TARGET = "Target"
@ -52,6 +54,7 @@ class ChargepointVariable(BaseModel):
class Config:
from_attributes = True
json_encoders = {Decimal: decimal_encoder}
class ChargepointVariableUpdate(BaseModel):
value: str

View file

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

View file

@ -8,4 +8,5 @@ class Session(BaseModel):
name: str
last_used: datetime
model_config = {"from_attributes": True}
class Config:
from_attributes = True

View file

@ -5,6 +5,8 @@ from typing import Optional
from uuid import UUID
from pydantic import BaseModel
from app.util.encoders import decimal_encoder
class TransactionStatus(enum.Enum):
ONGOING = "ongoing"
ENDED = "ended"
@ -50,6 +52,7 @@ class Transaction(BaseModel):
class Config:
from_attributes = True
json_encoders = {Decimal: decimal_encoder}
class RemoteTransactionStartStopResponse(BaseModel):
status: RemoteTransactionStartStopStatus