+
    mej                         R t ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RIH	t	 ]P                  ! ]4      tR R ltR R ltR# )	u"  Enriquecimento em segundo plano das empresas acabadas de criar.

Ao criar uma empresa o formulário só espera pela consulta rápida; o resto —
CAE do SICAE, morada do VIES — corre logo a seguir, sem bloquear o utilizador.

O job diário `refresh_nif` apanha o que ficar por preencher.
N)text)AsyncSessionLocal)
lookup_nifc                4    V ^8  d   QhR\         R\         RR/#    
company_idnifreturnNstr)formats   "app/services/enrichment.py__annotate__r      s!      c       c                   "   \        V4      G R j  xL
 pVP                  R4      R8X  d   \        P                  RV4       R # \	        4       ;_uu_4       GR j  xL
 pTP                  \        R4      RT RVP                  R4      RVP                  R4      R	VP                  R
4      RVP                  R4      '       d&   \        P                  ! VP                  R4      4      MR /4      G R j  xL
  VP                  4       G R j  xL
  R R R 4      GR j  xL
  \        P                  RWVP                  R4      VP                  R4      4       R #  ELD L Li LS LE  + GR j  xL 
 '       g   i     L\; i5i)Nsourcelocalz*enrichment: sem dados externos para nif=%sa  
                UPDATE companies SET
                  cae        = COALESCE(cae, :cae),
                  address    = COALESCE(NULLIF(address, ''), :addr),
                  legal_name = COALESCE(NULLIF(legal_name, ''), :legal),
                  ptdata_payload = CAST(:pl AS JSONB),
                  ptdata_fetched_at = now(),
                  updated_at = now()
                WHERE id = :id
                idcaeaddraddresslegal
legal_nameplrawz%enrichment: %s nif=%s fonte=%s cae=%s)
r   getloggerinfor   executer   jsondumpscommit)r   r	   datasessions   &&  r   _enrich_companyr%      s#    C DxxW$@#F """goo	 jtxx+,/TXXe__djj%1$
 	
 	
* nn- #". KK/(+TXXe_7 ! #	
* 	- #"""s   E<EAE<EE<BE 0E1E E	E E<E=E<E<E E E< E9	&E)'
E9	2E9	4E<c                4    V ^8  d   QhR\         R\         RR/# r   r   )r   s   "r   r   r   6   s!     7 7C 7c 7d 7r   c                     \         P                  ! 4       pTP                  \	        Y4      4       R#   \         d     R# i ; i)u&   Fire-and-forget na loop em execução.N)asyncioget_running_loopRuntimeErrorcreate_taskr%   )r   r	   loops   && r   schedule_enrichmentr-   6   s>    '') 	_Z56  s   3 AA)__doc__r(   r    logging
sqlalchemyr   app.dbr   app.services.nif_lookupr   	getLogger__name__r   r%   r-    r   r   <module>r6      s9        $ .			8	$D7r   