Files
invest-copilot/src/backend/routers/__pycache__/alerts.cpython-314.pyc
T

131 lines
16 KiB
Plaintext
Raw Normal View History

2026-05-30 11:28:59 -04:00
+
¹jø.ã
ó€Rt^RIt^RIHt^RIHtHtHtHtH t ^RI
H t H t H
t
^RIHtHtHtHt^RIHt^RIHt]P.!]4t]!RR .R
7tR R lt]P9R
R]R7RR] !^^R7] !^^^dR7]!]43RRll4t]P=R
R]^ÉR7]!]43RRll4t]P9RR]R7]!]43RRll4t ]PCRR]R7]!]43RRll4t"]P=R R!]R7]!]43R"R#ll4t#]P=R$R%^ÌR&7]!]43R'R(ll4t$]P=R)R*]%R7]!]43R+R,ll4t&R#)-z(Alerts CRUD + resolve/dismiss endpoints.N)ÚOptional)Ú APIRouterÚDependsÚ
HTTPExceptionÚBackgroundTasksÚQuery)Ú
execute_queryÚexecute_commandÚ execute_one)Ú AlertCreateÚ AlertUpdateÚ
AlertResponseÚAlertListResponse)Úcheck_sentiment_alerts)Úget_current_userz/alertsÚalerts)ÚprefixÚtagscó0€V^8„dQhR\R\/#)éÚ watchlist_idÚuser_id)Ústr)Úformats"ÚJ/home/laptran/ai-env/projects/invest-copilot/src/backend/routers/alerts.pyÚ __annotate__rs€÷KñK´ðK¼sñKócƒóf"€\RW34GRjx€L
pV'g\RRR7hR#L5i)z1Verify the authenticated user owns the watchlist.z8SELECT id FROM watchlists WHERE id = $1 AND user_id = $2Né”zWatchlist not found©Ú status_codeÚdetail)r
r)rrÚwls&& rÚ_require_watchlist_ownerr#s:é€äØBØ Ðó÷
€B÷ ܨÐ4IÔJÐJñ ñ 
ùs‚1“/” 1 1ÚzGet all user alerts)ÚsummaryÚresponse_modelÚactive)Úge)r(Úlec
ój€V^8„dQhR\\,R\R\R\R\/#)rrÚstatusÚpageÚ page_sizeÚ current_user)rrÚintÚdict)rs"rrr%sE€÷KñKÜœ3•-ðKä ðKô ðKôð Kô
ñ Krcƒóö"€VR,pV^,
V,pV'dA\W4GRjx€L
\RW34GRjx€L
pRp\W€W34GRjx€L
p MÌ\RV34GRjx€L
p
V
'dV
U u.uF q»R,NK
up M.p V 'g\.^W#R7#RPR\ \ V 4444p
\R V
R
2\
V 4V3,4GRjx€L
pR V
R 2p\V\
V 4WV3,4GRjx€L
p V'd\V^,R
,4M^p\V Uu.uFðp\VR,VR,VR,VPR4VR,VPRR4VPR4VPRR4VPR4VPR4\VPR4\4'dVPR4M\VPR/44VPR4R7 NKò upVVVR7#EL+ELELELòuup iELoELFuupi5i)zHGet alerts for the authenticated user, optionally filtered by watchlist.ÚidNzLSELECT COUNT(*) AS count FROM alerts WHERE watchlist_id = $1 AND status = $2a8
SELECT id, watchlist_id, type, trigger_type, message, severity,
status, ticker, triggered_at, resolved_at, metadata, created_at
FROM alerts
WHERE watchlist_id = $1 AND status = $2
ORDER BY created_at DESC
LIMIT $2 OFFSET $3
z,SELECT id FROM watchlists WHERE user_id = $1)rÚtotalr,r-Ú,c3ó:"€TFpRV^, 2x€K R#5i)Ú$N©)Ú.0Úis& rÚ <genexpr>Ú"get_user_alerts.<locals>.<genexpr>Jsé€ÐFÑ3E¨a ! A a¥C 5¥ Ó3Eùs‚z<SELECT COUNT(*) AS count FROM alerts WHERE watchlist_id IN (z) AND status = $1zÛ
SELECT id, watchlist_id, type, trigger_type, message, severity,
status, ticker, triggered_at, resolved_at, metadata, created_at
FROM alerts
WHERE watchlist_id IN (z^) AND status = $1
ORDER BY created_at DESC
LIMIT $2 OFFSET $3
ÚcountrÚtypeÚ trigger_typeÚmessageÚseverityÚinfoÚtickerr+r'Ú triggered_atÚ resolved_atÚmetadataÚ
created_at© r2rr=r>r?r@rBr+rCrDrErF) r#rrÚjoinÚrangeÚlenÚtupler/r
ÚgetÚ
isinstancer0)rr+r,r-r.rÚoffsetÚ
count_rowsÚqueryÚrowsÚ
watchlistsÚwÚwl_idsÚ placeholdersr3Úrs&&&&& rÚget_user_alertsrW sWé€ð˜4Õ €GØ�Q�h˜)Õ
#€FçÜ& |Ó=×=Ð=Ü(Ø ZØ
Ð "ó
÷
ˆ
ð ˆô# 5¸Ð*HÓI×I‰ô)Ø :Ø
ˆJó
÷
ˆ
÷3=¡:Ó.¡:˜a�D—'�'¡:Ò.À"ˆçÜ$¨B°a¸dÔXÐ Xà—x‘xÑF´5¼¸V»Ô3EÓFÓFˆ Ü(ØJÈ<È.ÐXiÐ jÜ �&‹M˜V˜IÕ %ó
÷
ˆ
ð$ð%1 >ð2 ð  ˆô# 5¬%°«-¸6ÈfÐ:UÕ*UÓV×Vˆç+5ŒC�
˜1•
˜gÕ&Ô '¸1€Eä ñ ó
ñ�ô
Ø�T•7ؘ~Õ.Ø�v•YØŸU™U >Ó2ؘ)� ØŸ™˜z¨6Ó2Ø—u‘u˜X“Ø—u‘u˜X xÓ0ØŸU™U >Ó2ØŸE™E -Ó0Ü.8¸¿¹¸zÓ9JÌD×.QÒ.Q˜Ÿ™˜zÔ*ÔW[Ð\]×\aÑ\aÐblÐnpÓ\qÓWrØŸ5™5 Ó.÷
ññ
ð"Ø
Øô) ðòU >ò
òJò
ùò/ò 
òWùò

