5555)
5656from .general import (
5757 LogConfig ,
58+ NonEmptyStr ,
5859 SerializableAnyUrl ,
5960 SerializableHttpUrl ,
6061 SerializableIPvAnyAddress ,
@@ -631,25 +632,43 @@ class BankAccountValidationRequest(BaseModel):
631632
632633class UserListsRequest (BaseModel ):
633634 curp : Optional [Curp ] = Field (None , description = 'Curp to review on lists' )
635+ rfc : Optional [Rfc ] = Field (None , description = 'Rfc to review on lists' )
634636 account_number : Optional [Union [Clabe , PaymentCardNumber ]] = Field (
635637 None , description = 'Account to review on lists'
636638 )
637- names : Optional [str ] = Field (
639+ names : Optional [NonEmptyStr ] = Field (
638640 None , description = 'Names of the user to review on lists'
639641 )
640- first_surname : Optional [str ] = Field (
641- None , description = 'first_surname of the user to review on lists'
642+ first_surname : Optional [NonEmptyStr ] = Field (
643+ None , description = 'First surname of the user to review on lists'
642644 )
643- second_surname : Optional [str ] = Field (
644- None , description = 'second_surname of the user to review on lists'
645+ second_surname : Optional [NonEmptyStr ] = Field (
646+ None , description = 'Second surname of the user to review on lists'
645647 )
646648
647649 @model_validator (mode = 'before' )
648650 @classmethod
649651 def check_request (cls , values ):
652+ if (
653+ values .get ('first_surname' ) or values .get ('second_surname' )
654+ ) and not values .get ('names' ):
655+ raise ValueError (
656+ 'names is required when first_surname or second_surname '
657+ 'is provided'
658+ )
659+
660+ if values .get ('names' ) and not values .get ('first_surname' ):
661+ raise ValueError (
662+ 'first_surname is required when names is provided'
663+ )
664+
650665 has_name = all (values .get (f ) for f in ['names' , 'first_surname' ])
651- curp , account = values .get ('curp' ), values .get ('account_number' )
652- if not any ([curp , account , has_name ]):
666+ curp , account , rfc = (
667+ values .get ('curp' ),
668+ values .get ('account_number' ),
669+ values .get ('rfc' ),
670+ )
671+ if not any ([curp , account , rfc , has_name ]):
653672 raise ValueError ("At least 1 param is required" )
654673 return values
655674
@@ -658,6 +677,7 @@ def check_request(cls, values):
658677 json_schema_extra = {
659678 'example' : {
660679 'curp' : 'GOCG650418HVZNML08' ,
680+ 'rfc' : 'GOCG650418TJ1' ,
661681 'account_number' : '9203929392939292392' ,
662682 'names' : 'Pedrito' ,
663683 'first_surname' : 'Sola' ,
0 commit comments