2025-03-25 12:30:53 -05:00

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.