muryshev's picture
update
9390ea2
raw
history blame
1.47 kB
from datetime import datetime
from typing import List, Optional
from pydantic import BaseModel
class LogSchema(BaseModel):
id: int
date_created: datetime
user_request: Optional[str] = None
qe_result: Optional[str] = None
search_result: Optional[str] = None
llm_result: Optional[str] = None
llm_settings: Optional[str] = None
user_name: Optional[str] = None
error: Optional[str] = None
class LogCreateSchema(BaseModel):
user_request: Optional[str] = None
qe_result: Optional[str] = None
search_result: Optional[str] = None
llm_result: Optional[str] = None
llm_settings: Optional[str] = None
user_name: Optional[str] = None
error: Optional[str] = None
class LogFilterSchema(BaseModel):
user_name: Optional[str] = None
date_from: Optional[datetime] = None
date_to: Optional[datetime] = None
page: int = 1 # Номер страницы, по умолчанию 1
page_size: int = 50 # Размер страницы, по умолчанию 50
class Config:
json_schema_extra = {
"example": {
"user_name": "demo",
"date_from": "2024-01-01T00:00:00",
"date_to": "2026-12-31T23:59:59",
"page": 1,
"page_size": 50
}
}
class PaginatedLogResponse(BaseModel):
data: List[LogSchema]
total: int
page: int
page_size: int
total_pages: int