From ca54c8e71f59790aef5bf8693e0b074349567ecd Mon Sep 17 00:00:00 2001 From: guineaaaa <165776804+guineaaaa@users.noreply.github.com> Date: Wed, 14 May 2025 16:54:30 +0900 Subject: [PATCH 1/2] =?UTF-8?q?[FIX]=20=EC=9A=94=EC=B2=AD=20=EB=B0=94?= =?UTF-8?q?=EB=94=94=EB=A5=BC=20=EB=B0=9B=EB=8A=94=20BaseModel=EC=97=90?= =?UTF-8?q?=EC=84=9C=20TimestampMixn=20=EC=83=81=EC=86=8D=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/eduSchemas.py | 2 +- app/models/policySchemas.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/eduSchemas.py b/app/models/eduSchemas.py index 0033da2..963a0a5 100644 --- a/app/models/eduSchemas.py +++ b/app/models/eduSchemas.py @@ -27,6 +27,6 @@ class EducationItem(BaseModel): url: str -class EducationBookmarkRequest(TimestampMixin): +class EducationBookmarkRequest(BaseModel): user_id: int bookmarks: List[EducationItem] diff --git a/app/models/policySchemas.py b/app/models/policySchemas.py index 5f2289c..9003b26 100644 --- a/app/models/policySchemas.py +++ b/app/models/policySchemas.py @@ -25,6 +25,6 @@ class PolicyItem(BaseModel): url: str -class PolicySaveRequest(TimestampMixin): +class PolicySaveRequest(BaseModel): user_id: int policies: List[PolicyItem] From f1c00d80efa8fa06b46c25b5bafa50ce1c86a2a3 Mon Sep 17 00:00:00 2001 From: guineaaaa <165776804+guineaaaa@users.noreply.github.com> Date: Wed, 14 May 2025 17:09:09 +0900 Subject: [PATCH 2/2] =?UTF-8?q?[FIX]=20TimestampMixin=20=EC=98=A4=EC=9A=A9?= =?UTF-8?q?=20=EA=B0=9C=EC=84=A0,=20=EC=9D=91=EB=8B=B5=20=EB=AA=A8?= =?UTF-8?q?=EB=8D=B8=20=ED=95=84=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/resumeSchemas.py | 12 +++++++++--- app/services/resume_service.py | 13 +++++++++++-- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/app/models/resumeSchemas.py b/app/models/resumeSchemas.py index f9f3b2d..24bdc72 100644 --- a/app/models/resumeSchemas.py +++ b/app/models/resumeSchemas.py @@ -1,7 +1,8 @@ from pydantic import BaseModel from typing import Dict from enum import Enum -from app.models.common import TimestampMixin +from datetime import datetime +from typing import Optional class ResumeInitRequest(BaseModel): @@ -25,12 +26,17 @@ class ResumeCategory(str, Enum): ACADEMIC = "ACADEMIC" -class ResumeResult(TimestampMixin): +class ResumeResult(BaseModel): title: str sections: Dict[str, str] + created_at: Optional[datetime] = None + updated_at: Optional[datetime] = None + class Config: + orm_mode = True -class ResumeSaveRequest(TimestampMixin): + +class ResumeSaveRequest(BaseModel): user_id: int title: str sections: Dict[str, str] diff --git a/app/services/resume_service.py b/app/services/resume_service.py index b457464..83c9ba3 100644 --- a/app/services/resume_service.py +++ b/app/services/resume_service.py @@ -5,6 +5,7 @@ from langchain_openai import ChatOpenAI from app.db_models.resume import Resume from app.models.resumeSchemas import ResumeSaveRequest +from app.models.resumeSchemas import ResumeResult llm = ChatOpenAI(model="gpt-4", temperature=0.7) @@ -152,7 +153,7 @@ def save_resume_to_db(db: Session, data: ResumeSaveRequest): return resume -def get_resumes_by_user_id(db: Session, user_id: int): +def get_resumes_by_user_id(db: Session, user_id: int) -> list[ResumeResult]: resumes = db.query(Resume).filter(Resume.user_id == user_id).all() result = [] for r in resumes: @@ -160,5 +161,13 @@ def get_resumes_by_user_id(db: Session, user_id: int): content_dict = json.loads(r.content) except json.JSONDecodeError: content_dict = {} - result.append({"title": r.title, "sections": content_dict}) + + result.append( + ResumeResult( + title=r.title, + sections=content_dict, + created_at=r.created_at, + updated_at=r.updated_at, + ) + ) return result