Files
chongming-plugins/example/models/pydantic.py
T

84 lines
2.5 KiB
Python

"""
自动生成的 Pydantic 模型 — example
来源: config/workers/example/
"""
from __future__ import annotations
from typing import Any, Optional
from pydantic import BaseModel, Field
class AddGetRequest(BaseModel):
"""Add two numbers — 请求体"""
a: float = Field(...)
b: float = Field(...)
class AddGetResponse(BaseModel):
"""Add two numbers — 响应体"""
result: float = Field(...)
operation: str = Field(default='add')
timestamp: Optional[float] = Field(default=0.0)
class AddPostRequest(BaseModel):
"""Add two numbers (POST) — 请求体"""
a: float = Field(...)
b: float = Field(...)
class AddPostResponse(BaseModel):
"""Add two numbers (POST) — 响应体"""
result: float = Field(...)
operation: str = Field(default='add')
timestamp: Optional[float] = Field(default=0.0)
class AddMqttRequest(BaseModel):
"""Add two numbers via MQTT — 请求体"""
a: float = Field(...)
b: float = Field(...)
class CountGetResponse(BaseModel):
"""Get visit count and increment — 响应体"""
name: str = Field(...)
value: int = Field(...)
class DivideGetRequest(BaseModel):
"""Divide two numbers — 请求体"""
a: float = Field(...)
b: float = Field(...)
class DivideGetResponse(BaseModel):
"""Divide two numbers — 响应体"""
result: Optional[float] = Field(default=0.0)
operation: str = Field(default='divide')
timestamp: Optional[float] = Field(default=0.0)
error: Optional[str] = Field(default='')
class HeartbeatMqttRequest(BaseModel):
"""Heartbeat ping (no response) — 请求体"""
worker_id: str = Field(...)
class MultiplyGetRequest(BaseModel):
"""Multiply two numbers — 请求体"""
a: float = Field(...)
b: float = Field(...)
class MultiplyGetResponse(BaseModel):
"""Multiply two numbers — 响应体"""
result: float = Field(...)
operation: str = Field(default='multiply')
timestamp: Optional[float] = Field(default=0.0)
class SubtractGetRequest(BaseModel):
"""Subtract two numbers — 请求体"""
a: float = Field(...)
b: float = Field(...)
class SubtractGetResponse(BaseModel):
"""Subtract two numbers — 响应体"""
result: float = Field(...)
operation: str = Field(default='subtract')
timestamp: Optional[float] = Field(default=0.0)
# 所有响应模型的联合类型
ExampleResponse = AddPostResponse | AddGetResponse | DivideGetResponse | SubtractGetResponse | CountGetResponse | MultiplyGetResponse