@@ -194,7 +194,7 @@ class PrimarySignatoryTypedDict(TypedDict):
194194 r"""The UUID of the company's primary signatory."""
195195 first_name : NotRequired [str ]
196196 r"""The company's primary signatory's first name."""
197- middle_initial : NotRequired [str ]
197+ middle_initial : NotRequired [Nullable [ str ] ]
198198 r"""The company's primary signatory's middle initial."""
199199 last_name : NotRequired [str ]
200200 r"""The company's primary signatory's last name."""
@@ -215,7 +215,7 @@ class PrimarySignatory(BaseModel):
215215 first_name : Optional [str ] = None
216216 r"""The company's primary signatory's first name."""
217217
218- middle_initial : Optional [str ] = None
218+ middle_initial : OptionalNullable [str ] = UNSET
219219 r"""The company's primary signatory's middle initial."""
220220
221221 last_name : Optional [str ] = None
@@ -230,6 +230,44 @@ class PrimarySignatory(BaseModel):
230230 home_address : Optional [HomeAddress ] = None
231231 r"""The company's primary signatory's home address."""
232232
233+ @model_serializer (mode = "wrap" )
234+ def serialize_model (self , handler ):
235+ optional_fields = [
236+ "uuid" ,
237+ "first_name" ,
238+ "middle_initial" ,
239+ "last_name" ,
240+ "phone" ,
241+ "email" ,
242+ "home_address" ,
243+ ]
244+ nullable_fields = ["middle_initial" ]
245+ null_default_fields = []
246+
247+ serialized = handler (self )
248+
249+ m = {}
250+
251+ for n , f in self .model_fields .items ():
252+ k = f .alias or n
253+ val = serialized .get (k )
254+ serialized .pop (k , None )
255+
256+ optional_nullable = k in optional_fields and k in nullable_fields
257+ is_set = (
258+ self .__pydantic_fields_set__ .intersection ({n })
259+ or k in null_default_fields
260+ ) # pylint: disable=no-member
261+
262+ if val is not None and val != UNSET_SENTINEL :
263+ m [k ] = val
264+ elif val != UNSET_SENTINEL and (
265+ not k in optional_fields or (optional_nullable and is_set )
266+ ):
267+ m [k ] = val
268+
269+ return m
270+
233271
234272class PrimaryPayrollAdminTypedDict (TypedDict ):
235273 r"""The primary payroll admin of the company."""
0 commit comments