@@ -118,7 +118,9 @@ def email_validator_function(email_str):
118118 Optional [AddressType ], BeforeValidator (blank_to_none )
119119]
120120ContactRoleField : TypeAlias = Annotated [Optional [Role ], BeforeValidator (blank_to_none )]
121- FloatOrNone : TypeAlias = Annotated [Optional [float ], BeforeValidator (empty_str_to_none )]
121+ OptionalFloat : TypeAlias = Annotated [
122+ Optional [float ], BeforeValidator (empty_str_to_none )
123+ ]
122124MonitoryFrequencyField : TypeAlias = Annotated [
123125 Optional [MonitoringFrequency ], BeforeValidator (blank_to_none )
124126]
@@ -131,6 +133,11 @@ def email_validator_function(email_str):
131133 Optional [str ], BeforeValidator (email_validator_function )
132134]
133135
136+ OptionalBool : TypeAlias = Annotated [Optional [bool ], BeforeValidator (empty_str_to_none )]
137+ OptionalDateTime : TypeAlias = Annotated [
138+ Optional [datetime ], BeforeValidator (empty_str_to_none )
139+ ]
140+
134141
135142# ============= EOF =============================================
136143class WellInventoryRow (BaseModel ):
@@ -203,22 +210,22 @@ class WellInventoryRow(BaseModel):
203210
204211 directions_to_site : Optional [str ] = None
205212 specific_location_of_well : Optional [str ] = None
206- repeat_measurement_permission : Optional [ bool ] = None
207- sampling_permission : Optional [ bool ] = None
208- datalogger_installation_permission : Optional [ bool ] = None
209- public_availability_acknowledgement : Optional [ bool ] = None
213+ repeat_measurement_permission : OptionalBool = None
214+ sampling_permission : OptionalBool = None
215+ datalogger_installation_permission : OptionalBool = None
216+ public_availability_acknowledgement : OptionalBool = None
210217 special_requests : Optional [str ] = None
211218 ose_well_record_id : Optional [str ] = None
212- date_drilled : Optional [ datetime ] = None
219+ date_drilled : OptionalDateTime = None
213220 completion_source : Optional [str ] = None
214- total_well_depth_ft : FloatOrNone = None
221+ total_well_depth_ft : OptionalFloat = None
215222 historic_depth_to_water_ft : Optional [float ] = None
216223 depth_source : Optional [str ] = None
217224 well_pump_type : Optional [str ] = None
218- well_pump_depth_ft : FloatOrNone = None
219- is_open : Optional [ bool ] = None
220- datalogger_possible : Optional [ bool ] = None
221- casing_diameter_ft : FloatOrNone = None
225+ well_pump_depth_ft : OptionalFloat = None
226+ is_open : OptionalBool = None
227+ datalogger_possible : OptionalBool = None
228+ casing_diameter_ft : OptionalFloat = None
222229 measuring_point_description : Optional [str ] = None
223230 well_purpose : Optional [WellPurposeEnum ] = None
224231 well_hole_status : Optional [str ] = None
@@ -228,7 +235,7 @@ class WellInventoryRow(BaseModel):
228235 contact_special_requests_notes : Optional [str ] = None
229236 sampling_scenario_notes : Optional [str ] = None
230237 well_measuring_notes : Optional [str ] = None
231- sample_possible : Optional [ bool ] = None
238+ sample_possible : OptionalBool = None
232239
233240 # @field_validator("contact_1_address_1_postal_code", mode="before")
234241 # def validate_postal_code(cls, v):
0 commit comments