From e3963ff5f267fb18af6b65df071d623471e785cc Mon Sep 17 00:00:00 2001 From: MrWaradana Date: Wed, 7 Jan 2026 12:09:47 +0700 Subject: [PATCH] feat: Add field validator to convert empty strings to None for specific numeric fields. --- src/yeardata/schema.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/yeardata/schema.py b/src/yeardata/schema.py index 71c32f7..ee20353 100644 --- a/src/yeardata/schema.py +++ b/src/yeardata/schema.py @@ -2,7 +2,7 @@ from datetime import datetime from typing import List, Optional from uuid import UUID -from pydantic import Field +from pydantic import Field, field_validator from src.models import DefaultBase, Pagination @@ -27,6 +27,25 @@ class YeardataBase(DefaultBase): created_by: Optional[str] = Field(None, nullable=True) updated_by: Optional[str] = Field(None, nullable=True) + @field_validator( + "asset_crit_ens_energy_not_served", + "asset_crit_bpp_system", + "asset_crit_bpp_pembangkit", + "asset_crit_dmn_daya_mampu_netto", + "asset_crit_marginal_cost", + "asset_crit_efdh_equivalent_forced_derated_hours", + "asset_crit_foh_forced_outage_hours", + "asset_crit_extra_fuel_cost", + "cf", + "eaf", + mode="before", + ) + @classmethod + def empty_string_to_none(cls, v): + if v == "": + return None + return v + class YeardataCreate(YeardataBase): pass