models¶
Here's the reference for the SQLAlchemy model mixins provided by the models module.
You can import them directly from fastapi_toolsets.models:
from fastapi_toolsets.models import (
ModelEvent,
UUIDMixin,
UUIDv7Mixin,
CreatedAtMixin,
UpdatedAtMixin,
TimestampMixin,
WatchedFieldsMixin,
watch,
)
fastapi_toolsets.models.ModelEvent
¶
fastapi_toolsets.models.UUIDMixin
¶
Mixin that adds a UUID primary key auto-generated by the database.
fastapi_toolsets.models.UUIDv7Mixin
¶
Mixin that adds a UUIDv7 primary key auto-generated by the database.
fastapi_toolsets.models.CreatedAtMixin
¶
Mixin that adds a created_at timestamp column.
fastapi_toolsets.models.UpdatedAtMixin
¶
Mixin that adds an updated_at timestamp column.
fastapi_toolsets.models.TimestampMixin
¶
Bases: CreatedAtMixin, UpdatedAtMixin
Mixin that combines created_at and updated_at timestamp columns.
fastapi_toolsets.models.WatchedFieldsMixin
¶
Mixin that enables lifecycle callbacks for SQLAlchemy models.
on_create()
¶
Called after INSERT commit.
on_delete()
¶
Called after DELETE commit.
on_event(event, changes=None)
¶
Catch-all callback fired for every lifecycle event.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
event
|
ModelEvent
|
The event type (:attr: |
required |
changes
|
dict[str, dict[str, Any]] | None
|
Field changes for :attr: |
None
|
on_update(changes)
¶
Called after UPDATE commit when watched fields change.
fastapi_toolsets.models.watch(*fields)
¶
Class decorator to filter which fields trigger on_update.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
*fields
|
str
|
One or more field names to watch. At least one name is required. |
()
|
Raises:
| Type | Description |
|---|---|
ValueError
|
If called with no field names. |