govorov/backend/app/schemas/calculation.py

35 lines
1.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from pydantic import BaseModel, ConfigDict
from datetime import datetime
from typing import Optional, Dict, Any
# --- Базовая схема ---
# Общие поля для расчета
class CalculationBase(BaseModel):
input_params: Dict[str, Any]
model_name: Optional[str] = None # Модель может быть выбрана сервером
# --- Схема для создания (запуска) расчета ---
# Данные, которые пользователь отправляет для запуска
class CalculationCreate(CalculationBase):
pass # Пока совпадает с Base, но может быть расширена
# --- Схема для чтения ---
# Полная информация о расчете, возвращаемая API
class CalculationRead(CalculationBase):
id: int
output_results: Optional[Dict[str, Any]] = None
timestamp: datetime
objective_score: Optional[float] = None
# Включаем режим ORM
model_config = ConfigDict(from_attributes=True)
# В Pydantic v1 было:
# class Config:
# orm_mode = True
# --- Опционально: Схема для обновления (если результаты добавляются позже) ---
class CalculationUpdate(BaseModel):
output_results: Optional[Dict[str, Any]] = None
objective_score: Optional[float] = None
model_name: Optional[str] = None # Если модель определяется по результату