§
    jQ
  ã                   ó’  — d dl mZmZ ddlmZ ddlmZmZmZ ddl	m
Z
mZmZmZ ddlmZ ddlmZ d dlmZmZmZ  ej        d	d
g¬¦  «        d„ ¦   «         Z ej        dd
g¬¦  «        d„ ¦   «         Z ej        dd
g¬¦  «        d„ ¦   «         Z ej        dd
g¬¦  «        d„ ¦   «         Z ej        dd
g¬¦  «        d„ ¦   «         ZdS )é    )ÚrequestÚjsonifyé   )Ú
profile_bp)Úassemble_profileÚ	get_photoÚget_featured_people)Úget_recent_trajectoryÚget_hotspotsÚget_time_patternÚget_last_seen)Úbuild_timeline)Úgenerate_suggestions)Úparse_int_argÚvalidate_int_rangeÚvalidate_zjhmz	/featuredÚGET)Úmethodsc                  ó¾   — t          t          j                             d¦  «        d¦  «        } t	          | dd¦  «        sd} t          dt          | ¦  «        i¦  «        S )zCDemo helper: list monitored people ordered by risk, no zjhm needed.Úlimité   r   é<   Úitems)r   r   ÚargsÚgetr   r   r	   )r   s    ú8/home/longshao/multi-rider-rag/modules/profile/routes.pyÚprofile_featuredr      sX   € õ 'œ,×*Ò*¨7Ñ3Ô3°RÑ8Ô8€EÝ˜e Q¨Ñ+Ô+ð ØˆÝGÕ0°Ñ7Ô7Ð8Ñ9Ô9Ð9ó    z/<zjhm>c                 óT  — t          | ¦  «        st          dddœ¦  «        dfS t          | ¦  «        }|st          dddœ¦  «        dfS t          | d¬	¦  «        t	          | ¦  «        t          | ¦  «        t          | ¦  «        d
œ|d<   t          |¦  «        |d<   t          |¦  «        S )NÚinvalid_zjhmõ   è¯ä»¶å·æ ¼å¼ä¸æ­£ç¡®©ÚerrorÚmessageé  Ú	not_foundu   æœªæ‰¾åˆ°è¯¥äººå‘˜ä¿¡æ¯é”  é   )Údays©ÚrecentÚhotspotsÚtime_patternÚ	last_seenÚ
trajectoryÚsuggestions)r   r   r   r
   r   r   r   r   )ÚzjhmÚprofiles     r   Úprofile_detailr3      sÉ   € å˜ÑÔð ^Ý Ð<VÐWÐWÑXÔXÐZ]Ð]Ð]å˜tÑ$Ô$€GØð [Ý Ð9SÐTÐTÑUÔUÐWZÐZÐZõ (¨°2Ð6Ñ6Ô6Ý  Ñ&Ô&Ý(¨Ñ.Ô.Ý" 4Ñ(Ô(ð	ð €GˆLÑõ 2°'Ñ:Ô:€GˆMÑÝ7ÑÔÐr   z/<zjhm>/trajectoryc                 ó€  — t          | ¦  «        st          dddœ¦  «        dfS t          t          j                             d¦  «        d¦  «        }t          |dd¦  «        st          d	d
i¦  «        dfS t          t          | |¦  «        t          | |¦  «        t          | |¦  «        t          | ¦  «        dœ¦  «        S )Nr    r!   r"   r%   r)   r(   r   im  r#   Úinvalid_daysr*   )r   r   r   r   r   r   r   r
   r   r   r   )r1   r)   s     r   Úprofile_trajectoryr6   (   sÉ   € å˜ÑÔð ^Ý Ð<VÐWÐWÑXÔXÐZ]Ð]Ð]åœ×)Ò)¨&Ñ1Ô1°2Ñ6Ô6€DÝ˜d A sÑ+Ô+ð 7Ý˜ Ð0Ñ1Ô1°3Ð6Ð6åÝ'¨¨dÑ3Ô3Ý   tÑ,Ô,Ý(¨¨tÑ4Ô4Ý" 4Ñ(Ô(ð	ð ñ ô ð r   z/<zjhm>/timelinec                 ó„   — t          | ¦  «        st          dddœ¦  «        dfS t          dt          | ¦  «        i¦  «        S )Nr    r!   r"   r%   r   )r   r   r   )r1   s    r   Úprofile_timeliner8   9   sK   € å˜ÑÔð ^Ý Ð<VÐWÐWÑXÔXÐZ]Ð]Ð]åG^¨DÑ1Ô1Ð2Ñ3Ô3Ð3r   z/<zjhm>/photoc                 ó®   — t          | ¦  «        st          dddœ¦  «        dfS t          | ¦  «        }|st          ddi¦  «        dfS t          |¦  «        S )Nr    r!   r"   r%   r#   r&   r'   )r   r   r   )r1   Úphotos     r   Úprofile_photor;   A   sg   € å˜ÑÔð ^Ý Ð<VÐWÐWÑXÔXÐZ]Ð]Ð]åd‰OŒO€EØð 4Ý˜ Ð-Ñ.Ô.°Ð3Ð3Ý5‰>Œ>Ðr   N)Úflaskr   r   Ú r   Úservices.profile_assemblerr   r   r	   Úservices.trajectory_servicer
   r   r   r   Úservices.timeline_servicer   Úservices.suggestion_enginer   Úshared.validatorsr   r   r   Úrouter   r3   r6   r8   r;   © r   r   ú<module>rE      sÉ  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ Xðð ð ð ð ð ð ð ð ð ð ð ð 6Ð 5Ð 5Ð 5Ð 5Ð 5Ø <Ð <Ð <Ð <Ð <Ð <Ø NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ Nð €Ô+¨ wÐ/Ñ/Ô/ð:ð :ñ 0Ô/ð:ð €Ô) e WÐ-Ñ-Ô-ðð ñ .Ô-ðð$ €ÔÐ&°°Ð8Ñ8Ô8ðð ñ 9Ô8ðð  €ÔÐ$¨u¨gÐ6Ñ6Ô6ð4ð 4ñ 7Ô6ð4ð €Ô/¨E¨7Ð3Ñ3Ô3ðð ñ 4Ô3ðð ð r   