ùs›‚0I9²I³I9ÁI ÁI9ÁI#ÁI9Á4I&Á5 I9ÂI9ÂI) I9Â#AI9Ã?I.Ä+I9Ä+I1Ä, I9Ä8$I9ÅC6I4É I9É I9É#I9É&I9É)I9É1I9É4I9zCreate a new alert)r%r&r có0€V^8„dQhR\R\/#)rÚbodyr.)r r0)rs"rrrys€÷ñÜ
ðäñrcƒó"€VR,p\VPV4GRjx€L
\RVPVPVPVP
VP ;'gRVPVP34GRjx€L
p\VR,VR,VR,VPR4VR,VPR R4VPR
4VPR R 4VPR
4VPR4\VPR4\4'dVPR4M\VPR/44VPR4R7 #EL]Lô5i)zCreate a new alert.r2Na5
INSERT INTO alerts (watchlist_id, type, trigger_type, message, severity, ticker, metadata)
VALUES ($1, $2, $3, $4, $5, $6, $7)
RETURNING id, watchlist_id, type, trigger_type, message, severity,
status, ticker, triggered_at, resolved_at, metadata, created_at
rArr=r>r?r@rBr+r'rCrDrErFrG)
r#rr
r=r>r?r@rBrEr
rLrMr0)rYr.rÚrows&& rÚ create_alertr\ssEé€ð˜4Õ €GÜ
" 4×#4Ñ#4°gÓ
>×>Ð>äð ð
× Ñ ˜DŸI™I t×'8Ñ'8¸$¿,¹,ÈÏ
É
×H_ÐH_ÐY_Ðae×alÑalÐnr×n{Ñn{Ð|ó÷ €Cô Ø ˆt�9ؘÕ(Ø
��[Ø—W‘W˜^Ó,Ø�I•Ø—‘˜ VÓ,Ø�w‰w�xÓ Ø�w‰w�x Ó*Ø—W‘W˜^Ó,Ø—G‘G˜MÓ*Ü(2°3·7±7¸:Ó3FÌ×(MÒ(M�—‘˜Ô$ÔSWÐX[×X_ÑX_Ð`jÐlnÓXoÓSpØ—7‘7˜<Ó(ô
ð
ò?ñ ùs)‚#F¥F¦AFÁ/!FÂFÂC2FÆFz /{alert_id}zGet alert detailscó0€V^8„dQhR\R\/#©rÚalert_idr.©rr0)rs"rrr s€÷%ñ%œcð%´ñ%rcƒóæ"€VR,p\RV34GRjx€L
pV'g\RRR7h\VR,V4GRjx€L
\RV34GRjx€L
pV'g\RRR7h\VR,VR,VR ,VP R
4VR ,VP R R
4VP R4VP RR4VP R4VP R4\ VP R4\ 4'dVP R4M\
VP R/44VP R4R7 #ELLELEL
5i)z!Get details for a specific alert.r2ú1SELECT id, watchlist_id FROM alerts WHERE id = $1NrúAlert not foundrrzÂ
SELECT id, watchlist_id, type, trigger_type, message, severity,
status, ticker, triggered_at, resolved_at, metadata, created_at
FROM alerts WHERE id = $1
r=r>r?r@rArBr+r'rCrDrErFrG)r
rr#r
rLrMr0©r_r.rÚalertr[s&& rÚ get_alertrf›sIé€ð˜4Õ €GäØ;Ø ˆ ó÷
€E÷ ܨÐ4EÔFÐFä
" 5¨Õ#8¸'Ó
B×BÐBäð ð
ˆ ó
÷ €C÷ ܨÐ4EÔFÐFä Ø ˆt�9ؘÕ(Ø
��[Ø—W‘W˜^Ó,Ø�I•Ø—‘˜ VÓ,Ø�w‰w�xÓ Ø�w‰w�x Ó*Ø—W‘W˜^Ó,Ø—G‘G˜MÓ*Ü(2°3·7±7¸:Ó3FÌ×(MÒ(M�—‘˜Ô$ÔSWÐX[×X_ÑX_Ð`jÐlnÓXoÓSpØ—7‘7˜<Ó(ô
ð
ò)
òCò ùs?‚E1œE(� E1©#E1Á E+Á
E1Á!E.Á" E1Á.C;E1Å+E1Å.E1z Update alertcó<€V^8„dQhR\R\R\/#)rr_rYr.)rr r0)rs"rrrÍs+€÷BñBÜðBä
ðBôñBrcƒó"€VR,p\RV34GRjx€L
pV'g\RRR7h\VR,V4GRjx€L
.p.p^pVPe9VP RV 24VP VP4V^,
pVP
e9VP R V 24VP VP