99- 사용자 피드백 모델
1010- 벡터 저장소 모델 (PostgreSQL pgvector)
1111"""
12- from datetime import datetime
12+ from datetime import datetime , timezone
1313from typing import Any , Dict , List , Optional
1414from uuid import UUID , uuid4
1515from sqlmodel import Field as SQLField , Relationship , SQLModel
@@ -45,7 +45,7 @@ class ChatSessionBase(SQLModel):
4545 # 통계 필드
4646 total_messages : int = SQLField (default = 0 )
4747 avg_response_time_ms : Optional [int ] = SQLField (default = None )
48- last_activity_at : datetime = SQLField (default_factory = datetime .utcnow )
48+ last_activity_at : datetime = SQLField (default_factory = lambda : datetime .now ( timezone . utc ) )
4949
5050class ChatSession (ChatSessionBase , table = True ):
5151 """채팅 세션 테이블"""
@@ -57,14 +57,14 @@ class ChatSession(ChatSessionBase, table=True):
5757 sa_column = Column (PG_UUID (as_uuid = True ), primary_key = True )
5858 )
5959 created_at : datetime = SQLField (
60- default_factory = datetime .utcnow ,
60+ default_factory = lambda : datetime .now ( timezone . utc ) ,
6161 # pylint: disable=not-callable
6262 sa_column = Column (DateTime (timezone = True ), server_default = func .now ())
6363 )
64- updated_at : Optional [ datetime ] = SQLField (
65- default = None ,
64+ updated_at : datetime = SQLField (
65+ default_factory = lambda : datetime . now ( timezone . utc ) ,
6666 # pylint: disable=not-callable
67- sa_column = Column (DateTime (timezone = True ), onupdate = func .now ())
67+ sa_column = Column (DateTime (timezone = True ), server_default = func . now (), onupdate = func .now ())
6868 )
6969
7070 # 관계 정의
@@ -83,7 +83,7 @@ class ChatSessionRead(ChatSessionBase):
8383 """채팅 세션 조회 스키마"""
8484 id : UUID
8585 created_at : datetime
86- updated_at : Optional [ datetime ]
86+ updated_at : datetime
8787
8888class ChatSessionUpdate (SQLModel ):
8989 """채팅 세션 업데이트 스키마"""
@@ -119,7 +119,7 @@ class ChatMessage(ChatMessageBase, table=True):
119119 sa_column = Column (PG_UUID (as_uuid = True ), primary_key = True )
120120 )
121121 created_at : datetime = SQLField (
122- default_factory = datetime .utcnow ,
122+ default_factory = lambda : datetime .now ( timezone . utc ) ,
123123 # pylint: disable=not-callable
124124 sa_column = Column (DateTime (timezone = True ), server_default = func .now ())
125125 )
@@ -169,7 +169,7 @@ class UserFeedback(UserFeedbackBase, table=True):
169169 sa_column = Column (PG_UUID (as_uuid = True ), primary_key = True )
170170 )
171171 created_at : datetime = SQLField (
172- default_factory = datetime .utcnow ,
172+ default_factory = lambda : datetime .now ( timezone . utc ) ,
173173 # pylint: disable=not-callable
174174 sa_column = Column (DateTime (timezone = True ), server_default = func .now ())
175175 )
@@ -220,7 +220,7 @@ class RAGReference(RAGReferenceBase, table=True):
220220 sa_column = Column (PG_UUID (as_uuid = True ), primary_key = True )
221221 )
222222 created_at : datetime = SQLField (
223- default_factory = datetime .utcnow ,
223+ default_factory = lambda : datetime .now ( timezone . utc ) ,
224224 # pylint: disable=not-callable
225225 sa_column = Column (DateTime (timezone = True ), server_default = func .now ())
226226 )
@@ -261,7 +261,7 @@ class UserProfile(UserProfileBase, table=True):
261261
262262 # 기본 필드들 (직접 정의)
263263 created_at : datetime = SQLField (
264- default_factory = datetime .utcnow ,
264+ default_factory = lambda : datetime .now ( timezone . utc ) ,
265265 # pylint: disable=not-callable
266266 sa_column = Column (DateTime (timezone = True ), server_default = func .now ())
267267 )
@@ -333,7 +333,7 @@ class DocumentVector(DocumentVectorBase, table=True):
333333 sa_column = Column (PG_UUID (as_uuid = True ), primary_key = True )
334334 )
335335 created_at : datetime = SQLField (
336- default_factory = datetime .utcnow ,
336+ default_factory = lambda : datetime .now ( timezone . utc ) ,
337337 # pylint: disable=not-callable
338338 sa_column = Column (DateTime (timezone = True ), server_default = func .now ())
339339 )
0 commit comments