§
    jé  ã                   ó0   — d dl Z defd„Zd	dededefd„ZdS )
é    NÚreturnc                  ó’   — t          j        dd¦  «                             ¦   «         } 	 t          | ¦  «        S # t          $ r Y dS w xY w)z8Return case SQL age threshold; <= 0 means no age filter.ÚWCNR_AGE_FILTERÚ18é   )ÚosÚgetenvÚstripÚintÚ
ValueError)Úraws    ú3/home/longshao/multi-rider-rag/shared/age_filter.pyÚget_age_filter_thresholdr      sR   € å
Œ)Ð% tÑ
,Ô
,×
2Ò
2Ñ
4Ô
4€CðÝ3‰xŒxˆøÝð ð ð Øˆrˆrðøøøs   ©8 ¸
AÁAÚaÚxÚ
case_aliasÚsuspect_aliasc                 ó^   — t          ¦   «         }|dk    rdS d|› d|› d| › d|› d| › d|› d	|› d
S )zDBuild a KingBase/PostgreSQL EXISTS clause for suspect age filtering.r   Ú zBAND EXISTS (
              SELECT 1 FROM "ywdata"."zq_zfba_xyrxx" z
              WHERE z."ajxx_join_ajxx_ajbh" = z(."ajxx_ajbh"
                AND LENGTH(z]."xyrxx_sfzh") = 18
                AND DATE_PART('year',
                      AGE(COALESCE(zL."ajxx_fasj"::date, CURRENT_DATE),
                          TO_DATE(SUBSTR(z;."xyrxx_sfzh", 7, 8), 'YYYYMMDD'))
                    ) < z
          ))r   )r   r   Ú	thresholds      r   Úbuild_age_exists_clauser      s   € å(Ñ*Ô*€IØA‚~€~ØˆrðØ6Cðð à"ðð à=Gðð ð *ðð ð
 %/ðð ð +8ðð ð #ðð ð ð ó    )r   r   )r   r   r   Ústrr   © r   r   ú<module>r      sb   ðØ 	€	€	€	ð #ð ð ð ð ðð ¨ð À#ð ÐPSð ð ð ð ð ð r   