from typing import Optional from pydantic import BaseModel, Field class PresetConfig(BaseModel): id: str technique: str shot_count: Optional[int] = 1 class PaginationMeta(BaseModel): total: int = Field( ..., description="Total number of items in the collection.", example=125 ) skip: int = Field( ..., description="Number of items skipped (used for pagination offset).", example=20 ) limit: int = Field( ..., description="Maximum number of items returned per page.", example=10 ) has_next: bool = Field( ..., description="Whether there are more items after the current page.", example=True ) has_previous: bool = Field( ..., description="Whether there are items before the current page.", example=True ) next_skip: Optional[int] = Field( None, description="Skip value to use for fetching the next page, if it exists.", example=30 ) previous_skip: Optional[int] = Field( None, description="Skip value to use for fetching the previous page, if it exists.", example=10 )