From f45bd6295321a5c317ebc7f76ae7665af4522f37 Mon Sep 17 00:00:00 2001
From: duyanhehe <duyanhex@gmail.com>
Date: Sat, 26 Apr 2025 21:08:37 +0700
Subject: [PATCH] refactor

---
 app/backend/dummy_data.py         |  13 +++++++++
 app/backend/scripts/__init__.py   |   2 --
 app/backend/scripts/admin_init.py |  47 ------------------------------
 requirements.txt                  | Bin 2342 -> 1152 bytes
 run_app.py                        |   6 ----
 5 files changed, 13 insertions(+), 55 deletions(-)
 delete mode 100644 app/backend/scripts/__init__.py
 delete mode 100644 app/backend/scripts/admin_init.py

diff --git a/app/backend/dummy_data.py b/app/backend/dummy_data.py
index fe37556..07fa31d 100644
--- a/app/backend/dummy_data.py
+++ b/app/backend/dummy_data.py
@@ -31,6 +31,19 @@ def insert_dummy_data(session: Session):
         print("Dummy data already exists, skipping insertion")
         return
 
+    # Create admin user first
+    if not session.exec(select(User).where(User.role == "admin")).first():
+        admin_user = User(
+            username="admin",
+            email="admin@example.com",
+            password=hash_password("admin"),
+            phone_number="1234567890",
+            role="admin",
+        )
+        session.add(admin_user)
+        session.commit()
+        print("Default admin user created successfully!")
+
     if not session.exec(select(User)).first():
         users = [
             User(
diff --git a/app/backend/scripts/__init__.py b/app/backend/scripts/__init__.py
deleted file mode 100644
index d089d7f..0000000
--- a/app/backend/scripts/__init__.py
+++ /dev/null
@@ -1,2 +0,0 @@
-# Scripts for backend initialization and maintenance
-from .admin_init import init_admin 
\ No newline at end of file
diff --git a/app/backend/scripts/admin_init.py b/app/backend/scripts/admin_init.py
deleted file mode 100644
index 5a52ec5..0000000
--- a/app/backend/scripts/admin_init.py
+++ /dev/null
@@ -1,47 +0,0 @@
-import sys
-import os
-
-# Add the parent directory to the path to allow importing from the backend
-sys.path.append(
-    os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
-)
-
-from backend.database import get_session, engine
-from backend.models.models import SQLModel, User
-from backend.utils.hashing import hash_password
-from sqlmodel import select, Session
-
-
-def init_admin():
-    """Initialize a default admin user if no admin user exists"""
-    print("Initializing admin user...")
-
-    # Create all tables if they don't exist
-    SQLModel.metadata.create_all(engine)
-
-    with Session(engine) as session:
-        # Check if admin user already exists
-        admin = session.exec(select(User).where(User.role == "admin")).first()
-
-        if admin:
-            print("Admin user already exists.")
-            return
-
-        print("Creating default admin user...")
-        # Create default admin user with username and password both "admin"
-        hashed_password = hash_password("admin")
-        admin_user = User(
-            username="admin",
-            email="admin@example.com",
-            password=hashed_password,
-            phone_number="1234567890",
-            role="admin",
-        )
-
-        session.add(admin_user)
-        session.commit()
-        print("Default admin user created successfully!")
-
-
-if __name__ == "__main__":
-    init_admin()
diff --git a/requirements.txt b/requirements.txt
index 8bce77cb9555277ac11381eadb381a2ddc28e46e..a9d3dfb1d98fe88cebd319979cae7b7c670868cf 100644
GIT binary patch
literal 1152
zcmYey%gZlGEJ;n#EvYO>Ew;5a&@<OF;7ZJ^%*?m7HPN%sGvG=}E~+djv9&eUGtx8S
zN=_{*$xO?%wKXy@GSxHGGdAQ(P6P1`^$gAR47rjs5{rscOLX({i*gflGOJRHKsrr8
zGC7&a*|xS8dWL!yT*>)4`9+Dji69$I^vt-xcI2lQB^G2<+S;0!=o#o4aXE)%`=%Bb
zC#I(+<yY9+8tIvHC6^YL<mZ-TXXcfFOg06(DJ8KeJ0-OwHMs<29LUWndBp{lB^mj7
zU|o6!T&cN<nK|)gi8+}mi6!|(AYmgt1Fp2h;*!LIOprE1LsLCNLzsweat>J3K+l{j
zJr&}x%;cQRB#=%6kWfJ-hzasodQoa>UQQ}Fhz#`%xiSn5!3LV>8E|EkloTZA7p2<T
z8tQ?}0`W`o^K-yKZKh`eR!{*_Ze*cn$d#Frmk0_kLj$hNyv*eMytK@8kTr&S23(mX
z#VLt->8VBerNtmIko&zd^Rg0+z&i9yxpG0_kYApsn^~d@a-OlCft~@EZ(>n)X+dye
zS}I5#C|q+>N{ezpb{gs#aphJP7v|_D=jY|6CYR(F>B7RzQV(Q7eo<C2C=`wL3=Q-Q
zO}PpZld}`kGxI>MGSM^QDo89Y28W8Fp1Gb0S3zb@PJX$qt)ZbF$jJpcrRnLFAitaH
z8E_R8mzHGa*xH(domEhoTmVWckhn17DyU3J%qz)E26@fUK+g;=pqpAzQj`cwphh5v
zAXMuXr<Rmt=B0x}1QdcWW8xv9Zlq^qu4lv*P??^anpXl=WoW5q$Q4lO6&?b$3dHlR
z3=Z@GITRFu1(hYK#U-GmYOH6<1ql${l>Cy^yfTmy13g2SU~XwnNoGM}5jf!)=ouMs
z6;zgI<{5*c#L$2%pfb|Y*T>e@Ob-<7MX80Qsl^aS7#rysa}{MKXV}^r8tYl=nSeRE
zprnzV2{z5pSkH*7I3qPDCo?ZSBQY0bv#Fj5S8-luS{f*K8tNJA8FB>&`Z(q!XQbwW
zlcRy2u?1IgVNPy-N-8*p4fKqRxr$2?i*iy+N>V{_Zepfqzy-?fMIfG`sh$ytmzkFy
zpIT9pnpd2epH~dZ`i7v~UJ8kQQ&6BAaFrJ2<YXopgM!Ui&w#76EHgR3C=X<eF(|E<
vCzd2<q-ExS$`Md%H{mKzF3(IU$pEP^(la#XDo;%+&QH!x1%-hjC`kYS;gVe+

literal 2342
zcmezWFOeaSA&()Sp@bokp@booA%#Jgp@gB5p@1Qkp_svz!Ir^*L65<lL65<JftP`c
z0i?c?A(J5=EN8-?$6x`MOJYc7C<5y(0m~XQ=rI_9F-T`JLn=cNLkUABLmERSSl)=i
zfWe5tltGWdkU@{Zn86TiLo!1eTm?wn5Ntb4E`uSFp@^ZFA(f$oK^N@uB8FUsM1~xO
zOol434InpzYzDavrVAvS%#aPX735x!xfW2{@)>d%@)?R462azxbc1{h(rpG+0rOKn
zLpoSp0Ye5uCD<$z29P?CdLyt}XNC}lYzAL&*cCG*GNd!4G9)qNGgN?8gTlfbtS*_M
zl%bfRgdv|Hm!X6qn<0}S4;=bMV0EAn0jY(UnF984HbV;7&#4T_43N+T*$VOtBwkV&
z@)(L43K%LGN*FR2@)`2LCV@;r#9b=bhnWmH4Dk$Q&@cm;4sr*?W{`RihM1YgkO+2V
zB0~W*#z1x&G8jVR3=+Dis&pBW!Epf#N01JPpFv@P9D<opl}T`yLTrVo1Nj7G2FNv_
zFoxI#3jb7wRE9i;9B^oWRDj|d6rT_k84Muzfy6;J8$#m;l>RapN*GEQ3K){Xv7HLG
z6{HWO4&p+X3Q%}}QUxOYn=$Ayn1EvrrUnwDAiYN5900LBlK~VDiD0uK?t=I!lc9v6
zm;n^ldEhir#E=h80U&pRd<eo2m0sYqkj0S5V1#6f9)l^^c2G($VgRLue1>v{JO*6`
zkjc8>cn6sUvJ>Pch*`eSlvB!3z!1!k$dJYW@ij~pBz@&Fq%f2+6fxw0?E~osg$hir
zlA)NPkRgWw6tAFEmB#={fuI}%u@^bLS%PyrtgHa3$zmvmr$&&yhT!r9l!8EUQoxYN
z0Lqu3oC3-N>0mb)fnyEg0+5PghGKA<f}|9X>p*E55+9(HnFG$j<zT&_*oTxSkT57<
zC}t=HmpTytfpmiW2$QX3NM-=p0Vz|Ea{<i$N@%=+O0HzE9iZ5P_ybZxfYK@?ZXs%P
z8B!T47)rop1$t?U(2L!CU1-?`G6|GcAZZY!3zXL(sSMq|c$72^QfmY*Ga)tvFjO+6
zGvtDE4JZ|Y(g{e7Ap<D3ASQy;crk=CgrNBkA?wRf$q>vC$lwE30g3|%hQuPG)X`-~
z0oNv=JX!`<3kq?FSs=H=Qj9J`E<-6p4mfroaeye<KsrG61I+w#aK12x=L%5xgXBOi
zk7RIU@P)bzlv5#kL9#^*sSJe-rQq@y+3z58Ks63T4X7l_fVvfwMnT~MNnJ$@5IImR
z<}-lG1W;LxaHSywNIfK+iy1N)QW-#L5t5QYHB~OuR8anfl_13odEhz_R0~3CQBX*N
z%z=auB$OQ)au|}qCgwux8c>{pd}ho5sktEeGM6DATr)sYH%K0YjTnr<<prpY0o9j~
z(h^j^gJK_~!h``5QlJok)%TFp50W(mm+%mOL1ZC*iif6bQ0x|iTLGY22V^Fsj0U+8
zqN|hvIp>3FG*FDeN(M-I1FDsi7>vPT1kwo#14zCsWheuOJg5YL)MOx68H39Oh>CJ>
zdj%9ipl}5F50X<rVF^+TiNA7&WCl>mNdec2Aa{b~Kz4y*4&?W8a19MAqd?^ls8s<o
J2jpgmT>$?uRPO))

diff --git a/run_app.py b/run_app.py
index e6c697f..523ca5b 100644
--- a/run_app.py
+++ b/run_app.py
@@ -2,7 +2,6 @@ import threading
 import uvicorn
 from app.backend.main import app  # Your FastAPI app
 import os
-from app.backend.scripts.admin_init import init_admin
 
 
 def run_fastapi():
@@ -14,11 +13,6 @@ def start_tkinter_app():
 
 
 if __name__ == "__main__":
-    # Initialize admin user
-    print("Initializing admin user...")
-    init_admin()
-    print("Admin initialization complete!")
-
     # Start FastAPI in a separate thread
     fastapi_thread = threading.Thread(target=run_fastapi, daemon=True)
     fastapi_thread.start()
-- 
GitLab