# from fastapi import APIRouter, Depends, HTTPException # from sqlalchemy.orm import Session # from models.user_info import UserInfo # from config.database import get_db # from typing import Optional # from datetime import datetime # router = APIRouter() # # 사용자 조회 # @router.get("/users/{user_id}") # async def get_user(user_id: str, db: Session = Depends(get_db)): # user = db.query(UserInfo).filter(UserInfo.id == user_id).first() # if not user: # raise HTTPException(status_code=404, detail="User not found") # return user # # 사용자 생성 # @router.post("/users") # async def create_user( # id: str, # preferred_username: Optional[str] = None, # mobile: Optional[str] = None, # business_cd: Optional[str] = None, # role_seq: Optional[int] = None, # name: Optional[str] = None, # email: Optional[str] = None, # profile: Optional[str] = None, # school_code: Optional[str] = None, # grade: Optional[int] = None, # class_name: Optional[str] = None, # student_no: Optional[int] = None, # creator_id: Optional[str] = None, # creator_ip: Optional[str] = None, # db: Session = Depends(get_db) # ): # new_user = UserInfo( # id=id, # preferred_username=preferred_username, # mobile=mobile, # business_cd=business_cd, # role_seq=role_seq, # name=name, # email=email, # profile=profile, # school_code=school_code, # grade=grade, # class_name=class_name, # student_no=student_no, # created_at=datetime.now(), # creator_id=creator_id, # creator_ip=creator_ip, # ) # db.add(new_user) # db.commit() # db.refresh(new_user) # return new_user # # 사용자 목록 조회 # @router.get("/users") # async def list_users(db: Session = Depends(get_db)): # return db.query(UserInfo).all() # # 사용자 업데이트 # @router.put("/users/{user_id}") # async def update_user( # user_id: str, # preferred_username: Optional[str] = None, # mobile: Optional[str] = None, # business_cd: Optional[str] = None, # role_seq: Optional[int] = None, # name: Optional[str] = None, # email: Optional[str] = None, # profile: Optional[str] = None, # school_code: Optional[str] = None, # grade: Optional[int] = None, # class_name: Optional[str] = None, # student_no: Optional[int] = None, # updater_id: Optional[str] = None, # updater_ip: Optional[str] = None, # db: Session = Depends(get_db) # ): # user = db.query(UserInfo).filter(UserInfo.id == user_id).first() # if not user: # raise HTTPException(status_code=404, detail="User not found") # # 필드 업데이트 # if preferred_username is not None: # user.preferred_username = preferred_username # if mobile is not None: # user.mobile = mobile # if business_cd is not None: # user.business_cd = business_cd # if role_seq is not None: # user.role_seq = role_seq # if name is not None: # user.name = name # if email is not None: # user.email = email # if profile is not None: # user.profile = profile # if school_code is not None: # user.school_code = school_code # if grade is not None: # user.grade = grade # if class_name is not None: # user.class_name = class_name # if student_no is not None: # user.student_no = student_no # user.updated_at = datetime.now() # user.updater_id = updater_id # user.updater_ip = updater_ip # db.commit() # db.refresh(user) # return user # # 사용자 삭제 # @router.delete("/users/{user_id}") # async def delete_user(user_id: str, db: Session = Depends(get_db)): # user = db.query(UserInfo).filter(UserInfo.id == user_id).first() # if not user: # raise HTTPException(status_code=404, detail="User not found") # db.delete(user) # db.commit() # return {"message": "User deleted successfully"}