From 63fcc434ba5be909e9d5c3dc83746eee19b9aa41 Mon Sep 17 00:00:00 2001 From: LGram16 Date: Tue, 3 Feb 2026 00:56:03 +0900 Subject: [PATCH] =?UTF-8?q?"models.py=5FStockItem=5F=EC=B6=94=EA=B0=80=5F?= =?UTF-8?q?=EB=B0=8F=5FImportError=5F=EC=88=98=EC=A0=95"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/db/models.py | 13 +++++++++++++ .../__pycache__/kis_client.cpython-312.pyc | Bin 8106 -> 9829 bytes .../realtime_manager.cpython-312.pyc | Bin 6197 -> 6107 bytes .../__pycache__/scheduler.cpython-312.pyc | Bin 2332 -> 7207 bytes 4 files changed, 13 insertions(+) diff --git a/backend/app/db/models.py b/backend/app/db/models.py index 8a31fa4..77a85e8 100644 --- a/backend/app/db/models.py +++ b/backend/app/db/models.py @@ -137,6 +137,19 @@ class StockStat(Base): aiScoreBuy: Mapped[int] = mapped_column(Integer, default=0) aiScoreSell: Mapped[int] = mapped_column(Integer, default=0) + +class StockItem(Base): + __tablename__ = "stock_items" + + code: Mapped[str] = mapped_column(String, primary_key=True) + name: Mapped[str] = mapped_column(String) + price: Mapped[float] = mapped_column(Float, default=0.0) + change: Mapped[float] = mapped_column(Float, default=0.0) + changePercent: Mapped[float] = mapped_column(Float, default=0.0) + market: Mapped[str] = mapped_column(String) # Domestic, Overseas + + updated_at: Mapped[datetime] = mapped_column(DateTime, default=datetime.now) + # ----------------- # 4. Watchlist # ----------------- diff --git a/backend/app/services/__pycache__/kis_client.cpython-312.pyc b/backend/app/services/__pycache__/kis_client.cpython-312.pyc index 178daa40abca05bedfc162c08ffbe8e248c6ebcc..c382c7307562b551dd5dfd3ab3d7381033e652bf 100644 GIT binary patch delta 1681 zcmZ9MOKcNI7=U+n*N(kjJMk-V{EEXP!J@I80;PrWNbS6u#BLG?aGGYZJsUM8I4~hR z!qSvBP}HElwuMko0YOzrRVkG(IU?wRsx30*fa`MTrBV+)IHCvCQ|DiYhgfO8`QJ19 z&uHei{nc&x*=!aV`ti5k8{O6TgJlB}tf15H;V)_rT01=`VB??(3p321h)tAc9KdGT zf-Q7Z(orQ>Vk;dsxpG9r_8Hw^6?Ra&lMb6~9ns_J8Gg{F*&v3;HB`52x@$SER(4>w zY+bJ5p?)W>*CHCd&xQD??w6~z&?;O?qnMbscmi|TV{^>=irF*hPk@~A)epy~vV_UF>h8$7z6Tj}18 z(8V0~e2c7FPYk8dP^1D#Zib;{e5= z*4ca}BW4xjL54ULqiWST+A#YaDu)cQ40B94X37eR5hKjGsYWFZBPy8`g!w&d7=|Pj zK`~*S!YX>Dg0NVhMYuv;sM+LJcx=!@SZt(50h=xukBJKNj#+Ki*>xaUK;q1bsP1#E zc6Ml`suYeEd#02tXtZ81JeOIeW!kh%uNto9r%(UAkvW~9!}vXS2nFp^?LuJri)hUW zjFUjmI36825{Sbggr4}z&D)Y7lX9SGYoHwd#2X{Sv?D|UbO3^Y6d((S2{G2b9sR9RBo^tGqC5IyQY1<~ zgaW6)Y3WTQrIzk)Ek79}AA!-BNF*ZRm&5A@$Sg#@0qC8k3>uy;PWFNM1mJ7HMSxcM z6Dny%63yZ8`T@G*dhnS5lYoPO&j6nTq7+5@Kp)*;yr;E4(HW6?;?d5wWZ4+s(c0JF z+S1j(Yz>-;1JYUnbAUF$y8zfEIS2R(upMv)FaXRrjAcb>Gvf$7D!s%w(&$mi%Q!RWzlja>N8Wctb@b_oY~#)*Jzxu8xA2Ln4A+$7%Lb?pPW-l=?FLLGi z#=7#H?;BVahBM2;o@`ktG0b*0%05wg*#Y)nD54(q|Ky&BE!O~?uw}!m^yW;C$y-TI b9j3%)WVC&=UR!W4N>{ delta 401 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 E3qE&+0RR91 literal 6197 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 diff --git a/backend/app/workers/__pycache__/scheduler.cpython-312.pyc b/backend/app/workers/__pycache__/scheduler.cpython-312.pyc index cf4314d604c173d45cd559d8fa2daf7ab62d3e4f..afb64394a0b5c0c81faa4fcf99e56abee4277d26 100644 GIT binary patch literal 7207 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 aMAd&eMyV;om&QM%sQPDuN=G%xTKRwYSV^n^ delta 732 zcmZ8eO=}ZT6n!t5NoFRQNzxeeQ3xZowb{f?7t;Dc6{^tE6pJ9)jMK~`ZB1v&o2k-O zKTxB~@B}vnmr}ZP?;miZ5K%@0F1pZNXk4@i;(gObX)oNvoqONqo^$5Sm7M|Yy{ak* z;?}#(rI~0;%i(9OOA~WdDTIi$Jite%gD89WxKoY68@zWiuEwp%6I4~LD4=FZfC)8-eEbguC&4YNiTod$fB%H=Xm@iSaCO>+nirp-0aF+6Ho1kRdva5W3# zAxQT;zz=k|iS`AhIlVRgAvx6+ZhsjPq$8SvSq<`Eh){(gdw&34vDKW;?&n_O7)yu+ z5hE{-SRy`{v?6_vF;{2#-Spg&NYhVWD+=F3}6HH45ogS-vn;+!xelWvkK_GT-{bE`Ab*17Auh#tO}iXv3-3!B$_c z6K@7;LVd|FY;%Pe#_{DMCv}=xaOf->>FSEZf7W$cf(@?Jy$R3_V~jg!qJzddsN6y0 jUy=4*E