You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
orquestrador/app/api/schemas.py

92 lines
1.8 KiB
Python

from pydantic import BaseModel
from typing import Dict, Any, Optional, Literal
# Deifição de como vou pedir os parâmetros de cada item.
class ChatRequest(BaseModel):
message: str
user_id: Optional[int] = None
class ChatResponse(BaseModel):
response: str
class ToolCreate(BaseModel):
name: str
description: str
parameters: Dict[str, Any]
class ToolResponse(BaseModel):
id: int
name: str
description: str
parameters: Dict[str, Any]
class Config:
from_attributes = True
class ConsultarEstoqueRequest(BaseModel):
preco_max: Optional[float] = None
categoria: Optional[str] = None
ordenar_preco: Optional[Literal["asc", "desc"]] = None
limite: Optional[int] = None
class ValidarClienteVendaRequest(BaseModel):
cpf: str
valor_veiculo: float
class HidratarClienteMockRequest(BaseModel):
cpf: str
user_id: Optional[int] = None
class AvaliarVeiculoTrocaRequest(BaseModel):
modelo: str
ano: int
km: int
class AgendarRevisaoRequest(BaseModel):
placa: str
data_hora: str
modelo: str
ano: int
km: int
revisao_previa_concessionaria: bool
user_id: Optional[int] = None
class ListarAgendamentosRevisaoRequest(BaseModel):
user_id: Optional[int] = None
placa: Optional[str] = None
status: Optional[str] = None
limite: Optional[int] = 20
class CancelarAgendamentoRevisaoRequest(BaseModel):
protocolo: str
motivo: Optional[str] = None
user_id: Optional[int] = None
class EditarDataRevisaoRequest(BaseModel):
protocolo: str
nova_data_hora: str
user_id: Optional[int] = None
class CancelarPedidoRequest(BaseModel):
numero_pedido: str
motivo: str
user_id: Optional[int] = None
class RealizarPedidoRequest(BaseModel):
cpf: str
vehicle_id: int
user_id: Optional[int] = None