o
    Ti                  	   @   sn   d dl mZmZ ddlmZ ddlmZ ddlmZm	Z	 de
de
fdd	Zdde
dedee
ef fddZdS )    )DictAny   )fetch_abn_xml)parse_abn_v1)AbnRecordV1AbnLookupErrorabnreturnc                 C   s,   |  dd} |  rt| dkrtd| S )uy   
    Normaliza y valida el ABN.
    - Elimina espacios.
    - Verifica que tenga exactamente 11 dígitos numéricos.
         u5   El ABN debe tener exactamente 11 dígitos numéricos.)replaceisdigitlenr   )r	    r   G/var/www/html/flask_server/apps/abn_lookup_app/abn_lookup_v1/service.py_normalize_abn   s   r   Finclude_historyc                 C   s$   t | }t||d}t|}| S )u   
    Función de alto nivel (versión 1) para usar desde otras apps.

    - Normaliza y valida el ABN.
    - Llama al servicio ABR (SearchByABNv202001).
    - Parsea el XML con parse_abn_v1.
    - Devuelve un dict JSON-friendly (campos básicos).
    )r   )r   r   r   to_dict)r	   r   norm_abnxml_strrecordr   r   r   lookup_abn_v1   s   	r   N)F)typingr   r   clientr   parserr   modelsr   r   strr   boolr   r   r   r   r   <module>   s    $