Deployed bbe63ed to v2 with Zensical 0.0.31 and mike 2.2.0+zensical-0.1.0

This commit is contained in:
github-actions[bot]
2026-04-02 09:39:18 +00:00
parent 1d8415de08
commit 91659b8237
33 changed files with 9560 additions and 1225 deletions

View File

@@ -25,7 +25,7 @@
<link rel="icon" href="../../assets/images/favicon.png">
<meta name="generator" content="zensical-0.0.30">
<meta name="generator" content="zensical-0.0.31">
@@ -36,7 +36,7 @@
<link rel="stylesheet" href="../../assets/stylesheets/modern/main.3b031116.min.css">
<link rel="stylesheet" href="../../assets/stylesheets/modern/main.53a7feaf.min.css">
@@ -102,18 +102,6 @@
<div data-md-color-scheme="default" data-md-component="outdated" hidden>
<aside class="md-banner md-banner--warning">
<div class="md-banner__inner md-grid md-typeset">
You're not viewing the latest
version.
<a href="../../..">
<strong>Click here to go to latest.</strong>
</a>
</div>
<script>var el=document.querySelector("[data-md-component=outdated]"),base=new URL("../.."),outdated=__md_get("__outdated",sessionStorage,base);!0===outdated&&el&&(el.hidden=!1)</script>
</aside>
</div>
@@ -197,7 +185,7 @@ version.
<a href="https://github.com/d3vyce/fastapi-toolsets" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path fill="currentColor" d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2026 Fonticons, Inc.--><path fill="currentColor" d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
</div>
<div class="md-source__repository">
GitHub
@@ -364,7 +352,7 @@ version.
<a href="https://github.com/d3vyce/fastapi-toolsets" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path fill="currentColor" d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2026 Fonticons, Inc.--><path fill="currentColor" d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
</div>
<div class="md-source__repository">
GitHub
@@ -1107,6 +1095,30 @@ version.
<li class="md-nav__item md-nav__item--active">
<label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis">
Models
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<a href="././" class="md-nav__link md-nav__link--active">
@@ -1124,6 +1136,164 @@ version.
</a>
<nav class="md-nav md-nav--secondary" aria-label="On this page">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
On this page
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#fastapi_toolsets.models.ModelEvent" class="md-nav__link">
<span class="md-ellipsis">
ModelEvent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#fastapi_toolsets.models.UUIDMixin" class="md-nav__link">
<span class="md-ellipsis">
UUIDMixin
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#fastapi_toolsets.models.UUIDv7Mixin" class="md-nav__link">
<span class="md-ellipsis">
UUIDv7Mixin
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#fastapi_toolsets.models.CreatedAtMixin" class="md-nav__link">
<span class="md-ellipsis">
CreatedAtMixin
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#fastapi_toolsets.models.UpdatedAtMixin" class="md-nav__link">
<span class="md-ellipsis">
UpdatedAtMixin
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#fastapi_toolsets.models.TimestampMixin" class="md-nav__link">
<span class="md-ellipsis">
TimestampMixin
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#fastapi_toolsets.models.WatchedFieldsMixin" class="md-nav__link">
<span class="md-ellipsis">
WatchedFieldsMixin
</span>
</a>
<nav class="md-nav" aria-label="WatchedFieldsMixin">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#fastapi_toolsets.models.WatchedFieldsMixin.on_create" class="md-nav__link">
<span class="md-ellipsis">
on_create
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#fastapi_toolsets.models.WatchedFieldsMixin.on_delete" class="md-nav__link">
<span class="md-ellipsis">
on_delete
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#fastapi_toolsets.models.WatchedFieldsMixin.on_event" class="md-nav__link">
<span class="md-ellipsis">
on_event
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#fastapi_toolsets.models.WatchedFieldsMixin.on_update" class="md-nav__link">
<span class="md-ellipsis">
on_update
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#fastapi_toolsets.models.watch" class="md-nav__link">
<span class="md-ellipsis">
watch
</span>
</a>
</li>
</ul>
</nav>
</li>
@@ -1412,10 +1582,17 @@ version.
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
<div class="md-sidebar-button__wrapper">
<label class="md-sidebar-button" for="__toc"></label>
</div>
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
<div class="md-sidebar-button__wrapper">
<label class="md-sidebar-button" for="__toc"></label>
</div>
<div class="md-sidebar__inner">
@@ -1434,6 +1611,17 @@ version.
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#fastapi_toolsets.models.ModelEvent" class="md-nav__link">
<span class="md-ellipsis">
ModelEvent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#fastapi_toolsets.models.UUIDMixin" class="md-nav__link">
<span class="md-ellipsis">
@@ -1443,6 +1631,17 @@ version.
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#fastapi_toolsets.models.UUIDv7Mixin" class="md-nav__link">
<span class="md-ellipsis">
UUIDv7Mixin
</span>
</a>
</li>
<li class="md-nav__item">
@@ -1476,6 +1675,78 @@ version.
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#fastapi_toolsets.models.WatchedFieldsMixin" class="md-nav__link">
<span class="md-ellipsis">
WatchedFieldsMixin
</span>
</a>
<nav class="md-nav" aria-label="WatchedFieldsMixin">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#fastapi_toolsets.models.WatchedFieldsMixin.on_create" class="md-nav__link">
<span class="md-ellipsis">
on_create
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#fastapi_toolsets.models.WatchedFieldsMixin.on_delete" class="md-nav__link">
<span class="md-ellipsis">
on_delete
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#fastapi_toolsets.models.WatchedFieldsMixin.on_event" class="md-nav__link">
<span class="md-ellipsis">
on_event
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#fastapi_toolsets.models.WatchedFieldsMixin.on_update" class="md-nav__link">
<span class="md-ellipsis">
on_update
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#fastapi_toolsets.models.watch" class="md-nav__link">
<span class="md-ellipsis">
watch
</span>
</a>
</li>
</ul>
@@ -1556,11 +1827,15 @@ version.
<p>Here's the reference for the SQLAlchemy model mixins provided by the <code>models</code> module.</p>
<p>You can import them directly from <code>fastapi_toolsets.models</code>:</p>
<div class="language-python highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="kn">from</span><span class="w"> </span><span class="nn">fastapi_toolsets.models</span><span class="w"> </span><span class="kn">import</span> <span class="p">(</span>
</span><span id="__span-0-2"><a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a> <span class="n">UUIDMixin</span><span class="p">,</span>
</span><span id="__span-0-3"><a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a> <span class="n">CreatedAtMixin</span><span class="p">,</span>
</span><span id="__span-0-4"><a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a> <span class="n">UpdatedAtMixin</span><span class="p">,</span>
</span><span id="__span-0-5"><a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a> <span class="n">TimestampMixin</span><span class="p">,</span>
</span><span id="__span-0-6"><a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a><span class="p">)</span>
</span><span id="__span-0-2"><a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a> <span class="n">ModelEvent</span><span class="p">,</span>
</span><span id="__span-0-3"><a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a> <span class="n">UUIDMixin</span><span class="p">,</span>
</span><span id="__span-0-4"><a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a> <span class="n">UUIDv7Mixin</span><span class="p">,</span>
</span><span id="__span-0-5"><a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a> <span class="n">CreatedAtMixin</span><span class="p">,</span>
</span><span id="__span-0-6"><a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a> <span class="n">UpdatedAtMixin</span><span class="p">,</span>
</span><span id="__span-0-7"><a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a> <span class="n">TimestampMixin</span><span class="p">,</span>
</span><span id="__span-0-8"><a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a> <span class="n">WatchedFieldsMixin</span><span class="p">,</span>
</span><span id="__span-0-9"><a id="__codelineno-0-9" name="__codelineno-0-9" href="#__codelineno-0-9"></a> <span class="n">watch</span><span class="p">,</span>
</span><span id="__span-0-10"><a id="__codelineno-0-10" name="__codelineno-0-10" href="#__codelineno-0-10"></a><span class="p">)</span>
</span></code></pre></div>
@@ -1568,6 +1843,54 @@ version.
<h2 id="fastapi_toolsets.models.ModelEvent" class="doc doc-heading">
<code>fastapi_toolsets.models.ModelEvent</code>
<a href="#fastapi_toolsets.models.ModelEvent" class="headerlink" title="Permanent link">&para;</a></h2>
<div class="doc doc-contents first">
<p class="doc doc-class-bases">
Bases: <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></code>, <code><a class="autorefs autorefs-external" title="enum.Enum" href="https://docs.python.org/3/library/enum.html#enum.Enum">Enum</a></code></p>
<p>Event types emitted by :class:<code>WatchedFieldsMixin</code>.</p>
<div class="doc doc-children">
</div>
</div>
</div>
<div class="doc doc-object doc-class">
<h2 id="fastapi_toolsets.models.UUIDMixin" class="doc doc-heading">
<code>fastapi_toolsets.models.UUIDMixin</code>
@@ -1604,6 +1927,52 @@ version.
</div>
</div>
</div>
<div class="doc doc-object doc-class">
<h2 id="fastapi_toolsets.models.UUIDv7Mixin" class="doc doc-heading">
<code>fastapi_toolsets.models.UUIDv7Mixin</code>
<a href="#fastapi_toolsets.models.UUIDv7Mixin" class="headerlink" title="Permanent link">&para;</a></h2>
<div class="doc doc-contents first">
<p>Mixin that adds a UUIDv7 primary key auto-generated by the database.</p>
<div class="doc doc-children">
</div>
</div>
@@ -1750,6 +2119,244 @@ version.
</div>
<div class="doc doc-object doc-class">
<h2 id="fastapi_toolsets.models.WatchedFieldsMixin" class="doc doc-heading">
<code>fastapi_toolsets.models.WatchedFieldsMixin</code>
<a href="#fastapi_toolsets.models.WatchedFieldsMixin" class="headerlink" title="Permanent link">&para;</a></h2>
<div class="doc doc-contents first">
<p>Mixin that enables lifecycle callbacks for SQLAlchemy models.</p>
<div class="doc doc-children">
<div class="doc doc-object doc-function">
<h3 id="fastapi_toolsets.models.WatchedFieldsMixin.on_create" class="doc doc-heading">
<code class="highlight language-python"><span class="n">on_create</span><span class="p">()</span></code>
<a href="#fastapi_toolsets.models.WatchedFieldsMixin.on_create" class="headerlink" title="Permanent link">&para;</a></h3>
<div class="doc doc-contents ">
<p>Called after INSERT commit.</p>
</div>
</div>
<div class="doc doc-object doc-function">
<h3 id="fastapi_toolsets.models.WatchedFieldsMixin.on_delete" class="doc doc-heading">
<code class="highlight language-python"><span class="n">on_delete</span><span class="p">()</span></code>
<a href="#fastapi_toolsets.models.WatchedFieldsMixin.on_delete" class="headerlink" title="Permanent link">&para;</a></h3>
<div class="doc doc-contents ">
<p>Called after DELETE commit.</p>
</div>
</div>
<div class="doc doc-object doc-function">
<h3 id="fastapi_toolsets.models.WatchedFieldsMixin.on_event" class="doc doc-heading">
<code class="highlight language-python"><span class="n">on_event</span><span class="p">(</span><span class="n">event</span><span class="p">,</span> <span class="n">changes</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span></code>
<a href="#fastapi_toolsets.models.WatchedFieldsMixin.on_event" class="headerlink" title="Permanent link">&para;</a></h3>
<div class="doc doc-contents ">
<p>Catch-all callback fired for every lifecycle event.</p>
<p><span class="doc-section-title">Parameters:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td>
<code>event</code>
</td>
<td>
<code><a class="autorefs autorefs-internal" title="&lt;code&gt;fastapi_toolsets.models.ModelEvent&lt;/code&gt;" href="./#fastapi_toolsets.models.ModelEvent">ModelEvent</a></code>
</td>
<td>
<div class="doc-md-description">
<p>The event type (:attr:<code>ModelEvent.CREATE</code>, :attr:<code>ModelEvent.DELETE</code>,
or :attr:<code>ModelEvent.UPDATE</code>).</p>
</div>
</td>
<td>
<em>required</em>
</td>
</tr>
<tr class="doc-section-item">
<td>
<code>changes</code>
</td>
<td>
<code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#dict">dict</a>[<a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a>, <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#dict">dict</a>[<a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a>, <a class="autorefs autorefs-external" title="typing.Any" href="https://docs.python.org/3/library/typing.html#typing.Any">Any</a>]] | None</code>
</td>
<td>
<div class="doc-md-description">
<p>Field changes for :attr:<code>ModelEvent.UPDATE</code>, <code>None</code> otherwise.</p>
</div>
</td>
<td>
<code>None</code>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="doc doc-object doc-function">
<h3 id="fastapi_toolsets.models.WatchedFieldsMixin.on_update" class="doc doc-heading">
<code class="highlight language-python"><span class="n">on_update</span><span class="p">(</span><span class="n">changes</span><span class="p">)</span></code>
<a href="#fastapi_toolsets.models.WatchedFieldsMixin.on_update" class="headerlink" title="Permanent link">&para;</a></h3>
<div class="doc doc-contents ">
<p>Called after UPDATE commit when watched fields change.</p>
</div>
</div>
</div>
</div>
</div>
<div class="doc doc-object doc-function">
<h2 id="fastapi_toolsets.models.watch" class="doc doc-heading">
<code class="highlight language-python"><span class="n">fastapi_toolsets</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">watch</span><span class="p">(</span><span class="o">*</span><span class="n">fields</span><span class="p">)</span></code>
<a href="#fastapi_toolsets.models.watch" class="headerlink" title="Permanent link">&para;</a></h2>
<div class="doc doc-contents first">
<p>Class decorator to filter which fields trigger <code>on_update</code>.</p>
<p><span class="doc-section-title">Parameters:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td>
<code>*fields</code>
</td>
<td>
<code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></code>
</td>
<td>
<div class="doc-md-description">
<p>One or more field names to watch. At least one name is required.</p>
</div>
</td>
<td>
<code>()</code>
</td>
</tr>
</tbody>
</table>
<p><span class="doc-section-title">Raises:</span></p>
<table>
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td>
<code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#ValueError">ValueError</a></code>
</td>
<td>
<div class="doc-md-description">
<p>If called with no field names.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
@@ -1855,7 +2462,7 @@ version.
<script id="__config" type="application/json">{"annotate":null,"base":"../..","features":["announce.dismiss","content.action.view","content.code.annotate","content.code.copy","content.code.select","content.footnote.tooltips","content.tabs.link","content.tooltips","navigation.footer","navigation.indexes","navigation.instant","navigation.instant.prefetch","navigation.path","navigation.sections","navigation.tabs","navigation.top","navigation.tracking","search.highlight"],"search":"../../assets/javascripts/workers/search.e2d2d235.min.js","tags":null,"translations":{"clipboard.copied":"Copied to clipboard","clipboard.copy":"Copy to clipboard","search.result.more.one":"1 more on this page","search.result.more.other":"# more on this page","search.result.none":"No matching documents","search.result.one":"1 matching document","search.result.other":"# matching documents","search.result.placeholder":"Type to start searching","search.result.term.missing":"Missing","select.version":"Select version"},"version":{"alias":true,"default":"stable","provider":"mike"}}</script>
<script src="../../assets/javascripts/bundle.66be65ca.min.js"></script>
<script src="../../assets/javascripts/bundle.91a19a9e.min.js"></script>
</body>