49 lines
1.7 KiB
Python
49 lines
1.7 KiB
Python
from pydantic import BaseModel, Field
|
|
|
|
# Base Schema
|
|
class SeaLionBase(BaseModel):
|
|
name: str = Field(..., description="Name of the sea lion")
|
|
species: str = Field(..., description="Species of the sea lion")
|
|
age: int | None = Field(None, description="Age of the sea lion")
|
|
weight: float | None = Field(None, description="Weight of the sea lion")
|
|
location: str = Field(..., description="Location of the sea lion")
|
|
|
|
class Config:
|
|
schema_extra = {
|
|
"example": {
|
|
"name": "Buddy",
|
|
"species": "California Sea Lion",
|
|
"age": 5,
|
|
"weight": 200.5,
|
|
"location": "Pacific Ocean"
|
|
}
|
|
}
|
|
|
|
# Schema for Create Operation
|
|
class SeaLionCreate(SeaLionBase):
|
|
pass
|
|
|
|
# Schema for Response
|
|
class SeaLion(SeaLionBase):
|
|
id: int = Field(..., description="Unique identifier for the sea lion")
|
|
|
|
class Config:
|
|
schema_extra = {
|
|
"example": {
|
|
"id": 1,
|
|
"name": "Buddy",
|
|
"species": "California Sea Lion",
|
|
"age": 5,
|
|
"weight": 200.5,
|
|
"location": "Pacific Ocean"
|
|
}
|
|
}
|
|
```
|
|
|
|
This code defines three Pydantic models for the SeaLion entity:
|
|
|
|
1. `SeaLionBase`: A base model that defines the common fields for the entity.
|
|
2. `SeaLionCreate`: A model that inherits from `SeaLionBase` and is used for creating new sea lion instances.
|
|
3. `SeaLion`: A model that inherits from `SeaLionBase` and includes an `id` field, which is used for representing sea lion instances in API responses.
|
|
|
|
Each model includes field descriptions and example values in the `Config` class. The `SeaLion` model also includes an example value for the `id` field. |