e6188535fd
Le callback validateBillingEmailPresence testait null === billingEmail. Une chaine vide "" (champ vide envoye par le client) passait donc les validators ; le ClientAddressProcessor la normalisait ensuite en null APRES la validation, puis la persistance d'une adresse is_billing=true avec billing_email=null violait le CHECK chk_client_address_billing_email -> 500 DBAL au lieu du 422 attendu. Symetriquement, "" sur une adresse non facturable etait rejete a tort en 422 alors qu'un champ vide equivaut a une absence d'email. Le callback raisonne desormais sur la presence effective (null OU chaine vide apres trim = absent), coheremment avec la normalisation du processor. Deux cas de test ajoutes : adresse facturable + "" -> 422, adresse non facturable + "" -> 201.