
    ei                     x    d Z ddlZddlmZmZ ddlZddlmZmZ ddlm	Z	  ej                  e      ZdedefdZy)	zM
Phone lookup services for customer phone number validation and information.
    N)OptionalDict)geocodercarrier)NumberParseExceptionphonereturnc           	         	 	 t        j                  | d      }t        j                  |      }t        j                  |      }t        j
                  |t         j                  j                        }|j                  d      r|dd j                         }t        j                  |d      }d}d}|r=|j                  d      }t        |      dk(  r|d	   }|d   }nt        |      dk(  r|d	   }t        j                  |d      }	|xs d|||d|	r|	nd|d
S # t        $ r t        j                  | d      }Y w xY w# t        t         f$ r/}
t"        j%                  d|  d|
        d| dddddd
cY d}
~
S d}
~
ww xY w)z
    Lookup phone number information including validation, formatting, and carrier details.
    
    Args:
        phone: Phone number string (can be in various formats)
        
    Returns:
        Dictionary containing phone number information
    NUS1   en z,    r   )country_codenational_formatcitystatealtspid_carrier_namer   valid_numberzError processing phone number z: F)phonenumbersparser   is_valid_numberregion_code_for_numberformat_numberPhoneNumberFormatNATIONAL
startswithlstripr   description_for_numbersplitlenr   name_for_number	Exceptionloggererror)r   parsed_numberis_validr   r   locationr   r   partscarrier_namees              o/var/www/html/hwPaymentPortal-be-dev/hw-payment-portal-api/src/apps/customers/services/phone_lookup_services.pylookup_phone_numberr.      s   =
	<(..ud;M  //> $::=I '44**33
 %%c*-ab188:O 22=$G NN4(E5zQQxaUqa ..}dC ).B.$&'3|$
 	
K $ 	<(..ud;M	<^ !), 

5eWBqcBC$$&!
 	


s;   D C<D< D95D< 8D99D< <E:$E5/E:5E:)__doc__loggingtypingr   r   r   r   r   phonenumbers.phonenumberutilr   	getLogger__name__r%   strr.        r-   <module>r8      sC     !  * =			8	$G
s G
t G
r7   