22from datetime import datetime
33from typing import Annotated
44
5+ from annotated_types import MaxLen
56from fastapi import Path
67from pydantic import UUID4 , Field , computed_field
78
3839_name_description = "The name of the customer."
3940_name_example = "John Doe"
4041
42+ CustomerNameInput = Annotated [
43+ str ,
44+ MaxLen (256 ),
45+ Field (description = _name_description , examples = [_name_example ]),
46+ EmptyStrToNoneValidator ,
47+ ]
48+
4149
4250class CustomerCreate (MetadataInputMixin , Schema ):
4351 external_id : Annotated [str | None , EmptyStrToNoneValidator ] = Field (
@@ -48,9 +56,7 @@ class CustomerCreate(MetadataInputMixin, Schema):
4856 email : EmailStrDNS = Field (
4957 description = _email_description , examples = [_email_example ]
5058 )
51- name : str | None = Field (
52- default = None , description = _name_description , examples = [_name_example ]
53- )
59+ name : CustomerNameInput | None = None
5460 billing_address : AddressInput | None = None
5561 tax_id : TaxID | None = None
5662 organization_id : OrganizationID | None = Field (
@@ -66,9 +72,7 @@ class CustomerUpdateBase(MetadataInputMixin, Schema):
6672 email : EmailStrDNS | None = Field (
6773 default = None , description = _email_description , examples = [_email_example ]
6874 )
69- name : str | None = Field (
70- default = None , description = _name_description , examples = [_name_example ]
71- )
75+ name : CustomerNameInput | None = None
7276 billing_address : AddressInput | None = None
7377 tax_id : TaxID | None = None
7478
0 commit comments