Files
leocrm/templates/plugin-template/schemas.py
T

51 lines
1.2 KiB
Python
Raw Normal View History

2026-07-23 19:01:18 +02:00
"""
Pydantic schemas for the example plugin.
Customize these for your plugin's API request/response models.
"""
from __future__ import annotations
from datetime import datetime
from uuid import UUID
from pydantic import BaseModel, Field
class ExampleItemBase(BaseModel):
"""Base schema for an example item."""
name: str = Field(..., min_length=1, max_length=200, description="Item name")
description: str | None = Field(None, max_length=1000, description="Item description")
class ExampleItemCreate(ExampleItemBase):
"""Schema for creating an example item."""
pass
class ExampleItemUpdate(BaseModel):
"""Schema for updating an example item."""
name: str | None = Field(None, min_length=1, max_length=200)
description: str | None = Field(None, max_length=1000)
class ExampleItemResponse(ExampleItemBase):
"""Schema for returning an example item."""
id: UUID
tenant_id: UUID
is_active: bool
created_at: datetime
updated_at: datetime
model_config = {"from_attributes": True}
class ExampleItemListResponse(BaseModel):
"""Schema for a paginated list of example items."""
items: list[ExampleItemResponse]
total: int