Source code for aim.digifeeds.database.schemas

"""Digifeeds Pydantic Models"""
from pydantic import BaseModel, Field, ConfigDict
from datetime import datetime


[docs] class ItemStatus(BaseModel): name: str = Field(alias="status_name") description: str = Field(alias="status_description") created_at: datetime model_config = ConfigDict(populate_by_name=True, from_attributes=True)
[docs] class ItemBase(BaseModel): model_config = ConfigDict(populate_by_name=True, from_attributes=True) barcode: str = Field(alias="item_barcode")
[docs] class Item(ItemBase): created_at: datetime statuses: list[ItemStatus] = [] model_config = ConfigDict( json_schema_extra={ "examples": [ { "barcode": "39015040218748", "created_at": "2024-09-25T17:12:39", "statuses": [ { "name": "in_zephir", "description": "Item is in zephir", "created_at": "2024-09-25T17:13:28", } ], } ] } )
[docs] class ItemCreate(ItemBase): pass
[docs] class StatusBase(BaseModel): name: str
[docs] class Status(StatusBase): description: str
[docs] class Response(BaseModel): detail: str
[docs] class Response400(Response): model_config = ConfigDict( json_schema_extra={ "examples": [ { "detail": "Item already exists", } ] } )
[docs] class Response404(Response): model_config = ConfigDict( json_schema_extra={ "examples": [ { "detail": "Item not found", } ] } )