36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
"""
|
|
HealthSync AI 기본 데이터 모델
|
|
"""
|
|
from pydantic import BaseModel, Field
|
|
from datetime import datetime
|
|
from typing import Optional, Generic, TypeVar, List
|
|
from enum import Enum
|
|
|
|
# Generic 타입 정의
|
|
T = TypeVar('T')
|
|
|
|
class BaseResponse(BaseModel, Generic[T]):
|
|
"""기본 응답 모델"""
|
|
success: bool = Field(default=True, description="요청 성공 여부")
|
|
message: str = Field(default="", description="응답 메시지")
|
|
data: Optional[T] = Field(default=None, description="응답 데이터")
|
|
timestamp: datetime = Field(default_factory=datetime.now, description="응답 시간")
|
|
|
|
class Config:
|
|
json_encoders = {
|
|
datetime: lambda v: v.isoformat()
|
|
}
|
|
|
|
|
|
class ErrorResponse(BaseModel):
|
|
"""에러 응답 모델"""
|
|
success: bool = Field(default=False, description="요청 성공 여부")
|
|
error_code: str = Field(..., description="에러 코드")
|
|
message: str = Field(..., description="에러 메시지")
|
|
details: Optional[dict] = Field(default=None, description="에러 상세 정보")
|
|
timestamp: datetime = Field(default_factory=datetime.now, description="에러 발생 시간")
|
|
|
|
class Config:
|
|
json_encoders = {
|
|
datetime: lambda v: v.isoformat()
|
|
} |