From 40798cefa85b1a35d9b92ccd1a697f5937a111f8 Mon Sep 17 00:00:00 2001 From: eliasjpr Date: Sat, 17 Aug 2024 20:41:37 -0400 Subject: [PATCH] Deploy docs --- docs/404.html | 6 +++--- docs/assets/{app.19d9338b.js => app.70057064.js} | 4 ++-- .../chunks/{theme.a19b6002.js => theme.88596d17.js} | 2 +- .../{index.md.01ab8dea.js => index.md.a4e2d95b.js} | 2 +- ...md.01ab8dea.lean.js => index.md.a4e2d95b.lean.js} | 2 +- ...in_Cql.md.0fb10718.js => main_Cql.md.654b6a18.js} | 2 +- ...0fb10718.lean.js => main_Cql.md.654b6a18.lean.js} | 2 +- ...d.64761c36.js => main_Cql_Adapter.md.9766ee18.js} | 2 +- ....lean.js => main_Cql_Adapter.md.9766ee18.lean.js} | 2 +- ...f31cf58.js => main_Cql_AlterTable.md.bafd4126.js} | 2 +- ...an.js => main_Cql_AlterTable.md.bafd4126.lean.js} | 2 +- ...md.33eb3586.js => main_Cql_Column.md.f756a2ee.js} | 2 +- ...6.lean.js => main_Cql_Column.md.f756a2ee.lean.js} | 2 +- ...md.bf02e9a6.js => main_Cql_Delete.md.18a0bc7d.js} | 2 +- ...6.lean.js => main_Cql_Delete.md.18a0bc7d.lean.js} | 2 +- ....md.bce74228.js => main_Cql_Error.md.6a11b4b7.js} | 2 +- ...28.lean.js => main_Cql_Error.md.6a11b4b7.lean.js} | 2 +- ...19e170a.js => main_Cql_ForeignKey.md.40555aa1.js} | 2 +- ...an.js => main_Cql_ForeignKey.md.40555aa1.lean.js} | 2 +- ...md.daf9a018.js => main_Cql_Insert.md.9423888f.js} | 2 +- ...8.lean.js => main_Cql_Insert.md.9423888f.lean.js} | 2 +- ...8b1eb018.js => main_Cql_Migration.md.2dc49fe1.js} | 2 +- ...ean.js => main_Cql_Migration.md.2dc49fe1.lean.js} | 2 +- ....5a68f1e4.js => main_Cql_Migrator.md.a62219bc.js} | 2 +- ...lean.js => main_Cql_Migrator.md.a62219bc.lean.js} | 2 +- ...main_Cql_Migrator_MigrationRecord.md.fa74ed80.js} | 2 +- ...Cql_Migrator_MigrationRecord.md.fa74ed80.lean.js} | 2 +- ...24148d7.js => main_Cql_PrimaryKey.md.ae64f81d.js} | 2 +- ...an.js => main_Cql_PrimaryKey.md.ae64f81d.lean.js} | 2 +- ...ab5.js => main_Cql_PrimaryKeyType.md.a6dc8024.js} | 2 +- ...s => main_Cql_PrimaryKeyType.md.a6dc8024.lean.js} | 2 +- ....md.d4182774.js => main_Cql_Query.md.a0f5a31f.js} | 2 +- ...74.lean.js => main_Cql_Query.md.a0f5a31f.lean.js} | 2 +- ...md.66c3399d.js => main_Cql_Record.md.e2316d6b.js} | 2 +- ...d.lean.js => main_Cql_Record.md.e2316d6b.lean.js} | 2 +- ...2c142ec3.js => main_Cql_Relations.md.4ad49e17.js} | 2 +- ...ean.js => main_Cql_Relations.md.4ad49e17.lean.js} | 2 +- ...s => main_Cql_Relations_BelongsTo.md.21e1209a.js} | 2 +- ...main_Cql_Relations_BelongsTo.md.21e1209a.lean.js} | 2 +- ... => main_Cql_Relations_Collection.md.6aeb93ca.js} | 2 +- ...ain_Cql_Relations_Collection.md.6aeb93ca.lean.js} | 2 +- ....js => main_Cql_Relations_HasMany.md.b1d57567.js} | 2 +- ...> main_Cql_Relations_HasMany.md.b1d57567.lean.js} | 2 +- ...9.js => main_Cql_Relations_HasOne.md.3091b0a2.js} | 2 +- ...=> main_Cql_Relations_HasOne.md.3091b0a2.lean.js} | 2 +- ...main_Cql_Relations_ManyCollection.md.59e9d786.js} | 2 +- ...Cql_Relations_ManyCollection.md.59e9d786.lean.js} | 2 +- ... => main_Cql_Relations_ManyToMany.md.d0457f86.js} | 2 +- ...ain_Cql_Relations_ManyToMany.md.d0457f86.lean.js} | 2 +- ...57121a0.js => main_Cql_Repository.md.f6c7bdb4.js} | 2 +- ...an.js => main_Cql_Repository.md.f6c7bdb4.lean.js} | 2 +- ...md.47d48e43.js => main_Cql_Schema.md.c7bffc60.js} | 2 +- ...3.lean.js => main_Cql_Schema.md.c7bffc60.lean.js} | 2 +- ....md.0c401476.js => main_Cql_Table.md.e3cf3370.js} | 2 +- ...76.lean.js => main_Cql_Table.md.e3cf3370.lean.js} | 2 +- ...md.6a2e093e.js => main_Cql_Update.md.06ebbdf5.js} | 2 +- ...e.lean.js => main_Cql_Update.md.06ebbdf5.lean.js} | 2 +- ...md.e62d8c9a.js => main_Cql__index.md.a4a8b6b3.js} | 2 +- ...a.lean.js => main_Cql__index.md.a4a8b6b3.lean.js} | 2 +- docs/assets/main_Guides.md.bc486650.js | 1 - docs/assets/main_Guides.md.bc486650.lean.js | 1 - docs/assets/main_Guides.md.cd4b918a.js | 1 + docs/assets/main_Guides.md.cd4b918a.lean.js | 1 + docs/assets/main_Guides_CoreConcepts.md.19020713.js | 1 - .../main_Guides_CoreConcepts.md.19020713.lean.js | 1 - docs/assets/main_Guides_CoreConcepts.md.70ee820a.js | 1 + .../main_Guides_CoreConcepts.md.70ee820a.lean.js | 1 + ... main_Guides_CoreConcepts_Schemas.md.1a629e7b.js} | 2 +- ..._Guides_CoreConcepts_Schemas.md.1a629e7b.lean.js} | 2 +- ...2b.js => main_Guides_Installation.md.52de62ac.js} | 2 +- ... => main_Guides_Installation.md.52de62ac.lean.js} | 2 +- docs/assets/main_Guides_Introduction.md.16a7a8bb.js | 1 + ... => main_Guides_Introduction.md.16a7a8bb.lean.js} | 2 +- docs/assets/main_Guides_Introduction.md.d3bbe032.js | 1 - docs/hashmap.json | 2 +- docs/index.html | 10 +++++----- docs/main/Cql.html | 12 ++++++------ docs/main/Cql/Adapter.html | 10 +++++----- docs/main/Cql/AlterTable.html | 10 +++++----- docs/main/Cql/Column.html | 10 +++++----- docs/main/Cql/Delete.html | 10 +++++----- docs/main/Cql/Error.html | 10 +++++----- docs/main/Cql/ForeignKey.html | 10 +++++----- docs/main/Cql/Insert.html | 10 +++++----- docs/main/Cql/Migration.html | 10 +++++----- docs/main/Cql/Migrator.html | 10 +++++----- docs/main/Cql/Migrator/MigrationRecord.html | 10 +++++----- docs/main/Cql/PrimaryKey.html | 10 +++++----- docs/main/Cql/PrimaryKeyType.html | 10 +++++----- docs/main/Cql/Query.html | 10 +++++----- docs/main/Cql/Record.html | 10 +++++----- docs/main/Cql/Relations.html | 10 +++++----- docs/main/Cql/Relations/BelongsTo.html | 10 +++++----- docs/main/Cql/Relations/Collection.html | 10 +++++----- docs/main/Cql/Relations/HasMany.html | 10 +++++----- docs/main/Cql/Relations/HasOne.html | 10 +++++----- docs/main/Cql/Relations/ManyCollection.html | 10 +++++----- docs/main/Cql/Relations/ManyToMany.html | 10 +++++----- docs/main/Cql/Repository.html | 10 +++++----- docs/main/Cql/Schema.html | 10 +++++----- docs/main/Cql/Table.html | 10 +++++----- docs/main/Cql/Update.html | 10 +++++----- docs/main/Cql/_index.html | 10 +++++----- docs/main/Guides.html | 12 ++++++------ docs/main/Guides/CoreConcepts.html | 12 ++++++------ docs/main/Guides/CoreConcepts/Schemas.html | 12 ++++++------ docs/main/Guides/Installation.html | 12 ++++++------ docs/main/Guides/Introduction.html | 12 ++++++------ 108 files changed, 244 insertions(+), 244 deletions(-) rename docs/assets/{app.19d9338b.js => app.70057064.js} (86%) rename docs/assets/chunks/{theme.a19b6002.js => theme.88596d17.js} (99%) rename docs/assets/{index.md.01ab8dea.js => index.md.a4e2d95b.js} (99%) rename docs/assets/{index.md.01ab8dea.lean.js => index.md.a4e2d95b.lean.js} (93%) rename docs/assets/{main_Cql.md.0fb10718.js => main_Cql.md.654b6a18.js} (99%) rename docs/assets/{main_Cql.md.0fb10718.lean.js => main_Cql.md.654b6a18.lean.js} (87%) rename docs/assets/{main_Cql_Adapter.md.64761c36.js => main_Cql_Adapter.md.9766ee18.js} (97%) rename docs/assets/{main_Cql_Adapter.md.64761c36.lean.js => main_Cql_Adapter.md.9766ee18.lean.js} (89%) rename docs/assets/{main_Cql_AlterTable.md.ef31cf58.js => main_Cql_AlterTable.md.bafd4126.js} (99%) rename docs/assets/{main_Cql_AlterTable.md.ef31cf58.lean.js => main_Cql_AlterTable.md.bafd4126.lean.js} (98%) rename docs/assets/{main_Cql_Column.md.33eb3586.js => main_Cql_Column.md.f756a2ee.js} (98%) rename docs/assets/{main_Cql_Column.md.33eb3586.lean.js => main_Cql_Column.md.f756a2ee.lean.js} (97%) rename docs/assets/{main_Cql_Delete.md.bf02e9a6.js => main_Cql_Delete.md.18a0bc7d.js} (99%) rename docs/assets/{main_Cql_Delete.md.bf02e9a6.lean.js => main_Cql_Delete.md.18a0bc7d.lean.js} (96%) rename docs/assets/{main_Cql_Error.md.bce74228.js => main_Cql_Error.md.6a11b4b7.js} (95%) rename docs/assets/{main_Cql_Error.md.bce74228.lean.js => main_Cql_Error.md.6a11b4b7.lean.js} (95%) rename docs/assets/{main_Cql_ForeignKey.md.419e170a.js => main_Cql_ForeignKey.md.40555aa1.js} (97%) rename docs/assets/{main_Cql_ForeignKey.md.419e170a.lean.js => main_Cql_ForeignKey.md.40555aa1.lean.js} (97%) rename docs/assets/{main_Cql_Insert.md.daf9a018.js => main_Cql_Insert.md.9423888f.js} (99%) rename docs/assets/{main_Cql_Insert.md.daf9a018.lean.js => main_Cql_Insert.md.9423888f.lean.js} (98%) rename docs/assets/{main_Cql_Migration.md.8b1eb018.js => main_Cql_Migration.md.2dc49fe1.js} (99%) rename docs/assets/{main_Cql_Migration.md.8b1eb018.lean.js => main_Cql_Migration.md.2dc49fe1.lean.js} (99%) rename docs/assets/{main_Cql_Migrator.md.5a68f1e4.js => main_Cql_Migrator.md.a62219bc.js} (99%) rename docs/assets/{main_Cql_Migrator.md.5a68f1e4.lean.js => main_Cql_Migrator.md.a62219bc.lean.js} (98%) rename docs/assets/{main_Cql_Migrator_MigrationRecord.md.83ba86ec.js => main_Cql_Migrator_MigrationRecord.md.fa74ed80.js} (98%) rename docs/assets/{main_Cql_Migrator_MigrationRecord.md.83ba86ec.lean.js => main_Cql_Migrator_MigrationRecord.md.fa74ed80.lean.js} (97%) rename docs/assets/{main_Cql_PrimaryKey.md.124148d7.js => main_Cql_PrimaryKey.md.ae64f81d.js} (97%) rename docs/assets/{main_Cql_PrimaryKey.md.124148d7.lean.js => main_Cql_PrimaryKey.md.ae64f81d.lean.js} (96%) rename docs/assets/{main_Cql_PrimaryKeyType.md.a3984ab5.js => main_Cql_PrimaryKeyType.md.a6dc8024.js} (85%) rename docs/assets/{main_Cql_PrimaryKeyType.md.a3984ab5.lean.js => main_Cql_PrimaryKeyType.md.a6dc8024.lean.js} (85%) rename docs/assets/{main_Cql_Query.md.d4182774.js => main_Cql_Query.md.a0f5a31f.js} (99%) rename docs/assets/{main_Cql_Query.md.d4182774.lean.js => main_Cql_Query.md.a0f5a31f.lean.js} (99%) rename docs/assets/{main_Cql_Record.md.66c3399d.js => main_Cql_Record.md.e2316d6b.js} (99%) rename docs/assets/{main_Cql_Record.md.66c3399d.lean.js => main_Cql_Record.md.e2316d6b.lean.js} (99%) rename docs/assets/{main_Cql_Relations.md.2c142ec3.js => main_Cql_Relations.md.4ad49e17.js} (83%) rename docs/assets/{main_Cql_Relations.md.2c142ec3.lean.js => main_Cql_Relations.md.4ad49e17.lean.js} (83%) rename docs/assets/{main_Cql_Relations_BelongsTo.md.89f434a5.js => main_Cql_Relations_BelongsTo.md.21e1209a.js} (91%) rename docs/assets/{main_Cql_Relations_BelongsTo.md.89f434a5.lean.js => main_Cql_Relations_BelongsTo.md.21e1209a.lean.js} (82%) rename docs/assets/{main_Cql_Relations_Collection.md.ad0d1706.js => main_Cql_Relations_Collection.md.6aeb93ca.js} (99%) rename docs/assets/{main_Cql_Relations_Collection.md.ad0d1706.lean.js => main_Cql_Relations_Collection.md.6aeb93ca.lean.js} (98%) rename docs/assets/{main_Cql_Relations_HasMany.md.e6f16a94.lean.js => main_Cql_Relations_HasMany.md.b1d57567.js} (97%) rename docs/assets/{main_Cql_Relations_HasMany.md.e6f16a94.js => main_Cql_Relations_HasMany.md.b1d57567.lean.js} (97%) rename docs/assets/{main_Cql_Relations_HasOne.md.92a5bef9.js => main_Cql_Relations_HasOne.md.3091b0a2.js} (91%) rename docs/assets/{main_Cql_Relations_HasOne.md.92a5bef9.lean.js => main_Cql_Relations_HasOne.md.3091b0a2.lean.js} (81%) rename docs/assets/{main_Cql_Relations_ManyCollection.md.b063b8e4.js => main_Cql_Relations_ManyCollection.md.59e9d786.js} (99%) rename docs/assets/{main_Cql_Relations_ManyCollection.md.b063b8e4.lean.js => main_Cql_Relations_ManyCollection.md.59e9d786.lean.js} (98%) rename docs/assets/{main_Cql_Relations_ManyToMany.md.35eda857.js => main_Cql_Relations_ManyToMany.md.d0457f86.js} (98%) rename docs/assets/{main_Cql_Relations_ManyToMany.md.35eda857.lean.js => main_Cql_Relations_ManyToMany.md.d0457f86.lean.js} (83%) rename docs/assets/{main_Cql_Repository.md.a57121a0.js => main_Cql_Repository.md.f6c7bdb4.js} (99%) rename docs/assets/{main_Cql_Repository.md.a57121a0.lean.js => main_Cql_Repository.md.f6c7bdb4.lean.js} (98%) rename docs/assets/{main_Cql_Schema.md.47d48e43.js => main_Cql_Schema.md.c7bffc60.js} (99%) rename docs/assets/{main_Cql_Schema.md.47d48e43.lean.js => main_Cql_Schema.md.c7bffc60.lean.js} (98%) rename docs/assets/{main_Cql_Table.md.0c401476.js => main_Cql_Table.md.e3cf3370.js} (99%) rename docs/assets/{main_Cql_Table.md.0c401476.lean.js => main_Cql_Table.md.e3cf3370.lean.js} (99%) rename docs/assets/{main_Cql_Update.md.6a2e093e.js => main_Cql_Update.md.06ebbdf5.js} (99%) rename docs/assets/{main_Cql_Update.md.6a2e093e.lean.js => main_Cql_Update.md.06ebbdf5.lean.js} (98%) rename docs/assets/{main_Cql__index.md.e62d8c9a.js => main_Cql__index.md.a4a8b6b3.js} (98%) rename docs/assets/{main_Cql__index.md.e62d8c9a.lean.js => main_Cql__index.md.a4a8b6b3.lean.js} (97%) delete mode 100644 docs/assets/main_Guides.md.bc486650.js delete mode 100644 docs/assets/main_Guides.md.bc486650.lean.js create mode 100644 docs/assets/main_Guides.md.cd4b918a.js create mode 100644 docs/assets/main_Guides.md.cd4b918a.lean.js delete mode 100644 docs/assets/main_Guides_CoreConcepts.md.19020713.js delete mode 100644 docs/assets/main_Guides_CoreConcepts.md.19020713.lean.js create mode 100644 docs/assets/main_Guides_CoreConcepts.md.70ee820a.js create mode 100644 docs/assets/main_Guides_CoreConcepts.md.70ee820a.lean.js rename docs/assets/{main_Guides_CoreConcepts_Schemas.md.068c4d1d.js => main_Guides_CoreConcepts_Schemas.md.1a629e7b.js} (77%) rename docs/assets/{main_Guides_CoreConcepts_Schemas.md.068c4d1d.lean.js => main_Guides_CoreConcepts_Schemas.md.1a629e7b.lean.js} (80%) rename docs/assets/{main_Guides_Installation.md.46d7f52b.js => main_Guides_Installation.md.52de62ac.js} (77%) rename docs/assets/{main_Guides_Installation.md.46d7f52b.lean.js => main_Guides_Installation.md.52de62ac.lean.js} (66%) create mode 100644 docs/assets/main_Guides_Introduction.md.16a7a8bb.js rename docs/assets/{main_Guides_Introduction.md.d3bbe032.lean.js => main_Guides_Introduction.md.16a7a8bb.lean.js} (58%) delete mode 100644 docs/assets/main_Guides_Introduction.md.d3bbe032.js diff --git a/docs/404.html b/docs/404.html index 085aced..f232bac 100644 --- a/docs/404.html +++ b/docs/404.html @@ -6,14 +6,14 @@ 404 | Cql Documentation - +
Skip to content

404

PAGE NOT FOUND

But if you don't change your direction, and if you keep looking, you may end up where you are heading.
- - + + \ No newline at end of file diff --git a/docs/assets/app.19d9338b.js b/docs/assets/app.70057064.js similarity index 86% rename from docs/assets/app.19d9338b.js rename to docs/assets/app.70057064.js index 247913d..9bcdc38 100644 --- a/docs/assets/app.19d9338b.js +++ b/docs/assets/app.70057064.js @@ -1,4 +1,4 @@ -import{t as to}from"./chunks/theme.a19b6002.js";import"./app.19d9338b.js";/** +import{t as to}from"./chunks/theme.88596d17.js";import"./app.70057064.js";/** * @vue/shared v3.4.38 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT @@ -14,5 +14,5 @@ import{t as to}from"./chunks/theme.a19b6002.js";import"./app.19d9338b.js";/** * @vue/runtime-dom v3.4.38 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/const sc="http://www.w3.org/2000/svg",rc="http://www.w3.org/1998/Math/MathML",Fe=typeof document<"u"?document:null,er=Fe&&Fe.createElement("template"),ic={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t==="svg"?Fe.createElementNS(sc,e):t==="mathml"?Fe.createElementNS(rc,e):n?Fe.createElement(e,{is:n}):Fe.createElement(e);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>Fe.createTextNode(e),createComment:e=>Fe.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Fe.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,i){const o=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===i||!(r=r.nextSibling)););else{er.innerHTML=s==="svg"?`${e}`:s==="mathml"?`${e}`:e;const l=er.content;if(s==="svg"||s==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Ve="transition",Tt="animation",Nt=Symbol("_vtc"),Ui=(e,{slots:t})=>hn(zo,oc(e),t);Ui.displayName="Transition";const ki={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};Ui.props=ce({},ni,ki);const et=(e,t=[])=>{j(e)?e.forEach(n=>n(...t)):e&&e(...t)},tr=e=>e?j(e)?e.some(t=>t.length>1):e.length>1:!1;function oc(e){const t={};for(const S in e)S in ki||(t[S]=e[S]);if(e.css===!1)return t;const{name:n="v",type:s,duration:r,enterFromClass:i=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=i,appearActiveClass:u=o,appearToClass:d=l,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:m=`${n}-leave-active`,leaveToClass:E=`${n}-leave-to`}=e,O=lc(r),F=O&&O[0],G=O&&O[1],{onBeforeEnter:K,onEnter:z,onEnterCancelled:p,onLeave:x,onLeaveCancelled:L,onBeforeAppear:T=K,onAppear:$=z,onAppearCancelled:k=p}=t,M=(S,q,Z)=>{tt(S,q?d:l),tt(S,q?u:o),Z&&Z()},R=(S,q)=>{S._isLeaving=!1,tt(S,h),tt(S,E),tt(S,m),q&&q()},U=S=>(q,Z)=>{const se=S?$:z,H=()=>M(q,S,Z);et(se,[q,H]),nr(()=>{tt(q,S?c:i),je(q,S?d:l),tr(se)||sr(q,s,F,H)})};return ce(t,{onBeforeEnter(S){et(K,[S]),je(S,i),je(S,o)},onBeforeAppear(S){et(T,[S]),je(S,c),je(S,u)},onEnter:U(!1),onAppear:U(!0),onLeave(S,q){S._isLeaving=!0;const Z=()=>R(S,q);je(S,h),je(S,m),fc(),nr(()=>{S._isLeaving&&(tt(S,h),je(S,E),tr(x)||sr(S,s,G,Z))}),et(x,[S,Z])},onEnterCancelled(S){M(S,!1),et(p,[S])},onAppearCancelled(S){M(S,!0),et(k,[S])},onLeaveCancelled(S){R(S),et(L,[S])}})}function lc(e){if(e==null)return null;if(te(e))return[Vn(e.enter),Vn(e.leave)];{const t=Vn(e);return[t,t]}}function Vn(e){return lo(e)}function je(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Nt]||(e[Nt]=new Set)).add(t)}function tt(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const n=e[Nt];n&&(n.delete(t),n.size||(e[Nt]=void 0))}function nr(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let cc=0;function sr(e,t,n,s){const r=e._endId=++cc,i=()=>{r===e._endId&&s()};if(n)return setTimeout(i,n);const{type:o,timeout:l,propCount:c}=ac(e,t);if(!o)return s();const u=o+"end";let d=0;const h=()=>{e.removeEventListener(u,m),i()},m=E=>{E.target===e&&++d>=c&&h()};setTimeout(()=>{d(n[O]||"").split(", "),r=s(`${Ve}Delay`),i=s(`${Ve}Duration`),o=rr(r,i),l=s(`${Tt}Delay`),c=s(`${Tt}Duration`),u=rr(l,c);let d=null,h=0,m=0;t===Ve?o>0&&(d=Ve,h=o,m=i.length):t===Tt?u>0&&(d=Tt,h=u,m=c.length):(h=Math.max(o,u),d=h>0?o>u?Ve:Tt:null,m=d?d===Ve?i.length:c.length:0);const E=d===Ve&&/\b(transform|all)(,|$)/.test(s(`${Ve}Property`).toString());return{type:d,timeout:h,propCount:m,hasTransform:E}}function rr(e,t){for(;e.lengthir(n)+ir(e[s])))}function ir(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function fc(){return document.body.offsetHeight}function uc(e,t,n){const s=e[Nt];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const or=Symbol("_vod"),dc=Symbol("_vsh"),hc=Symbol(""),pc=/(^|;)\s*display\s*:/;function gc(e,t,n){const s=e.style,r=re(n);let i=!1;if(n&&!r){if(t)if(re(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();n[l]==null&&sn(s,l,"")}else for(const o in t)n[o]==null&&sn(s,o,"");for(const o in n)o==="display"&&(i=!0),sn(s,o,n[o])}else if(r){if(t!==n){const o=s[hc];o&&(n+=";"+o),s.cssText=n,i=pc.test(n)}}else t&&e.removeAttribute("style");or in e&&(e[or]=i?s.display:"",e[dc]&&(s.display="none"))}const lr=/\s*!important$/;function sn(e,t,n){if(j(n))n.forEach(s=>sn(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=mc(e,t);lr.test(n)?e.setProperty(ct(s),n.replace(lr,""),"important"):e[s]=n}}const cr=["Webkit","Moz","ms"],jn={};function mc(e,t){const n=jn[t];if(n)return n;let s=Me(t);if(s!=="filter"&&s in e)return jn[t]=s;s=mn(s);for(let r=0;rUn||(xc.then(()=>Un=0),Un=Date.now());function wc(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;Se(Ec(s,n.value),t,5,[s])};return n.value=e,n.attached=vc(),n}function Ec(e,t){if(j(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const hr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Tc=(e,t,n,s,r,i)=>{const o=r==="svg";t==="class"?uc(e,s,o):t==="style"?gc(e,n,s):Ht(t)?rs(t)||bc(e,t,n,s,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Sc(e,t,s,o))?(_c(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&fr(e,t,s,o,i,t!=="value")):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),fr(e,t,s,o))};function Sc(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&hr(t)&&B(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return hr(t)&&re(n)?!1:t in e}const pr=e=>{const t=e.props["onUpdate:modelValue"]||!1;return j(t)?n=>Qt(t,n):t};function Ac(e){e.target.composing=!0}function gr(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const kn=Symbol("_assign"),La={created(e,{modifiers:{lazy:t,trim:n,number:s}},r){e[kn]=pr(r);const i=s||r.props&&r.props.type==="number";dt(e,t?"change":"input",o=>{if(o.target.composing)return;let l=e.value;n&&(l=l.trim()),i&&(l=qn(l)),e[kn](l)}),n&&dt(e,"change",()=>{e.value=e.value.trim()}),t||(dt(e,"compositionstart",Ac),dt(e,"compositionend",gr),dt(e,"change",gr))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:r,number:i}},o){if(e[kn]=pr(o),e.composing)return;const l=(i||e.type==="number")&&!/^0\d/.test(e.value)?qn(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(s&&t===n||r&&e.value.trim()===c)||(e.value=c))}},Rc=["ctrl","shift","alt","meta"],Mc={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Rc.some(n=>e[`${n}Key`]&&!t.includes(n))},Ia=(e,t)=>{const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=(r,...i)=>{for(let o=0;o{const t=Oc().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Fc(s);if(r)return n(r,!0,Ic(r))},t};function Ic(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Fc(e){return re(e)?document.querySelector(e):e}const Fa=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},Nc="modulepreload",Hc=function(e){return"/cql/"+e},_r={},$c=function(t,n,s){if(!n||n.length===0)return t();const r=document.getElementsByTagName("link");return Promise.all(n.map(i=>{if(i=Hc(i),i in _r)return;_r[i]=!0;const o=i.endsWith(".css"),l=o?'[rel="stylesheet"]':"";if(!!s)for(let d=r.length-1;d>=0;d--){const h=r[d];if(h.href===i&&(!o||h.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${i}"]${l}`))return;const u=document.createElement("link");if(u.rel=o?"stylesheet":Nc,o||(u.as="script",u.crossOrigin=""),u.href=i,document.head.appendChild(u),o)return new Promise((d,h)=>{u.addEventListener("load",d),u.addEventListener("error",()=>h(new Error(`Unable to preload CSS for ${i}`)))})})).then(()=>t()).catch(i=>{const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=i,window.dispatchEvent(o),!o.defaultPrevented)throw i})},Vc=JSON.parse('{"lang":"en-US","dir":"ltr","title":"Cql Documentation","description":"My awesome Crystal project!","base":"/cql/","head":[],"appearance":true,"themeConfig":{"search":{"provider":"SimpleSearch","options":{"fields":["title","description","content"],"storeFields":["title","description"],"searchOptions":{"boost":{"title":2},"prefix":true,"fuzzy":0.2}}},"outline":{"level":[2,6],"label":"On this page"},"nav":[{"text":"Guides","link":"/main/Guides"},{"text":"API","link":"/main/Cql"}],"sidebar":{"main":[{"text":"Cql API","items":[{"text":"Cql Guides","link":"/main/Guides","collapsible":true,"collapsed":true,"items":[{"text":"Getting Started","link":"/main/Guides/Introduction"},{"text":"Installation","link":"/main/Guides/Installation"},{"text":"Core Concepts","link":"/main/Guides/CoreConcepts","items":[{"text":"Schemas","link":"/main/Guides/CoreConcepts/Schemas"}]},{"text":"Repository","link":"/main/Guide/Repository"}]},{"text":"Cql","link":"/main/Cql","collapsible":true,"collapsed":true,"items":[{"text":"Adapter","link":"/main/Cql/Adapter"},{"text":"AlterTable","link":"/main/Cql/AlterTable"},{"text":"Column","link":"/main/Cql/Column"},{"text":"Delete","link":"/main/Cql/Delete"},{"text":"Error","link":"/main/Cql/Error"},{"text":"ForeignKey","link":"/main/Cql/ForeignKey"},{"text":"Index","link":"/main/Cql/_index"},{"text":"Insert","link":"/main/Cql/Insert"},{"text":"Migration","link":"/main/Cql/Migration"},{"text":"Migrator","link":"/main/Cql/Migrator","collapsible":true,"collapsed":true,"items":[{"text":"MigrationRecord","link":"/main/Cql/Migrator/MigrationRecord"}]},{"text":"PrimaryKey","link":"/main/Cql/PrimaryKey"},{"text":"PrimaryKeyType","link":"/main/Cql/PrimaryKeyType"},{"text":"Query","link":"/main/Cql/Query"},{"text":"Record","link":"/main/Cql/Record"},{"text":"Relations","link":"/main/Cql/Relations","collapsible":true,"collapsed":true,"items":[{"text":"BelongsTo","link":"/main/Cql/Relations/BelongsTo"},{"text":"Collection","link":"/main/Cql/Relations/Collection"},{"text":"HasMany","link":"/main/Cql/Relations/HasMany"},{"text":"HasOne","link":"/main/Cql/Relations/HasOne"},{"text":"ManyCollection","link":"/main/Cql/Relations/ManyCollection"},{"text":"ManyToMany","link":"/main/Cql/Relations/ManyToMany"}]},{"text":"Repository","link":"/main/Cql/Repository"},{"text":"Schema","link":"/main/Cql/Schema"},{"text":"Table","link":"/main/Cql/Table"},{"text":"Update","link":"/main/Cql/Update"}]}]}]},"socialLinks":[{"icon":"github","link":"https://github.com/azutoolkit/cql"}]},"locales":{},"scrollOffset":90,"cleanUrls":false}'),Di=/^[a-z]+:/i,Na=/^pathname:\/\//,Ha="vitepress-theme-appearance",Bi=/#.*$/,jc=/(index)?\.(md|html)$/,he=typeof document<"u",qi={relativePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function Uc(e,t,n=!1){if(t===void 0)return!1;if(e=yr(`/${e}`),n)return new RegExp(t).test(e);if(yr(t)!==e)return!1;const s=t.match(Bi);return s?(he?location.hash:"")===s[0]:!0}function yr(e){return decodeURI(e).replace(Bi,"").replace(jc,"")}function kc(e){return Di.test(e)}function Dc(e,t){var s,r,i,o,l,c,u;const n=Object.keys(e.locales).find(d=>d!=="root"&&!kc(d)&&Uc(t,`/${d}/`,!0))||"root";return Object.assign({},e,{localeIndex:n,lang:((s=e.locales[n])==null?void 0:s.lang)??e.lang,dir:((r=e.locales[n])==null?void 0:r.dir)??e.dir,title:((i=e.locales[n])==null?void 0:i.title)??e.title,titleTemplate:((o=e.locales[n])==null?void 0:o.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:Wi(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(u=e.locales[n])==null?void 0:u.themeConfig}})}function Ki(e,t){const n=t.title||e.title,s=t.titleTemplate??e.titleTemplate;if(typeof s=="string"&&s.includes(":title"))return s.replace(/:title/g,n);const r=Bc(e.title,s);return`${n}${r}`}function Bc(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function qc(e,t){const[n,s]=t;if(n!=="meta")return!1;const r=Object.entries(s)[0];return r==null?!1:e.some(([i,o])=>i===n&&o[r[0]]===r[1])}function Wi(e,t){return[...e.filter(n=>!qc(t,n)),...t]}const Kc=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,Wc=/^[a-z]:/i;function br(e){const t=Wc.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(Kc,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const Gi=Symbol(),qe=Uo(Vc);function Gc(e){const t=Re(()=>Dc(qe.value,e.data.relativePath));return{site:t,theme:Re(()=>t.value.themeConfig),page:Re(()=>e.data),frontmatter:Re(()=>e.data.frontmatter),params:Re(()=>e.data.params),lang:Re(()=>t.value.lang),dir:Re(()=>t.value.dir),localeIndex:Re(()=>t.value.localeIndex||"root"),title:Re(()=>Ki(t.value,e.data)),description:Re(()=>e.data.description||t.value.description),isDark:Jr(!1)}}function Jc(){const e=Ct(Gi);if(!e)throw new Error("vitepress data not properly injected in app");return e}function Yc(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function Cr(e){return Di.test(e)||e.startsWith(".")?e:Yc(qe.value.base,e)}function Ji(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),he){const n="/cql/";t=br(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let s=__VP_HASH_MAP__[t.toLowerCase()];s||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",s=__VP_HASH_MAP__[t.toLowerCase()]),t=`${n}assets/${t}.${s}.js`}else t=`./${br(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let rn=[];function $a(e){rn.push(e),En(()=>{rn=rn.filter(t=>t!==e)})}const Yi=Symbol(),xr="http://a.com",Xc=()=>({path:"/",component:null,data:qi});function zc(e,t){const n=yn(Xc()),s={route:n,go:r};async function r(l=he?location.href:"/"){var u,d;await((u=s.onBeforeRouteChange)==null?void 0:u.call(s,l));const c=new URL(l,xr);qe.value.cleanUrls||!c.pathname.endsWith("/")&&!c.pathname.endsWith(".html")&&(c.pathname+=".html",l=c.pathname+c.search+c.hash),he&&l!==location.href&&(history.replaceState({scrollPosition:window.scrollY},document.title),history.pushState(null,"",l)),await o(l),await((d=s.onAfterRouteChanged)==null?void 0:d.call(s,l))}let i=null;async function o(l,c=0,u=!1){const d=new URL(l,xr),h=i=d.pathname;try{let m=await e(h);if(i===h){i=null;const{default:E,__pageData:O}=m;if(!E)throw new Error(`Invalid route component: ${E}`);n.path=he?h:Cr(h),n.component=Zt(E),n.data=Zt(O),he&&Zr(()=>{let F=qe.value.base+O.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!qe.value.cleanUrls&&!F.endsWith("/")&&(F+=".html"),F!==d.pathname&&(d.pathname=F,l=F+d.search+d.hash,history.replaceState(null,"",l)),d.hash&&!c){let G=null;try{G=document.querySelector(decodeURIComponent(d.hash))}catch(K){console.warn(K)}if(G){vr(G,d.hash);return}}window.scrollTo(0,c)})}}catch(m){if(!/fetch/.test(m.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(m),!u)try{const E=await fetch(qe.value.base+"hashmap.json");window.__VP_HASH_MAP__=await E.json(),await o(l,c,!0);return}catch{}i===h&&(i=null,n.path=he?h:Cr(h),n.component=t?Zt(t):null,n.data=qi)}}return he&&(window.addEventListener("click",l=>{if(l.target.closest("button"))return;const u=l.target.closest("a");if(u&&!u.closest(".vp-raw")&&(u instanceof SVGElement||!u.download)){const{target:d}=u,{href:h,origin:m,pathname:E,hash:O,search:F}=new URL(u.href instanceof SVGAnimatedString?u.href.animVal:u.href,u.baseURI),G=window.location,K=E.match(/\.\w+$/);!l.ctrlKey&&!l.shiftKey&&!l.altKey&&!l.metaKey&&d!=="_blank"&&m===G.origin&&!(K&&K[0]!==".html")&&(l.preventDefault(),E===G.pathname&&F===G.search?O&&O!==G.hash&&(history.pushState(null,"",O),window.dispatchEvent(new Event("hashchange")),vr(u,O,u.classList.contains("header-anchor"))):r(h))}},{capture:!0}),window.addEventListener("popstate",l=>{o(location.href,l.state&&l.state.scrollPosition||0)}),window.addEventListener("hashchange",l=>{l.preventDefault()})),s}function Qc(){const e=Ct(Yi);if(!e)throw new Error("useRouter() is called without provider.");return e}function Xi(){return Qc().route}function vr(e,t,n=!1){let s=null;try{s=e.classList.contains("header-anchor")?e:document.querySelector(decodeURIComponent(t))}catch(r){console.warn(r)}if(s){let r=qe.value.scrollOffset;typeof r=="string"&&(r=document.querySelector(r).getBoundingClientRect().bottom+24);const i=parseInt(window.getComputedStyle(s).paddingTop,10),o=window.scrollY+s.getBoundingClientRect().top-r+i;!n||Math.abs(o-window.scrollY)>window.innerHeight?window.scrollTo(0,o):window.scrollTo({left:0,top:o,behavior:"smooth"})}}const wr=()=>rn.forEach(e=>e()),Zc=xn({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=Xi();return()=>hn(e.as,{style:{position:"relative"}},[t.component?hn(t.component,{onVnodeMounted:wr,onVnodeUpdated:wr}):"404 Page Not Found"])}}),ea={class:"VPDocAsideCarbonAds"},Va=xn({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(e){const t=()=>null;return(n,s)=>(vs(),ql("div",ea,[le(Xr(t),{"carbon-ads":n.carbonAds},null,8,["carbon-ads"])]))}});function ta(e,t){let n=[],s=!0;const r=i=>{if(s){s=!1;return}n.forEach(o=>document.head.removeChild(o)),n=[],i.forEach(o=>{const l=na(o);document.head.appendChild(l),n.push(l)})};Ai(()=>{const i=e.data,o=t.value,l=i&&i.description,c=i&&i.frontmatter.head||[];document.title=Ki(o,i),document.querySelector("meta[name=description]").setAttribute("content",l||o.description),r(Wi(o.head,ra(c)))})}function na([e,t,n]){const s=document.createElement(e);for(const r in t)s.setAttribute(r,t[r]);return n&&(s.innerHTML=n),s}function sa(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function ra(e){return e.filter(t=>!sa(t))}const Bn=new Set,zi=()=>document.createElement("link"),ia=e=>{const t=zi();t.rel="prefetch",t.href=e,document.head.appendChild(t)},oa=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let zt;const la=he&&(zt=zi())&&zt.relList&&zt.relList.supports&&zt.relList.supports("prefetch")?ia:oa;function ca(){if(!he||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const s=()=>{n&&n.disconnect(),n=new IntersectionObserver(i=>{i.forEach(o=>{if(o.isIntersecting){const l=o.target;n.unobserve(l);const{pathname:c}=l;if(!Bn.has(c)){Bn.add(c);const u=Ji(c);la(u)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(i=>{const{target:o}=i,{hostname:l,pathname:c}=new URL(i.href instanceof SVGAnimatedString?i.href.animVal:i.href,i.baseURI),u=c.match(/\.\w+$/);u&&u[0]!==".html"||o!=="_blank"&&l===location.hostname&&(c!==location.pathname?n.observe(i):Bn.add(c))})})};$t(s);const r=Xi();tn(()=>r.path,s),En(()=>{n&&n.disconnect()})}const aa=xn({setup(e,{slots:t}){const n=Jr(!1);return $t(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function fa(){if(he){const e=new Map;window.addEventListener("click",t=>{var s;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const r=n.parentElement,i=(s=n.nextElementSibling)==null?void 0:s.nextElementSibling;if(!r||!i)return;const o=/language-(shellscript|shell|bash|sh|zsh)/.test(r.className);let l="";i.querySelectorAll("span.line:not(.diff.remove)").forEach(c=>l+=(c.textContent||"")+` +**/const sc="http://www.w3.org/2000/svg",rc="http://www.w3.org/1998/Math/MathML",Fe=typeof document<"u"?document:null,er=Fe&&Fe.createElement("template"),ic={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t==="svg"?Fe.createElementNS(sc,e):t==="mathml"?Fe.createElementNS(rc,e):n?Fe.createElement(e,{is:n}):Fe.createElement(e);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>Fe.createTextNode(e),createComment:e=>Fe.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Fe.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,i){const o=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===i||!(r=r.nextSibling)););else{er.innerHTML=s==="svg"?`${e}`:s==="mathml"?`${e}`:e;const l=er.content;if(s==="svg"||s==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Ve="transition",Tt="animation",Nt=Symbol("_vtc"),Ui=(e,{slots:t})=>hn(zo,oc(e),t);Ui.displayName="Transition";const ki={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};Ui.props=ce({},ni,ki);const et=(e,t=[])=>{j(e)?e.forEach(n=>n(...t)):e&&e(...t)},tr=e=>e?j(e)?e.some(t=>t.length>1):e.length>1:!1;function oc(e){const t={};for(const S in e)S in ki||(t[S]=e[S]);if(e.css===!1)return t;const{name:n="v",type:s,duration:r,enterFromClass:i=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=i,appearActiveClass:u=o,appearToClass:d=l,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:m=`${n}-leave-active`,leaveToClass:E=`${n}-leave-to`}=e,O=lc(r),F=O&&O[0],G=O&&O[1],{onBeforeEnter:K,onEnter:z,onEnterCancelled:p,onLeave:x,onLeaveCancelled:L,onBeforeAppear:T=K,onAppear:$=z,onAppearCancelled:k=p}=t,M=(S,q,Z)=>{tt(S,q?d:l),tt(S,q?u:o),Z&&Z()},R=(S,q)=>{S._isLeaving=!1,tt(S,h),tt(S,E),tt(S,m),q&&q()},U=S=>(q,Z)=>{const se=S?$:z,H=()=>M(q,S,Z);et(se,[q,H]),nr(()=>{tt(q,S?c:i),je(q,S?d:l),tr(se)||sr(q,s,F,H)})};return ce(t,{onBeforeEnter(S){et(K,[S]),je(S,i),je(S,o)},onBeforeAppear(S){et(T,[S]),je(S,c),je(S,u)},onEnter:U(!1),onAppear:U(!0),onLeave(S,q){S._isLeaving=!0;const Z=()=>R(S,q);je(S,h),je(S,m),fc(),nr(()=>{S._isLeaving&&(tt(S,h),je(S,E),tr(x)||sr(S,s,G,Z))}),et(x,[S,Z])},onEnterCancelled(S){M(S,!1),et(p,[S])},onAppearCancelled(S){M(S,!0),et(k,[S])},onLeaveCancelled(S){R(S),et(L,[S])}})}function lc(e){if(e==null)return null;if(te(e))return[Vn(e.enter),Vn(e.leave)];{const t=Vn(e);return[t,t]}}function Vn(e){return lo(e)}function je(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Nt]||(e[Nt]=new Set)).add(t)}function tt(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const n=e[Nt];n&&(n.delete(t),n.size||(e[Nt]=void 0))}function nr(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let cc=0;function sr(e,t,n,s){const r=e._endId=++cc,i=()=>{r===e._endId&&s()};if(n)return setTimeout(i,n);const{type:o,timeout:l,propCount:c}=ac(e,t);if(!o)return s();const u=o+"end";let d=0;const h=()=>{e.removeEventListener(u,m),i()},m=E=>{E.target===e&&++d>=c&&h()};setTimeout(()=>{d(n[O]||"").split(", "),r=s(`${Ve}Delay`),i=s(`${Ve}Duration`),o=rr(r,i),l=s(`${Tt}Delay`),c=s(`${Tt}Duration`),u=rr(l,c);let d=null,h=0,m=0;t===Ve?o>0&&(d=Ve,h=o,m=i.length):t===Tt?u>0&&(d=Tt,h=u,m=c.length):(h=Math.max(o,u),d=h>0?o>u?Ve:Tt:null,m=d?d===Ve?i.length:c.length:0);const E=d===Ve&&/\b(transform|all)(,|$)/.test(s(`${Ve}Property`).toString());return{type:d,timeout:h,propCount:m,hasTransform:E}}function rr(e,t){for(;e.lengthir(n)+ir(e[s])))}function ir(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function fc(){return document.body.offsetHeight}function uc(e,t,n){const s=e[Nt];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const or=Symbol("_vod"),dc=Symbol("_vsh"),hc=Symbol(""),pc=/(^|;)\s*display\s*:/;function gc(e,t,n){const s=e.style,r=re(n);let i=!1;if(n&&!r){if(t)if(re(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();n[l]==null&&sn(s,l,"")}else for(const o in t)n[o]==null&&sn(s,o,"");for(const o in n)o==="display"&&(i=!0),sn(s,o,n[o])}else if(r){if(t!==n){const o=s[hc];o&&(n+=";"+o),s.cssText=n,i=pc.test(n)}}else t&&e.removeAttribute("style");or in e&&(e[or]=i?s.display:"",e[dc]&&(s.display="none"))}const lr=/\s*!important$/;function sn(e,t,n){if(j(n))n.forEach(s=>sn(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=mc(e,t);lr.test(n)?e.setProperty(ct(s),n.replace(lr,""),"important"):e[s]=n}}const cr=["Webkit","Moz","ms"],jn={};function mc(e,t){const n=jn[t];if(n)return n;let s=Me(t);if(s!=="filter"&&s in e)return jn[t]=s;s=mn(s);for(let r=0;rUn||(xc.then(()=>Un=0),Un=Date.now());function wc(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;Se(Ec(s,n.value),t,5,[s])};return n.value=e,n.attached=vc(),n}function Ec(e,t){if(j(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const hr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Tc=(e,t,n,s,r,i)=>{const o=r==="svg";t==="class"?uc(e,s,o):t==="style"?gc(e,n,s):Ht(t)?rs(t)||bc(e,t,n,s,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Sc(e,t,s,o))?(_c(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&fr(e,t,s,o,i,t!=="value")):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),fr(e,t,s,o))};function Sc(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&hr(t)&&B(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return hr(t)&&re(n)?!1:t in e}const pr=e=>{const t=e.props["onUpdate:modelValue"]||!1;return j(t)?n=>Qt(t,n):t};function Ac(e){e.target.composing=!0}function gr(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const kn=Symbol("_assign"),La={created(e,{modifiers:{lazy:t,trim:n,number:s}},r){e[kn]=pr(r);const i=s||r.props&&r.props.type==="number";dt(e,t?"change":"input",o=>{if(o.target.composing)return;let l=e.value;n&&(l=l.trim()),i&&(l=qn(l)),e[kn](l)}),n&&dt(e,"change",()=>{e.value=e.value.trim()}),t||(dt(e,"compositionstart",Ac),dt(e,"compositionend",gr),dt(e,"change",gr))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:r,number:i}},o){if(e[kn]=pr(o),e.composing)return;const l=(i||e.type==="number")&&!/^0\d/.test(e.value)?qn(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(s&&t===n||r&&e.value.trim()===c)||(e.value=c))}},Rc=["ctrl","shift","alt","meta"],Mc={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Rc.some(n=>e[`${n}Key`]&&!t.includes(n))},Ia=(e,t)=>{const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=(r,...i)=>{for(let o=0;o{const t=Oc().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Fc(s);if(r)return n(r,!0,Ic(r))},t};function Ic(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Fc(e){return re(e)?document.querySelector(e):e}const Fa=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},Nc="modulepreload",Hc=function(e){return"/cql/"+e},_r={},$c=function(t,n,s){if(!n||n.length===0)return t();const r=document.getElementsByTagName("link");return Promise.all(n.map(i=>{if(i=Hc(i),i in _r)return;_r[i]=!0;const o=i.endsWith(".css"),l=o?'[rel="stylesheet"]':"";if(!!s)for(let d=r.length-1;d>=0;d--){const h=r[d];if(h.href===i&&(!o||h.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${i}"]${l}`))return;const u=document.createElement("link");if(u.rel=o?"stylesheet":Nc,o||(u.as="script",u.crossOrigin=""),u.href=i,document.head.appendChild(u),o)return new Promise((d,h)=>{u.addEventListener("load",d),u.addEventListener("error",()=>h(new Error(`Unable to preload CSS for ${i}`)))})})).then(()=>t()).catch(i=>{const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=i,window.dispatchEvent(o),!o.defaultPrevented)throw i})},Vc=JSON.parse('{"lang":"en-US","dir":"ltr","title":"Cql Documentation","description":"My awesome Crystal project!","base":"/cql/","head":[],"appearance":true,"themeConfig":{"aside":true,"search":{"provider":"SimpleSearch","options":{"fields":["title","description","content"],"storeFields":["title","description"],"searchOptions":{"boost":{"title":2},"prefix":true,"fuzzy":0.2}}},"outline":{"level":[2,6],"label":"On this page"},"nav":[{"text":"Guides","link":"/main/Guides"},{"text":"API","link":"/main/Cql"}],"sidebar":{"main":[{"text":"Cql API","items":[{"text":"Cql Guides","link":"/main/Guides","collapsible":true,"collapsed":true,"items":[{"text":"Getting Started","link":"/main/Guides/Introduction"},{"text":"Installation","link":"/main/Guides/Installation"},{"text":"Core Concepts","link":"/main/Guides/CoreConcepts","items":[{"text":"Schemas","link":"/main/Guides/CoreConcepts/Schemas"}]},{"text":"Repository","link":"/main/Guide/Repository"}]},{"text":"Cql","link":"/main/Cql","collapsible":true,"collapsed":true,"items":[{"text":"Adapter","link":"/main/Cql/Adapter"},{"text":"AlterTable","link":"/main/Cql/AlterTable"},{"text":"Column","link":"/main/Cql/Column"},{"text":"Delete","link":"/main/Cql/Delete"},{"text":"Error","link":"/main/Cql/Error"},{"text":"ForeignKey","link":"/main/Cql/ForeignKey"},{"text":"Index","link":"/main/Cql/_index"},{"text":"Insert","link":"/main/Cql/Insert"},{"text":"Migration","link":"/main/Cql/Migration"},{"text":"Migrator","link":"/main/Cql/Migrator","collapsible":true,"collapsed":true,"items":[{"text":"MigrationRecord","link":"/main/Cql/Migrator/MigrationRecord"}]},{"text":"PrimaryKey","link":"/main/Cql/PrimaryKey"},{"text":"PrimaryKeyType","link":"/main/Cql/PrimaryKeyType"},{"text":"Query","link":"/main/Cql/Query"},{"text":"Record","link":"/main/Cql/Record"},{"text":"Relations","link":"/main/Cql/Relations","collapsible":true,"collapsed":true,"items":[{"text":"BelongsTo","link":"/main/Cql/Relations/BelongsTo"},{"text":"Collection","link":"/main/Cql/Relations/Collection"},{"text":"HasMany","link":"/main/Cql/Relations/HasMany"},{"text":"HasOne","link":"/main/Cql/Relations/HasOne"},{"text":"ManyCollection","link":"/main/Cql/Relations/ManyCollection"},{"text":"ManyToMany","link":"/main/Cql/Relations/ManyToMany"}]},{"text":"Repository","link":"/main/Cql/Repository"},{"text":"Schema","link":"/main/Cql/Schema"},{"text":"Table","link":"/main/Cql/Table"},{"text":"Update","link":"/main/Cql/Update"}]}]}]},"socialLinks":[{"icon":"github","link":"https://github.com/azutoolkit/cql"}]},"locales":{},"scrollOffset":90,"cleanUrls":false}'),Di=/^[a-z]+:/i,Na=/^pathname:\/\//,Ha="vitepress-theme-appearance",Bi=/#.*$/,jc=/(index)?\.(md|html)$/,he=typeof document<"u",qi={relativePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function Uc(e,t,n=!1){if(t===void 0)return!1;if(e=yr(`/${e}`),n)return new RegExp(t).test(e);if(yr(t)!==e)return!1;const s=t.match(Bi);return s?(he?location.hash:"")===s[0]:!0}function yr(e){return decodeURI(e).replace(Bi,"").replace(jc,"")}function kc(e){return Di.test(e)}function Dc(e,t){var s,r,i,o,l,c,u;const n=Object.keys(e.locales).find(d=>d!=="root"&&!kc(d)&&Uc(t,`/${d}/`,!0))||"root";return Object.assign({},e,{localeIndex:n,lang:((s=e.locales[n])==null?void 0:s.lang)??e.lang,dir:((r=e.locales[n])==null?void 0:r.dir)??e.dir,title:((i=e.locales[n])==null?void 0:i.title)??e.title,titleTemplate:((o=e.locales[n])==null?void 0:o.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:Wi(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(u=e.locales[n])==null?void 0:u.themeConfig}})}function Ki(e,t){const n=t.title||e.title,s=t.titleTemplate??e.titleTemplate;if(typeof s=="string"&&s.includes(":title"))return s.replace(/:title/g,n);const r=Bc(e.title,s);return`${n}${r}`}function Bc(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function qc(e,t){const[n,s]=t;if(n!=="meta")return!1;const r=Object.entries(s)[0];return r==null?!1:e.some(([i,o])=>i===n&&o[r[0]]===r[1])}function Wi(e,t){return[...e.filter(n=>!qc(t,n)),...t]}const Kc=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,Wc=/^[a-z]:/i;function br(e){const t=Wc.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(Kc,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const Gi=Symbol(),qe=Uo(Vc);function Gc(e){const t=Re(()=>Dc(qe.value,e.data.relativePath));return{site:t,theme:Re(()=>t.value.themeConfig),page:Re(()=>e.data),frontmatter:Re(()=>e.data.frontmatter),params:Re(()=>e.data.params),lang:Re(()=>t.value.lang),dir:Re(()=>t.value.dir),localeIndex:Re(()=>t.value.localeIndex||"root"),title:Re(()=>Ki(t.value,e.data)),description:Re(()=>e.data.description||t.value.description),isDark:Jr(!1)}}function Jc(){const e=Ct(Gi);if(!e)throw new Error("vitepress data not properly injected in app");return e}function Yc(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function Cr(e){return Di.test(e)||e.startsWith(".")?e:Yc(qe.value.base,e)}function Ji(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),he){const n="/cql/";t=br(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let s=__VP_HASH_MAP__[t.toLowerCase()];s||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",s=__VP_HASH_MAP__[t.toLowerCase()]),t=`${n}assets/${t}.${s}.js`}else t=`./${br(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let rn=[];function $a(e){rn.push(e),En(()=>{rn=rn.filter(t=>t!==e)})}const Yi=Symbol(),xr="http://a.com",Xc=()=>({path:"/",component:null,data:qi});function zc(e,t){const n=yn(Xc()),s={route:n,go:r};async function r(l=he?location.href:"/"){var u,d;await((u=s.onBeforeRouteChange)==null?void 0:u.call(s,l));const c=new URL(l,xr);qe.value.cleanUrls||!c.pathname.endsWith("/")&&!c.pathname.endsWith(".html")&&(c.pathname+=".html",l=c.pathname+c.search+c.hash),he&&l!==location.href&&(history.replaceState({scrollPosition:window.scrollY},document.title),history.pushState(null,"",l)),await o(l),await((d=s.onAfterRouteChanged)==null?void 0:d.call(s,l))}let i=null;async function o(l,c=0,u=!1){const d=new URL(l,xr),h=i=d.pathname;try{let m=await e(h);if(i===h){i=null;const{default:E,__pageData:O}=m;if(!E)throw new Error(`Invalid route component: ${E}`);n.path=he?h:Cr(h),n.component=Zt(E),n.data=Zt(O),he&&Zr(()=>{let F=qe.value.base+O.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!qe.value.cleanUrls&&!F.endsWith("/")&&(F+=".html"),F!==d.pathname&&(d.pathname=F,l=F+d.search+d.hash,history.replaceState(null,"",l)),d.hash&&!c){let G=null;try{G=document.querySelector(decodeURIComponent(d.hash))}catch(K){console.warn(K)}if(G){vr(G,d.hash);return}}window.scrollTo(0,c)})}}catch(m){if(!/fetch/.test(m.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(m),!u)try{const E=await fetch(qe.value.base+"hashmap.json");window.__VP_HASH_MAP__=await E.json(),await o(l,c,!0);return}catch{}i===h&&(i=null,n.path=he?h:Cr(h),n.component=t?Zt(t):null,n.data=qi)}}return he&&(window.addEventListener("click",l=>{if(l.target.closest("button"))return;const u=l.target.closest("a");if(u&&!u.closest(".vp-raw")&&(u instanceof SVGElement||!u.download)){const{target:d}=u,{href:h,origin:m,pathname:E,hash:O,search:F}=new URL(u.href instanceof SVGAnimatedString?u.href.animVal:u.href,u.baseURI),G=window.location,K=E.match(/\.\w+$/);!l.ctrlKey&&!l.shiftKey&&!l.altKey&&!l.metaKey&&d!=="_blank"&&m===G.origin&&!(K&&K[0]!==".html")&&(l.preventDefault(),E===G.pathname&&F===G.search?O&&O!==G.hash&&(history.pushState(null,"",O),window.dispatchEvent(new Event("hashchange")),vr(u,O,u.classList.contains("header-anchor"))):r(h))}},{capture:!0}),window.addEventListener("popstate",l=>{o(location.href,l.state&&l.state.scrollPosition||0)}),window.addEventListener("hashchange",l=>{l.preventDefault()})),s}function Qc(){const e=Ct(Yi);if(!e)throw new Error("useRouter() is called without provider.");return e}function Xi(){return Qc().route}function vr(e,t,n=!1){let s=null;try{s=e.classList.contains("header-anchor")?e:document.querySelector(decodeURIComponent(t))}catch(r){console.warn(r)}if(s){let r=qe.value.scrollOffset;typeof r=="string"&&(r=document.querySelector(r).getBoundingClientRect().bottom+24);const i=parseInt(window.getComputedStyle(s).paddingTop,10),o=window.scrollY+s.getBoundingClientRect().top-r+i;!n||Math.abs(o-window.scrollY)>window.innerHeight?window.scrollTo(0,o):window.scrollTo({left:0,top:o,behavior:"smooth"})}}const wr=()=>rn.forEach(e=>e()),Zc=xn({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=Xi();return()=>hn(e.as,{style:{position:"relative"}},[t.component?hn(t.component,{onVnodeMounted:wr,onVnodeUpdated:wr}):"404 Page Not Found"])}}),ea={class:"VPDocAsideCarbonAds"},Va=xn({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(e){const t=()=>null;return(n,s)=>(vs(),ql("div",ea,[le(Xr(t),{"carbon-ads":n.carbonAds},null,8,["carbon-ads"])]))}});function ta(e,t){let n=[],s=!0;const r=i=>{if(s){s=!1;return}n.forEach(o=>document.head.removeChild(o)),n=[],i.forEach(o=>{const l=na(o);document.head.appendChild(l),n.push(l)})};Ai(()=>{const i=e.data,o=t.value,l=i&&i.description,c=i&&i.frontmatter.head||[];document.title=Ki(o,i),document.querySelector("meta[name=description]").setAttribute("content",l||o.description),r(Wi(o.head,ra(c)))})}function na([e,t,n]){const s=document.createElement(e);for(const r in t)s.setAttribute(r,t[r]);return n&&(s.innerHTML=n),s}function sa(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function ra(e){return e.filter(t=>!sa(t))}const Bn=new Set,zi=()=>document.createElement("link"),ia=e=>{const t=zi();t.rel="prefetch",t.href=e,document.head.appendChild(t)},oa=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let zt;const la=he&&(zt=zi())&&zt.relList&&zt.relList.supports&&zt.relList.supports("prefetch")?ia:oa;function ca(){if(!he||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const s=()=>{n&&n.disconnect(),n=new IntersectionObserver(i=>{i.forEach(o=>{if(o.isIntersecting){const l=o.target;n.unobserve(l);const{pathname:c}=l;if(!Bn.has(c)){Bn.add(c);const u=Ji(c);la(u)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(i=>{const{target:o}=i,{hostname:l,pathname:c}=new URL(i.href instanceof SVGAnimatedString?i.href.animVal:i.href,i.baseURI),u=c.match(/\.\w+$/);u&&u[0]!==".html"||o!=="_blank"&&l===location.hostname&&(c!==location.pathname?n.observe(i):Bn.add(c))})})};$t(s);const r=Xi();tn(()=>r.path,s),En(()=>{n&&n.disconnect()})}const aa=xn({setup(e,{slots:t}){const n=Jr(!1);return $t(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function fa(){if(he){const e=new Map;window.addEventListener("click",t=>{var s;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const r=n.parentElement,i=(s=n.nextElementSibling)==null?void 0:s.nextElementSibling;if(!r||!i)return;const o=/language-(shellscript|shell|bash|sh|zsh)/.test(r.className);let l="";i.querySelectorAll("span.line:not(.diff.remove)").forEach(c=>l+=(c.textContent||"")+` `),l=l.slice(0,-1),o&&(l=l.replace(/^ *(\$|>) /gm,"").trim()),ua(l).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const c=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,c)})}})}}async function ua(e){try{return navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea"),n=document.activeElement;t.value=e,t.setAttribute("readonly",""),t.style.contain="strict",t.style.position="absolute",t.style.left="-9999px",t.style.fontSize="12pt";const s=document.getSelection(),r=s?s.rangeCount>0&&s.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),r&&(s.removeAllRanges(),s.addRange(r)),n&&n.focus()}}function da(){he&&window.addEventListener("click",e=>{var n,s;const t=e.target;if(t.matches(".vp-code-group input")){const r=(n=t.parentElement)==null?void 0:n.parentElement,i=Array.from((r==null?void 0:r.querySelectorAll("input"))||[]).indexOf(t),o=r==null?void 0:r.querySelector('div[class*="language-"].active'),l=(s=r==null?void 0:r.querySelectorAll('div[class*="language-"]'))==null?void 0:s[i];o&&l&&o!==l&&(o.classList.remove("active"),l.classList.add("active"))}})}function Qi(e){if(e.extends){const t=Qi(e.extends);return{...t,...e,enhanceApp(n){t.enhanceApp&&t.enhanceApp(n),e.enhanceApp&&e.enhanceApp(n)}}}return e}const xt=Qi(to),ha=xn({name:"VitePressApp",setup(){const{site:e}=Jc();return $t(()=>{Ai(()=>{document.documentElement.lang=e.value.lang,document.documentElement.dir=e.value.dir})}),ca(),fa(),da(),xt.setup&&xt.setup(),()=>hn(xt.Layout)}});async function pa(){const e=ma(),t=ga();t.provide(Yi,e);const n=Gc(e.route);return t.provide(Gi,n),t.component("Content",Zc),t.component("ClientOnly",aa),Object.defineProperties(t.config.globalProperties,{$frontmatter:{get(){return n.frontmatter.value}},$params:{get(){return n.page.value.params}}}),xt.enhanceApp&&await xt.enhanceApp({app:t,router:e,siteData:qe}),{app:t,router:e,data:n}}function ga(){return Lc(ha)}function ma(){let e=he,t;return zc(n=>{let s=Ji(n);return e&&(t=s),(e||t===s)&&(s=s.replace(/\.js$/,".lean.js")),he&&(e=!1),$c(()=>import(s),[])},xt.NotFound)}he&&pa().then(({app:e,router:t,data:n})=>{t.go().then(()=>{ta(t.route,n.site),e.mount("#app")})});export{$a as $,Oa as A,wa as B,Gl as C,le as D,$c as E,me as F,va as G,La as H,Ta as I,Ia as J,Ra as K,Di as L,Ea as M,he as N,qr as O,Na as P,Ca as Q,xa as R,Pa as S,Ui as T,Ha as U,Ct as V,_l as W,Ma as X,sl as Y,Uo as Z,Fa as _,Ni as a,Va as a0,Aa as a1,Xr as b,ql as c,pa as createApp,xn as d,Re as e,Jr as f,Hi as g,$t as h,Zr as i,yo as j,ba as k,Ai as l,kc as m,cs as n,vs as o,Cr as p,Uc as q,Sa as r,Xi as s,go as t,Jc as u,En as v,tn as w,Fi as x,Li as y,Jo as z}; diff --git a/docs/assets/chunks/theme.a19b6002.js b/docs/assets/chunks/theme.88596d17.js similarity index 99% rename from docs/assets/chunks/theme.a19b6002.js rename to docs/assets/chunks/theme.88596d17.js index b9cca6d..ed1f92e 100644 --- a/docs/assets/chunks/theme.a19b6002.js +++ b/docs/assets/chunks/theme.88596d17.js @@ -1,4 +1,4 @@ -import{d as g,o as a,c as i,r as u,n as I,a as H,t as b,_ as f,u as et,b as c,e as $,f as P,g as tt,h as q,i as Ee,j as nt,k as st,w as Y,l as Z,m as ot,P as at,p as he,q as K,s as ne,v as me,x as l,F as S,y,z as v,T as He,A as m,B as W,C as de,D as h,E as rt,G as it,H as ct,I as B,J as Oe,K as lt,L as ze,M as ee,N as ut,O as dt,Q as z,R as D,S as _t,U as Le,V as ge,W as ae,X as vt,Y as pt,Z as ft,$ as ht,a0 as mt,a1 as gt}from"../app.19d9338b.js";const yt=g({__name:"VPBadge",props:{text:{},type:{}},setup(n){return(e,t)=>(a(),i("span",{class:I(["VPBadge",e.type??"tip"])},[u(e.$slots,"default",{},()=>[H(b(e.text),1)],!0)],2))}});const kt=f(yt,[["__scopeId","data-v-350d3852"]]),w=et;var Me;const De=typeof window<"u",$t=n=>typeof n=="string",bt=()=>{};De&&((Me=window==null?void 0:window.navigator)!=null&&Me.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function Fe(n){return typeof n=="function"?n():c(n)}function Pt(n){return n}function Ge(n){return nt()?(st(n),!0):!1}function wt(n){return typeof n=="function"?$(n):P(n)}function Vt(n,e=!0){tt()?q(n):e?n():Ee(n)}function St(n){var e;const t=Fe(n);return(e=t==null?void 0:t.$el)!=null?e:t}const ye=De?window:void 0;function Lt(...n){let e,t,o,s;if($t(n[0])||Array.isArray(n[0])?([t,o,s]=n,e=ye):[e,t,o,s]=n,!e)return bt;Array.isArray(t)||(t=[t]),Array.isArray(o)||(o=[o]);const r=[],d=()=>{r.forEach(L=>L()),r.length=0},p=(L,T,C,V)=>(L.addEventListener(T,C,V),()=>L.removeEventListener(T,C,V)),_=Y(()=>[St(e),Fe(s)],([L,T])=>{d(),L&&r.push(...t.flatMap(C=>o.map(V=>p(L,C,V,T))))},{immediate:!0,flush:"post"}),k=()=>{_(),d()};return Ge(k),k}function Mt(n,e=!1){const t=P(),o=()=>t.value=!!n();return o(),Vt(o,e),t}function ve(n,e={}){const{window:t=ye}=e,o=Mt(()=>t&&"matchMedia"in t&&typeof t.matchMedia=="function");let s;const r=P(!1),d=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",p):s.removeListener(p))},p=()=>{o.value&&(d(),s=t.matchMedia(wt(n).value),r.value=s.matches,"addEventListener"in s?s.addEventListener("change",p):s.addListener(p))};return Z(p),Ge(()=>d()),r}const Ie=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Ce="__vueuse_ssr_handlers__";Ie[Ce]=Ie[Ce]||{};var xe;(function(n){n.UP="UP",n.RIGHT="RIGHT",n.DOWN="DOWN",n.LEFT="LEFT",n.NONE="NONE"})(xe||(xe={}));var It=Object.defineProperty,Te=Object.getOwnPropertySymbols,Ct=Object.prototype.hasOwnProperty,xt=Object.prototype.propertyIsEnumerable,Ne=(n,e,t)=>e in n?It(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Tt=(n,e)=>{for(var t in e||(e={}))Ct.call(e,t)&&Ne(n,t,e[t]);if(Te)for(var t of Te(e))xt.call(e,t)&&Ne(n,t,e[t]);return n};const Nt={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};Tt({linear:Pt},Nt);function At({window:n=ye}={}){if(!n)return{x:P(0),y:P(0)};const e=P(n.scrollX),t=P(n.scrollY);return Lt(n,"scroll",()=>{e.value=n.scrollX,t.value=n.scrollY},{capture:!1,passive:!0}),{x:e,y:t}}function Bt(n,e){let t,o=!1;return()=>{t&&clearTimeout(t),o?t=setTimeout(n,e):(n(),o=!0,setTimeout(()=>{o=!1},e))}}function pe(n){return/^\//.test(n)?n:`/${n}`}function te(n){if(ot(n))return n.replace(at,"");const{site:e}=w(),{pathname:t,search:o,hash:s}=new URL(n,"http://example.com"),r=t.endsWith("/")||t.endsWith(".html")?n:n.replace(/(?:(^\.+)\/)?.*$/,`$1${t.replace(/(\.md)?$/,e.value.cleanUrls?"":".html")}${o}${s}`);return he(r)}function Re(n,e){if(Array.isArray(n))return n;if(n==null)return[];e=pe(e);const t=Object.keys(n).sort((o,s)=>s.split("/").length-o.split("/").length).find(o=>e.startsWith(pe(o)));return t?n[t]:[]}function Et(n){const e=[];let t=0;for(const o in n){const s=n[o];if(s.items){t=e.push(s);continue}e[t]||e.push({items:[]}),e[t].items.push(s)}return e}function Ht(n){const e=[];function t(o){for(const s of o)s.text&&s.link&&e.push({text:s.text,link:s.link}),s.items&&t(s.items)}return t(n),e}function fe(n,e){return Array.isArray(e)?e.some(t=>fe(n,t)):K(n,e.link)?!0:e.items?fe(n,e.items):!1}function F(){const n=ne(),{theme:e,frontmatter:t}=w(),o=ve("(min-width: 960px)"),s=P(!1),r=$(()=>{const V=e.value.sidebar,E=n.data.relativePath;return V?Re(V,E):[]}),d=$(()=>t.value.sidebar!==!1&&r.value.length>0&&t.value.layout!=="home"),p=$(()=>t.value.layout==="home"?!1:t.value.aside!=null?!!t.value.aside:e.value.aside!==!1),_=$(()=>d.value&&o.value),k=$(()=>d.value?Et(r.value):[]);function L(){s.value=!0}function T(){s.value=!1}function C(){s.value?T():L()}return{isOpen:s,sidebar:r,sidebarGroups:k,hasSidebar:d,hasAside:p,isSidebarEnabled:_,open:L,close:T,toggle:C}}function Ot(n,e){let t;Z(()=>{t=n.value?document.activeElement:void 0}),q(()=>{window.addEventListener("keyup",o)}),me(()=>{window.removeEventListener("keyup",o)});function o(s){s.key==="Escape"&&n.value&&(e(),t==null||t.focus())}}function zt(n){const{page:e}=w(),t=P(!1),o=$(()=>n.value.collapsed!=null),s=$(()=>!!n.value.link),r=$(()=>K(e.value.relativePath,n.value.link)),d=$(()=>r.value?!0:n.value.items?fe(e.value.relativePath,n.value.items):!1),p=$(()=>!!(n.value.items&&n.value.items.length));Z(()=>{t.value=!!(o.value&&n.value.collapsed)}),Z(()=>{(r.value||d.value)&&(t.value=!1)});function _(){o.value&&(t.value=!t.value)}return{collapsed:t,collapsible:o,isLink:s,isActiveLink:r,hasActiveLink:d,hasChildren:p,toggle:_}}const Dt=g({__name:"VPSkipLink",setup(n){const e=ne(),t=P();Y(()=>e.path,()=>t.value.focus());function o({target:s}){const r=document.querySelector(s.hash);if(r){const d=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",d)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",d),r.focus(),window.scrollTo(0,0)}}return(s,r)=>(a(),i(S,null,[l("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),l("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:o}," Skip to content ")],64))}});const Ft=f(Dt,[["__scopeId","data-v-151f2593"]]),Gt={key:0,class:"VPBackdrop"},Rt=g({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(n){return(e,t)=>(a(),y(He,{name:"fade"},{default:v(()=>[e.show?(a(),i("div",Gt)):m("",!0)]),_:1}))}});const Ut=f(Rt,[["__scopeId","data-v-c79a1216"]]);function jt(){const n=P(!1);function e(){n.value=!0,window.addEventListener("resize",s)}function t(){n.value=!1,window.removeEventListener("resize",s)}function o(){n.value?t():e()}function s(){window.outerWidth>=768&&t()}const r=ne();return Y(()=>r.path,t),{isScreenOpen:n,openScreen:e,closeScreen:t,toggleScreen:o}}function se({removeCurrent:n=!0,correspondingLink:e=!1}={}){const{site:t,localeIndex:o,page:s,theme:r}=w(),d=$(()=>{var _,k;return{label:(_=t.value.locales[o.value])==null?void 0:_.label,link:((k=t.value.locales[o.value])==null?void 0:k.link)||(o.value==="root"?"/":`/${o.value}/`)}});return{localeLinks:$(()=>Object.entries(t.value.locales).flatMap(([_,k])=>n&&d.value.label===k.label?[]:{text:k.label,link:qt(k.link||(_==="root"?"/":`/${_}/`),r.value.i18nRouting!==!1&&e,s.value.relativePath.slice(d.value.link.length-1),!t.value.cleanUrls)})),currentLang:d}}function qt(n,e,t,o){return e?n.replace(/\/$/,"")+pe(t.replace(/(^|\/)?index.md$/,"$1").replace(/\.md$/,o?".html":"")):n}const Wt=["src","alt"],Qt={inheritAttrs:!1},Yt=g({...Qt,__name:"VPImage",props:{image:{},alt:{}},setup(n){return(e,t)=>{const o=W("VPImage",!0);return e.image?(a(),i(S,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),i("img",de({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:c(he)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,Wt)):(a(),i(S,{key:1},[h(o,de({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),h(o,de({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):m("",!0)}}});const ke=f(Yt,[["__scopeId","data-v-6db2186b"]]),Kt=["href"],Xt=g({__name:"VPNavBarTitle",setup(n){const{site:e,theme:t}=w(),{hasSidebar:o}=F(),{currentLang:s}=se();return(r,d)=>(a(),i("div",{class:I(["VPNavBarTitle",{"has-sidebar":c(o)}])},[l("a",{class:"title",href:c(te)(c(s).link)},[u(r.$slots,"nav-bar-title-before",{},void 0,!0),c(t).logo?(a(),y(ke,{key:0,class:"logo",image:c(t).logo},null,8,["image"])):m("",!0),c(t).siteTitle?(a(),i(S,{key:1},[H(b(c(t).siteTitle),1)],64)):c(t).siteTitle===void 0?(a(),i(S,{key:2},[H(b(c(e).title),1)],64)):m("",!0),u(r.$slots,"nav-bar-title-after",{},void 0,!0)],8,Kt)],2))}});const Jt=f(Xt,[["__scopeId","data-v-6d2fb2d9"]]),Zt={class:"VPNavBarSearch"},en={class:"input-box"},tn={class:"search-results"},nn={key:0},sn={class:"search-time"},on=["href"],an={class:"title"},rn={class:"content"},cn={class:"link"},ln={key:1},un={class:"search"},dn=g({__name:"Search",setup(n){const e=P(),t=P(!1),o=P(!1),s=P(""),r=P([]),d=P([]),p=P(void 0),_=P(0),k=P(/[\W_]+/g),L=(x,N)=>{typeof p.value<"u"&&(window.clearTimeout(p.value),p.value=void 0),p.value=window.setTimeout(()=>{x()},N)},T=x=>{L(()=>{V(x)},250)},C=(x,N)=>{for(let M of x)if(M!==""&&N.includes(M))return!0;return!1},V=x=>{const N=Date.now();if(!x.target){d.value=r.value,_.value=Date.now()-N,o.value=!1;return}let M=x.target.value;if(M.length<=2){d.value=r.value,_.value=Date.now()-N,o.value=!1;return}o.value=M.charAt(0)==='"'&&M.charAt(M.length-1)==='"',M=M.toLowerCase().replace(k.value,"");let U;o.value?U=[M]:U=M.split(" ");const Ze=[...r.value].filter(O=>!!(O.title&&C(U,O.title.toLowerCase())||O.content&&C(U,O.content.toLowerCase())||O.link&&C(U,O.link.toLowerCase())));d.value=Ze.map(O=>{const oe=O.content.indexOf(M);return{...O,content:"..."+O.content.slice(oe,O.content.length)}}),_.value=Date.now()-N},E=()=>{d.value=r.value,t.value=!1,s.value=""},G=()=>{E(),t.value=!0,Ee(()=>{e.value.focus()})},A=x=>{x.keyCode===27&&E()};return q(async()=>{const x=await rt(()=>import("./virtual_simple-search.93210c16.js"),[]);try{r.value=x.default.data,d.value=x.default.data,k.value=x.default.regexForContentStripping}catch{console.log("Could not load search data from virtual module."),console.log("Maybe search data includes malformed data?");return}console.log("Vitepress Simple Search"),console.log(`Loaded: ${r.value.length} Files for Searching`)}),(x,N)=>(a(),i("div",Zt,[(a(),y(lt,{to:"body"},[t.value?(a(),i("div",{key:0,class:"modal-container",onMousedown:E,onKeyup:A},[l("div",{class:"modal",onMousedown:N[1]||(N[1]=Oe(()=>{},["stop"]))},[l("div",en,[it(l("input",{onInput:T,"onUpdate:modelValue":N[0]||(N[0]=M=>s.value=M),class:I(["search-input",o.value?{"strict-mode":!0}:{}]),placeholder:"Search. Use double quotes for stricter results.","aria-autocomplete":"both",autocomplete:"off",autocorrect:"off",autocapitalize:"off",enterkeyhint:"search",spellcheck:"false",autofocus:"true",maxlength:"64",type:"search",ref_key:"input",ref:e},null,34),[[ct,s.value]])]),l("div",tn,[d.value.length>=1?(a(),i("div",nn,[l("div",sn,b(_.value)+"ms for "+b(d.value.length)+" Results",1),(a(!0),i(S,null,B(d.value,(M,U)=>(a(),i("a",{class:"result",key:U,href:M.link,onClick:E},[l("div",an,b(M.title),1),l("div",rn,b(M.content.slice(0,64)+"..."),1),l("div",cn,b(M.link),1)],8,on))),128))])):(a(),i("div",ln,"No Results"))])],32)],32)):m("",!0)])),l("div",un,[l("div",{class:"search-text",onClick:N[2]||(N[2]=M=>G())},"Search...")])]))}});const _n={},vn={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",height:"24px",viewBox:"0 0 24 24",width:"24px"},pn=l("path",{d:"M0 0h24v24H0V0z",fill:"none"},null,-1),fn=l("path",{d:"M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"},null,-1),hn=[pn,fn];function mn(n,e){return a(),i("svg",vn,hn)}const gn=f(_n,[["render",mn]]),yn=g({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(n){const e=n,t=$(()=>e.tag??e.href?"a":"span"),o=$(()=>e.href&&ze.test(e.href));return(s,r)=>(a(),y(ee(t.value),{class:I(["VPLink",{link:s.href}]),href:s.href?c(te)(s.href):void 0,target:s.target||(o.value?"_blank":void 0),rel:s.rel||(o.value?"noreferrer":void 0)},{default:v(()=>[u(s.$slots,"default",{},void 0,!0),o.value&&!s.noIcon?(a(),y(gn,{key:0,class:"icon"})):m("",!0)]),_:3},8,["class","href","target","rel"]))}});const R=f(yn,[["__scopeId","data-v-a8b5c975"]]),kn=g({__name:"VPNavBarMenuLink",props:{item:{}},setup(n){const{page:e}=w();return(t,o)=>(a(),y(R,{class:I({VPNavBarMenuLink:!0,active:c(K)(c(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:v(()=>[H(b(t.item.text),1)]),_:1},8,["class","href","target","rel"]))}});const $n=f(kn,[["__scopeId","data-v-f2ec7ecf"]]),$e=P();let Ue=!1,_e=0;function bn(n){const e=P(!1);if(ut){!Ue&&Pn(),_e++;const t=Y($e,o=>{var s,r,d;o===n.el.value||(s=n.el.value)!=null&&s.contains(o)?(e.value=!0,(r=n.onFocus)==null||r.call(n)):(e.value=!1,(d=n.onBlur)==null||d.call(n))});me(()=>{t(),_e--,_e||wn()})}return dt(e)}function Pn(){document.addEventListener("focusin",je),Ue=!0,$e.value=document.activeElement}function wn(){document.removeEventListener("focusin",je)}function je(){$e.value=document.activeElement}const Vn={},Sn={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Ln=l("path",{d:"M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"},null,-1),Mn=[Ln];function In(n,e){return a(),i("svg",Sn,Mn)}const qe=f(Vn,[["render",In]]),Cn={},xn={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Tn=l("circle",{cx:"12",cy:"12",r:"2"},null,-1),Nn=l("circle",{cx:"19",cy:"12",r:"2"},null,-1),An=l("circle",{cx:"5",cy:"12",r:"2"},null,-1),Bn=[Tn,Nn,An];function En(n,e){return a(),i("svg",xn,Bn)}const Hn=f(Cn,[["render",En]]),On={class:"VPMenuLink"},zn=g({__name:"VPMenuLink",props:{item:{}},setup(n){const{page:e}=w();return(t,o)=>(a(),i("div",On,[h(R,{class:I({active:c(K)(c(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:v(()=>[H(b(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}});const le=f(zn,[["__scopeId","data-v-88f937c6"]]),Dn={class:"VPMenuGroup"},Fn={key:0,class:"title"},Gn=g({__name:"VPMenuGroup",props:{text:{},items:{}},setup(n){return(e,t)=>(a(),i("div",Dn,[e.text?(a(),i("p",Fn,b(e.text),1)):m("",!0),(a(!0),i(S,null,B(e.items,o=>(a(),i(S,null,["link"in o?(a(),y(le,{key:0,item:o},null,8,["item"])):m("",!0)],64))),256))]))}});const Rn=f(Gn,[["__scopeId","data-v-69e747b5"]]),Un={class:"VPMenu"},jn={key:0,class:"items"},qn=g({__name:"VPMenu",props:{items:{}},setup(n){return(e,t)=>(a(),i("div",Un,[e.items?(a(),i("div",jn,[(a(!0),i(S,null,B(e.items,o=>(a(),i(S,{key:o.text},["link"in o?(a(),y(le,{key:0,item:o},null,8,["item"])):(a(),y(Rn,{key:1,text:o.text,items:o.items},null,8,["text","items"]))],64))),128))])):m("",!0),u(e.$slots,"default",{},void 0,!0)]))}});const Wn=f(qn,[["__scopeId","data-v-e7ea1737"]]),Qn=["aria-expanded","aria-label"],Yn={key:0,class:"text"},Kn={class:"menu"},Xn=g({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(n){const e=P(!1),t=P();bn({el:t,onBlur:o});function o(){e.value=!1}return(s,r)=>(a(),i("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:r[1]||(r[1]=d=>e.value=!0),onMouseleave:r[2]||(r[2]=d=>e.value=!1)},[l("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":s.label,onClick:r[0]||(r[0]=d=>e.value=!e.value)},[s.button||s.icon?(a(),i("span",Yn,[s.icon?(a(),y(ee(s.icon),{key:0,class:"option-icon"})):m("",!0),H(" "+b(s.button)+" ",1),h(qe,{class:"text-icon"})])):(a(),y(Hn,{key:1,class:"icon"}))],8,Qn),l("div",Kn,[h(Wn,{items:s.items},{default:v(()=>[u(s.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}});const be=f(Xn,[["__scopeId","data-v-96001b6b"]]),Jn=g({__name:"VPNavBarMenuGroup",props:{item:{}},setup(n){const{page:e}=w();return(t,o)=>(a(),y(be,{class:I({VPNavBarMenuGroup:!0,active:c(K)(c(e).relativePath,t.item.activeMatch,!!t.item.activeMatch)}),button:t.item.text,items:t.item.items},null,8,["class","button","items"]))}}),Zn=n=>(z("data-v-bdedfc22"),n=n(),D(),n),es={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},ts=Zn(()=>l("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),ns=g({__name:"VPNavBarMenu",setup(n){const{theme:e}=w();return(t,o)=>c(e).nav?(a(),i("nav",es,[ts,(a(!0),i(S,null,B(c(e).nav,s=>(a(),i(S,{key:s.text},["link"in s?(a(),y($n,{key:0,item:s},null,8,["item"])):(a(),y(Jn,{key:1,item:s},null,8,["item"]))],64))),128))])):m("",!0)}});const ss=f(ns,[["__scopeId","data-v-bdedfc22"]]),os={},as={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},rs=l("path",{d:"M0 0h24v24H0z",fill:"none"},null,-1),is=l("path",{d:" M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z ",class:"css-c4d79v"},null,-1),cs=[rs,is];function ls(n,e){return a(),i("svg",as,cs)}const We=f(os,[["render",ls]]),us={class:"items"},ds={class:"title"},_s=g({__name:"VPNavBarTranslations",setup(n){const{theme:e}=w(),{localeLinks:t,currentLang:o}=se({correspondingLink:!0});return(s,r)=>c(t).length&&c(o).label?(a(),y(be,{key:0,class:"VPNavBarTranslations",icon:We,label:c(e).langMenuLabel||"Change language"},{default:v(()=>[l("div",us,[l("p",ds,b(c(o).label),1),(a(!0),i(S,null,B(c(t),d=>(a(),y(le,{key:d.link,item:d},null,8,["item"]))),128))])]),_:1},8,["label"])):m("",!0)}});const vs=f(_s,[["__scopeId","data-v-b009e5cf"]]);const ps={},fs={class:"VPSwitch",type:"button",role:"switch"},hs={class:"check"},ms={key:0,class:"icon"};function gs(n,e){return a(),i("button",fs,[l("span",hs,[n.$slots.default?(a(),i("span",ms,[u(n.$slots,"default",{},void 0,!0)])):m("",!0)])])}const ys=f(ps,[["render",gs],["__scopeId","data-v-f3c41672"]]),ks={},$s={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},bs=_t('',9),Ps=[bs];function ws(n,e){return a(),i("svg",$s,Ps)}const Vs=f(ks,[["render",ws]]),Ss={},Ls={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Ms=l("path",{d:"M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"},null,-1),Is=[Ms];function Cs(n,e){return a(),i("svg",Ls,Is)}const xs=f(Ss,[["render",Cs]]),Ts=g({__name:"VPSwitchAppearance",setup(n){const{site:e,isDark:t}=w(),o=P(!1),s=typeof localStorage<"u"?r():()=>{};q(()=>{o.value=document.documentElement.classList.contains("dark")});function r(){const d=window.matchMedia("(prefers-color-scheme: dark)"),p=document.documentElement.classList;let _=localStorage.getItem(Le),k=e.value.appearance==="dark"&&_==null||(_==="auto"||_==null?d.matches:_==="dark");d.onchange=C=>{_==="auto"&&T(k=C.matches)};function L(){T(k=!k),_=k?d.matches?"auto":"dark":d.matches?"light":"auto",localStorage.setItem(Le,_)}function T(C){const V=document.createElement("style");V.type="text/css",V.appendChild(document.createTextNode(`:not(.VPSwitchAppearance):not(.VPSwitchAppearance *) { +import{d as g,o as a,c as i,r as u,n as I,a as H,t as b,_ as f,u as et,b as c,e as $,f as P,g as tt,h as q,i as Ee,j as nt,k as st,w as Y,l as Z,m as ot,P as at,p as he,q as K,s as ne,v as me,x as l,F as S,y,z as v,T as He,A as m,B as W,C as de,D as h,E as rt,G as it,H as ct,I as B,J as Oe,K as lt,L as ze,M as ee,N as ut,O as dt,Q as z,R as D,S as _t,U as Le,V as ge,W as ae,X as vt,Y as pt,Z as ft,$ as ht,a0 as mt,a1 as gt}from"../app.70057064.js";const yt=g({__name:"VPBadge",props:{text:{},type:{}},setup(n){return(e,t)=>(a(),i("span",{class:I(["VPBadge",e.type??"tip"])},[u(e.$slots,"default",{},()=>[H(b(e.text),1)],!0)],2))}});const kt=f(yt,[["__scopeId","data-v-350d3852"]]),w=et;var Me;const De=typeof window<"u",$t=n=>typeof n=="string",bt=()=>{};De&&((Me=window==null?void 0:window.navigator)!=null&&Me.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function Fe(n){return typeof n=="function"?n():c(n)}function Pt(n){return n}function Ge(n){return nt()?(st(n),!0):!1}function wt(n){return typeof n=="function"?$(n):P(n)}function Vt(n,e=!0){tt()?q(n):e?n():Ee(n)}function St(n){var e;const t=Fe(n);return(e=t==null?void 0:t.$el)!=null?e:t}const ye=De?window:void 0;function Lt(...n){let e,t,o,s;if($t(n[0])||Array.isArray(n[0])?([t,o,s]=n,e=ye):[e,t,o,s]=n,!e)return bt;Array.isArray(t)||(t=[t]),Array.isArray(o)||(o=[o]);const r=[],d=()=>{r.forEach(L=>L()),r.length=0},p=(L,T,C,V)=>(L.addEventListener(T,C,V),()=>L.removeEventListener(T,C,V)),_=Y(()=>[St(e),Fe(s)],([L,T])=>{d(),L&&r.push(...t.flatMap(C=>o.map(V=>p(L,C,V,T))))},{immediate:!0,flush:"post"}),k=()=>{_(),d()};return Ge(k),k}function Mt(n,e=!1){const t=P(),o=()=>t.value=!!n();return o(),Vt(o,e),t}function ve(n,e={}){const{window:t=ye}=e,o=Mt(()=>t&&"matchMedia"in t&&typeof t.matchMedia=="function");let s;const r=P(!1),d=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",p):s.removeListener(p))},p=()=>{o.value&&(d(),s=t.matchMedia(wt(n).value),r.value=s.matches,"addEventListener"in s?s.addEventListener("change",p):s.addListener(p))};return Z(p),Ge(()=>d()),r}const Ie=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Ce="__vueuse_ssr_handlers__";Ie[Ce]=Ie[Ce]||{};var xe;(function(n){n.UP="UP",n.RIGHT="RIGHT",n.DOWN="DOWN",n.LEFT="LEFT",n.NONE="NONE"})(xe||(xe={}));var It=Object.defineProperty,Te=Object.getOwnPropertySymbols,Ct=Object.prototype.hasOwnProperty,xt=Object.prototype.propertyIsEnumerable,Ne=(n,e,t)=>e in n?It(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Tt=(n,e)=>{for(var t in e||(e={}))Ct.call(e,t)&&Ne(n,t,e[t]);if(Te)for(var t of Te(e))xt.call(e,t)&&Ne(n,t,e[t]);return n};const Nt={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};Tt({linear:Pt},Nt);function At({window:n=ye}={}){if(!n)return{x:P(0),y:P(0)};const e=P(n.scrollX),t=P(n.scrollY);return Lt(n,"scroll",()=>{e.value=n.scrollX,t.value=n.scrollY},{capture:!1,passive:!0}),{x:e,y:t}}function Bt(n,e){let t,o=!1;return()=>{t&&clearTimeout(t),o?t=setTimeout(n,e):(n(),o=!0,setTimeout(()=>{o=!1},e))}}function pe(n){return/^\//.test(n)?n:`/${n}`}function te(n){if(ot(n))return n.replace(at,"");const{site:e}=w(),{pathname:t,search:o,hash:s}=new URL(n,"http://example.com"),r=t.endsWith("/")||t.endsWith(".html")?n:n.replace(/(?:(^\.+)\/)?.*$/,`$1${t.replace(/(\.md)?$/,e.value.cleanUrls?"":".html")}${o}${s}`);return he(r)}function Re(n,e){if(Array.isArray(n))return n;if(n==null)return[];e=pe(e);const t=Object.keys(n).sort((o,s)=>s.split("/").length-o.split("/").length).find(o=>e.startsWith(pe(o)));return t?n[t]:[]}function Et(n){const e=[];let t=0;for(const o in n){const s=n[o];if(s.items){t=e.push(s);continue}e[t]||e.push({items:[]}),e[t].items.push(s)}return e}function Ht(n){const e=[];function t(o){for(const s of o)s.text&&s.link&&e.push({text:s.text,link:s.link}),s.items&&t(s.items)}return t(n),e}function fe(n,e){return Array.isArray(e)?e.some(t=>fe(n,t)):K(n,e.link)?!0:e.items?fe(n,e.items):!1}function F(){const n=ne(),{theme:e,frontmatter:t}=w(),o=ve("(min-width: 960px)"),s=P(!1),r=$(()=>{const V=e.value.sidebar,E=n.data.relativePath;return V?Re(V,E):[]}),d=$(()=>t.value.sidebar!==!1&&r.value.length>0&&t.value.layout!=="home"),p=$(()=>t.value.layout==="home"?!1:t.value.aside!=null?!!t.value.aside:e.value.aside!==!1),_=$(()=>d.value&&o.value),k=$(()=>d.value?Et(r.value):[]);function L(){s.value=!0}function T(){s.value=!1}function C(){s.value?T():L()}return{isOpen:s,sidebar:r,sidebarGroups:k,hasSidebar:d,hasAside:p,isSidebarEnabled:_,open:L,close:T,toggle:C}}function Ot(n,e){let t;Z(()=>{t=n.value?document.activeElement:void 0}),q(()=>{window.addEventListener("keyup",o)}),me(()=>{window.removeEventListener("keyup",o)});function o(s){s.key==="Escape"&&n.value&&(e(),t==null||t.focus())}}function zt(n){const{page:e}=w(),t=P(!1),o=$(()=>n.value.collapsed!=null),s=$(()=>!!n.value.link),r=$(()=>K(e.value.relativePath,n.value.link)),d=$(()=>r.value?!0:n.value.items?fe(e.value.relativePath,n.value.items):!1),p=$(()=>!!(n.value.items&&n.value.items.length));Z(()=>{t.value=!!(o.value&&n.value.collapsed)}),Z(()=>{(r.value||d.value)&&(t.value=!1)});function _(){o.value&&(t.value=!t.value)}return{collapsed:t,collapsible:o,isLink:s,isActiveLink:r,hasActiveLink:d,hasChildren:p,toggle:_}}const Dt=g({__name:"VPSkipLink",setup(n){const e=ne(),t=P();Y(()=>e.path,()=>t.value.focus());function o({target:s}){const r=document.querySelector(s.hash);if(r){const d=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",d)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",d),r.focus(),window.scrollTo(0,0)}}return(s,r)=>(a(),i(S,null,[l("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),l("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:o}," Skip to content ")],64))}});const Ft=f(Dt,[["__scopeId","data-v-151f2593"]]),Gt={key:0,class:"VPBackdrop"},Rt=g({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(n){return(e,t)=>(a(),y(He,{name:"fade"},{default:v(()=>[e.show?(a(),i("div",Gt)):m("",!0)]),_:1}))}});const Ut=f(Rt,[["__scopeId","data-v-c79a1216"]]);function jt(){const n=P(!1);function e(){n.value=!0,window.addEventListener("resize",s)}function t(){n.value=!1,window.removeEventListener("resize",s)}function o(){n.value?t():e()}function s(){window.outerWidth>=768&&t()}const r=ne();return Y(()=>r.path,t),{isScreenOpen:n,openScreen:e,closeScreen:t,toggleScreen:o}}function se({removeCurrent:n=!0,correspondingLink:e=!1}={}){const{site:t,localeIndex:o,page:s,theme:r}=w(),d=$(()=>{var _,k;return{label:(_=t.value.locales[o.value])==null?void 0:_.label,link:((k=t.value.locales[o.value])==null?void 0:k.link)||(o.value==="root"?"/":`/${o.value}/`)}});return{localeLinks:$(()=>Object.entries(t.value.locales).flatMap(([_,k])=>n&&d.value.label===k.label?[]:{text:k.label,link:qt(k.link||(_==="root"?"/":`/${_}/`),r.value.i18nRouting!==!1&&e,s.value.relativePath.slice(d.value.link.length-1),!t.value.cleanUrls)})),currentLang:d}}function qt(n,e,t,o){return e?n.replace(/\/$/,"")+pe(t.replace(/(^|\/)?index.md$/,"$1").replace(/\.md$/,o?".html":"")):n}const Wt=["src","alt"],Qt={inheritAttrs:!1},Yt=g({...Qt,__name:"VPImage",props:{image:{},alt:{}},setup(n){return(e,t)=>{const o=W("VPImage",!0);return e.image?(a(),i(S,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),i("img",de({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:c(he)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,Wt)):(a(),i(S,{key:1},[h(o,de({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),h(o,de({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):m("",!0)}}});const ke=f(Yt,[["__scopeId","data-v-6db2186b"]]),Kt=["href"],Xt=g({__name:"VPNavBarTitle",setup(n){const{site:e,theme:t}=w(),{hasSidebar:o}=F(),{currentLang:s}=se();return(r,d)=>(a(),i("div",{class:I(["VPNavBarTitle",{"has-sidebar":c(o)}])},[l("a",{class:"title",href:c(te)(c(s).link)},[u(r.$slots,"nav-bar-title-before",{},void 0,!0),c(t).logo?(a(),y(ke,{key:0,class:"logo",image:c(t).logo},null,8,["image"])):m("",!0),c(t).siteTitle?(a(),i(S,{key:1},[H(b(c(t).siteTitle),1)],64)):c(t).siteTitle===void 0?(a(),i(S,{key:2},[H(b(c(e).title),1)],64)):m("",!0),u(r.$slots,"nav-bar-title-after",{},void 0,!0)],8,Kt)],2))}});const Jt=f(Xt,[["__scopeId","data-v-6d2fb2d9"]]),Zt={class:"VPNavBarSearch"},en={class:"input-box"},tn={class:"search-results"},nn={key:0},sn={class:"search-time"},on=["href"],an={class:"title"},rn={class:"content"},cn={class:"link"},ln={key:1},un={class:"search"},dn=g({__name:"Search",setup(n){const e=P(),t=P(!1),o=P(!1),s=P(""),r=P([]),d=P([]),p=P(void 0),_=P(0),k=P(/[\W_]+/g),L=(x,N)=>{typeof p.value<"u"&&(window.clearTimeout(p.value),p.value=void 0),p.value=window.setTimeout(()=>{x()},N)},T=x=>{L(()=>{V(x)},250)},C=(x,N)=>{for(let M of x)if(M!==""&&N.includes(M))return!0;return!1},V=x=>{const N=Date.now();if(!x.target){d.value=r.value,_.value=Date.now()-N,o.value=!1;return}let M=x.target.value;if(M.length<=2){d.value=r.value,_.value=Date.now()-N,o.value=!1;return}o.value=M.charAt(0)==='"'&&M.charAt(M.length-1)==='"',M=M.toLowerCase().replace(k.value,"");let U;o.value?U=[M]:U=M.split(" ");const Ze=[...r.value].filter(O=>!!(O.title&&C(U,O.title.toLowerCase())||O.content&&C(U,O.content.toLowerCase())||O.link&&C(U,O.link.toLowerCase())));d.value=Ze.map(O=>{const oe=O.content.indexOf(M);return{...O,content:"..."+O.content.slice(oe,O.content.length)}}),_.value=Date.now()-N},E=()=>{d.value=r.value,t.value=!1,s.value=""},G=()=>{E(),t.value=!0,Ee(()=>{e.value.focus()})},A=x=>{x.keyCode===27&&E()};return q(async()=>{const x=await rt(()=>import("./virtual_simple-search.93210c16.js"),[]);try{r.value=x.default.data,d.value=x.default.data,k.value=x.default.regexForContentStripping}catch{console.log("Could not load search data from virtual module."),console.log("Maybe search data includes malformed data?");return}console.log("Vitepress Simple Search"),console.log(`Loaded: ${r.value.length} Files for Searching`)}),(x,N)=>(a(),i("div",Zt,[(a(),y(lt,{to:"body"},[t.value?(a(),i("div",{key:0,class:"modal-container",onMousedown:E,onKeyup:A},[l("div",{class:"modal",onMousedown:N[1]||(N[1]=Oe(()=>{},["stop"]))},[l("div",en,[it(l("input",{onInput:T,"onUpdate:modelValue":N[0]||(N[0]=M=>s.value=M),class:I(["search-input",o.value?{"strict-mode":!0}:{}]),placeholder:"Search. Use double quotes for stricter results.","aria-autocomplete":"both",autocomplete:"off",autocorrect:"off",autocapitalize:"off",enterkeyhint:"search",spellcheck:"false",autofocus:"true",maxlength:"64",type:"search",ref_key:"input",ref:e},null,34),[[ct,s.value]])]),l("div",tn,[d.value.length>=1?(a(),i("div",nn,[l("div",sn,b(_.value)+"ms for "+b(d.value.length)+" Results",1),(a(!0),i(S,null,B(d.value,(M,U)=>(a(),i("a",{class:"result",key:U,href:M.link,onClick:E},[l("div",an,b(M.title),1),l("div",rn,b(M.content.slice(0,64)+"..."),1),l("div",cn,b(M.link),1)],8,on))),128))])):(a(),i("div",ln,"No Results"))])],32)],32)):m("",!0)])),l("div",un,[l("div",{class:"search-text",onClick:N[2]||(N[2]=M=>G())},"Search...")])]))}});const _n={},vn={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",height:"24px",viewBox:"0 0 24 24",width:"24px"},pn=l("path",{d:"M0 0h24v24H0V0z",fill:"none"},null,-1),fn=l("path",{d:"M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"},null,-1),hn=[pn,fn];function mn(n,e){return a(),i("svg",vn,hn)}const gn=f(_n,[["render",mn]]),yn=g({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(n){const e=n,t=$(()=>e.tag??e.href?"a":"span"),o=$(()=>e.href&&ze.test(e.href));return(s,r)=>(a(),y(ee(t.value),{class:I(["VPLink",{link:s.href}]),href:s.href?c(te)(s.href):void 0,target:s.target||(o.value?"_blank":void 0),rel:s.rel||(o.value?"noreferrer":void 0)},{default:v(()=>[u(s.$slots,"default",{},void 0,!0),o.value&&!s.noIcon?(a(),y(gn,{key:0,class:"icon"})):m("",!0)]),_:3},8,["class","href","target","rel"]))}});const R=f(yn,[["__scopeId","data-v-a8b5c975"]]),kn=g({__name:"VPNavBarMenuLink",props:{item:{}},setup(n){const{page:e}=w();return(t,o)=>(a(),y(R,{class:I({VPNavBarMenuLink:!0,active:c(K)(c(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:v(()=>[H(b(t.item.text),1)]),_:1},8,["class","href","target","rel"]))}});const $n=f(kn,[["__scopeId","data-v-f2ec7ecf"]]),$e=P();let Ue=!1,_e=0;function bn(n){const e=P(!1);if(ut){!Ue&&Pn(),_e++;const t=Y($e,o=>{var s,r,d;o===n.el.value||(s=n.el.value)!=null&&s.contains(o)?(e.value=!0,(r=n.onFocus)==null||r.call(n)):(e.value=!1,(d=n.onBlur)==null||d.call(n))});me(()=>{t(),_e--,_e||wn()})}return dt(e)}function Pn(){document.addEventListener("focusin",je),Ue=!0,$e.value=document.activeElement}function wn(){document.removeEventListener("focusin",je)}function je(){$e.value=document.activeElement}const Vn={},Sn={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Ln=l("path",{d:"M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"},null,-1),Mn=[Ln];function In(n,e){return a(),i("svg",Sn,Mn)}const qe=f(Vn,[["render",In]]),Cn={},xn={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Tn=l("circle",{cx:"12",cy:"12",r:"2"},null,-1),Nn=l("circle",{cx:"19",cy:"12",r:"2"},null,-1),An=l("circle",{cx:"5",cy:"12",r:"2"},null,-1),Bn=[Tn,Nn,An];function En(n,e){return a(),i("svg",xn,Bn)}const Hn=f(Cn,[["render",En]]),On={class:"VPMenuLink"},zn=g({__name:"VPMenuLink",props:{item:{}},setup(n){const{page:e}=w();return(t,o)=>(a(),i("div",On,[h(R,{class:I({active:c(K)(c(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:v(()=>[H(b(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}});const le=f(zn,[["__scopeId","data-v-88f937c6"]]),Dn={class:"VPMenuGroup"},Fn={key:0,class:"title"},Gn=g({__name:"VPMenuGroup",props:{text:{},items:{}},setup(n){return(e,t)=>(a(),i("div",Dn,[e.text?(a(),i("p",Fn,b(e.text),1)):m("",!0),(a(!0),i(S,null,B(e.items,o=>(a(),i(S,null,["link"in o?(a(),y(le,{key:0,item:o},null,8,["item"])):m("",!0)],64))),256))]))}});const Rn=f(Gn,[["__scopeId","data-v-69e747b5"]]),Un={class:"VPMenu"},jn={key:0,class:"items"},qn=g({__name:"VPMenu",props:{items:{}},setup(n){return(e,t)=>(a(),i("div",Un,[e.items?(a(),i("div",jn,[(a(!0),i(S,null,B(e.items,o=>(a(),i(S,{key:o.text},["link"in o?(a(),y(le,{key:0,item:o},null,8,["item"])):(a(),y(Rn,{key:1,text:o.text,items:o.items},null,8,["text","items"]))],64))),128))])):m("",!0),u(e.$slots,"default",{},void 0,!0)]))}});const Wn=f(qn,[["__scopeId","data-v-e7ea1737"]]),Qn=["aria-expanded","aria-label"],Yn={key:0,class:"text"},Kn={class:"menu"},Xn=g({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(n){const e=P(!1),t=P();bn({el:t,onBlur:o});function o(){e.value=!1}return(s,r)=>(a(),i("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:r[1]||(r[1]=d=>e.value=!0),onMouseleave:r[2]||(r[2]=d=>e.value=!1)},[l("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":s.label,onClick:r[0]||(r[0]=d=>e.value=!e.value)},[s.button||s.icon?(a(),i("span",Yn,[s.icon?(a(),y(ee(s.icon),{key:0,class:"option-icon"})):m("",!0),H(" "+b(s.button)+" ",1),h(qe,{class:"text-icon"})])):(a(),y(Hn,{key:1,class:"icon"}))],8,Qn),l("div",Kn,[h(Wn,{items:s.items},{default:v(()=>[u(s.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}});const be=f(Xn,[["__scopeId","data-v-96001b6b"]]),Jn=g({__name:"VPNavBarMenuGroup",props:{item:{}},setup(n){const{page:e}=w();return(t,o)=>(a(),y(be,{class:I({VPNavBarMenuGroup:!0,active:c(K)(c(e).relativePath,t.item.activeMatch,!!t.item.activeMatch)}),button:t.item.text,items:t.item.items},null,8,["class","button","items"]))}}),Zn=n=>(z("data-v-bdedfc22"),n=n(),D(),n),es={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},ts=Zn(()=>l("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),ns=g({__name:"VPNavBarMenu",setup(n){const{theme:e}=w();return(t,o)=>c(e).nav?(a(),i("nav",es,[ts,(a(!0),i(S,null,B(c(e).nav,s=>(a(),i(S,{key:s.text},["link"in s?(a(),y($n,{key:0,item:s},null,8,["item"])):(a(),y(Jn,{key:1,item:s},null,8,["item"]))],64))),128))])):m("",!0)}});const ss=f(ns,[["__scopeId","data-v-bdedfc22"]]),os={},as={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},rs=l("path",{d:"M0 0h24v24H0z",fill:"none"},null,-1),is=l("path",{d:" M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z ",class:"css-c4d79v"},null,-1),cs=[rs,is];function ls(n,e){return a(),i("svg",as,cs)}const We=f(os,[["render",ls]]),us={class:"items"},ds={class:"title"},_s=g({__name:"VPNavBarTranslations",setup(n){const{theme:e}=w(),{localeLinks:t,currentLang:o}=se({correspondingLink:!0});return(s,r)=>c(t).length&&c(o).label?(a(),y(be,{key:0,class:"VPNavBarTranslations",icon:We,label:c(e).langMenuLabel||"Change language"},{default:v(()=>[l("div",us,[l("p",ds,b(c(o).label),1),(a(!0),i(S,null,B(c(t),d=>(a(),y(le,{key:d.link,item:d},null,8,["item"]))),128))])]),_:1},8,["label"])):m("",!0)}});const vs=f(_s,[["__scopeId","data-v-b009e5cf"]]);const ps={},fs={class:"VPSwitch",type:"button",role:"switch"},hs={class:"check"},ms={key:0,class:"icon"};function gs(n,e){return a(),i("button",fs,[l("span",hs,[n.$slots.default?(a(),i("span",ms,[u(n.$slots,"default",{},void 0,!0)])):m("",!0)])])}const ys=f(ps,[["render",gs],["__scopeId","data-v-f3c41672"]]),ks={},$s={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},bs=_t('',9),Ps=[bs];function ws(n,e){return a(),i("svg",$s,Ps)}const Vs=f(ks,[["render",ws]]),Ss={},Ls={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Ms=l("path",{d:"M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"},null,-1),Is=[Ms];function Cs(n,e){return a(),i("svg",Ls,Is)}const xs=f(Ss,[["render",Cs]]),Ts=g({__name:"VPSwitchAppearance",setup(n){const{site:e,isDark:t}=w(),o=P(!1),s=typeof localStorage<"u"?r():()=>{};q(()=>{o.value=document.documentElement.classList.contains("dark")});function r(){const d=window.matchMedia("(prefers-color-scheme: dark)"),p=document.documentElement.classList;let _=localStorage.getItem(Le),k=e.value.appearance==="dark"&&_==null||(_==="auto"||_==null?d.matches:_==="dark");d.onchange=C=>{_==="auto"&&T(k=C.matches)};function L(){T(k=!k),_=k?d.matches?"auto":"dark":d.matches?"light":"auto",localStorage.setItem(Le,_)}function T(C){const V=document.createElement("style");V.type="text/css",V.appendChild(document.createTextNode(`:not(.VPSwitchAppearance):not(.VPSwitchAppearance *) { -webkit-transition: none !important; -moz-transition: none !important; -o-transition: none !important; diff --git a/docs/assets/index.md.01ab8dea.js b/docs/assets/index.md.a4e2d95b.js similarity index 99% rename from docs/assets/index.md.01ab8dea.js rename to docs/assets/index.md.a4e2d95b.js index 19b0e3f..651b733 100644 --- a/docs/assets/index.md.01ab8dea.js +++ b/docs/assets/index.md.a4e2d95b.js @@ -1,4 +1,4 @@ -import{_ as s,o as n,c as a,S as l}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const A=JSON.parse('{"title":"Home","description":"","frontmatter":{"title":"Home"},"headers":[{"level":2,"title":"Features","slug":"features","link":"#features","children":[]},{"level":2,"title":"Installation","slug":"installation","link":"#installation","children":[]},{"level":2,"title":"Getting Started","slug":"getting-started","link":"#getting-started","children":[{"level":3,"title":"1. Define a Schema","slug":"_1-define-a-schema","link":"#_1-define-a-schema","children":[]},{"level":3,"title":"2. Executing Queries","slug":"_2-executing-queries","link":"#_2-executing-queries","children":[]},{"level":3,"title":"3. Inserting Data","slug":"_3-inserting-data","link":"#_3-inserting-data","children":[]},{"level":3,"title":"4. Updating Data","slug":"_4-updating-data","link":"#_4-updating-data","children":[]},{"level":3,"title":"5. Deleting Data","slug":"_5-deleting-data","link":"#_5-deleting-data","children":[]},{"level":3,"title":"6. Using the Repository Pattern","slug":"_6-using-the-repository-pattern","link":"#_6-using-the-repository-pattern","children":[]},{"level":3,"title":"7. Active Record Pattern","slug":"_7-active-record-pattern","link":"#_7-active-record-pattern","children":[]}]},{"level":2,"title":"Documentation","slug":"documentation","link":"#documentation","children":[]},{"level":2,"title":"Contributing","slug":"contributing","link":"#contributing","children":[]},{"level":2,"title":"License","slug":"license","link":"#license","children":[]},{"level":2,"title":"Acknowledgments","slug":"acknowledgments","link":"#acknowledgments","children":[]}],"relativePath":"index.md","lastUpdated":1723933892000}'),p={name:"index.md"},e=l(`

Crystal CI

CQL

CQL is a powerful library designed to simplify and enhance the management and execution of SQL queries in the Crystal programming language. It provides utilities for building, validating, and executing SQL statements, ensuring better performance and code maintainability.

Features

  • Query Builder: Programmatically create complex SQL queries.
  • Insert, Update, Delete Operations: Perform CRUD operations with ease.
  • Repository Pattern: Manage your data more effectively using Cql::Repository(T).
  • Active Record Pattern: Work with your data models using Cql::Record(T).

Installation

Add this to your application's shard.yml:

yaml
dependencies:
+import{_ as s,o as n,c as a,S as l}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const A=JSON.parse('{"title":"Home","description":"","frontmatter":{"title":"Home"},"headers":[{"level":2,"title":"Features","slug":"features","link":"#features","children":[]},{"level":2,"title":"Installation","slug":"installation","link":"#installation","children":[]},{"level":2,"title":"Getting Started","slug":"getting-started","link":"#getting-started","children":[{"level":3,"title":"1. Define a Schema","slug":"_1-define-a-schema","link":"#_1-define-a-schema","children":[]},{"level":3,"title":"2. Executing Queries","slug":"_2-executing-queries","link":"#_2-executing-queries","children":[]},{"level":3,"title":"3. Inserting Data","slug":"_3-inserting-data","link":"#_3-inserting-data","children":[]},{"level":3,"title":"4. Updating Data","slug":"_4-updating-data","link":"#_4-updating-data","children":[]},{"level":3,"title":"5. Deleting Data","slug":"_5-deleting-data","link":"#_5-deleting-data","children":[]},{"level":3,"title":"6. Using the Repository Pattern","slug":"_6-using-the-repository-pattern","link":"#_6-using-the-repository-pattern","children":[]},{"level":3,"title":"7. Active Record Pattern","slug":"_7-active-record-pattern","link":"#_7-active-record-pattern","children":[]}]},{"level":2,"title":"Documentation","slug":"documentation","link":"#documentation","children":[]},{"level":2,"title":"Contributing","slug":"contributing","link":"#contributing","children":[]},{"level":2,"title":"License","slug":"license","link":"#license","children":[]},{"level":2,"title":"Acknowledgments","slug":"acknowledgments","link":"#acknowledgments","children":[]}],"relativePath":"index.md","lastUpdated":1723933892000}'),p={name:"index.md"},e=l(`

Crystal CI

CQL

CQL is a powerful library designed to simplify and enhance the management and execution of SQL queries in the Crystal programming language. It provides utilities for building, validating, and executing SQL statements, ensuring better performance and code maintainability.

Features

  • Query Builder: Programmatically create complex SQL queries.
  • Insert, Update, Delete Operations: Perform CRUD operations with ease.
  • Repository Pattern: Manage your data more effectively using Cql::Repository(T).
  • Active Record Pattern: Work with your data models using Cql::Record(T).

Installation

Add this to your application's shard.yml:

yaml
dependencies:
   cql:
     github: azutoolkit/cql
 

Then, run the following command to install the dependencies:

bash
shards install
diff --git a/docs/assets/index.md.01ab8dea.lean.js b/docs/assets/index.md.a4e2d95b.lean.js
similarity index 93%
rename from docs/assets/index.md.01ab8dea.lean.js
rename to docs/assets/index.md.a4e2d95b.lean.js
index 0575fc1..7f22901 100644
--- a/docs/assets/index.md.01ab8dea.lean.js
+++ b/docs/assets/index.md.a4e2d95b.lean.js
@@ -1 +1 @@
-import{_ as s,o as n,c as a,S as l}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const A=JSON.parse('{"title":"Home","description":"","frontmatter":{"title":"Home"},"headers":[{"level":2,"title":"Features","slug":"features","link":"#features","children":[]},{"level":2,"title":"Installation","slug":"installation","link":"#installation","children":[]},{"level":2,"title":"Getting Started","slug":"getting-started","link":"#getting-started","children":[{"level":3,"title":"1. Define a Schema","slug":"_1-define-a-schema","link":"#_1-define-a-schema","children":[]},{"level":3,"title":"2. Executing Queries","slug":"_2-executing-queries","link":"#_2-executing-queries","children":[]},{"level":3,"title":"3. Inserting Data","slug":"_3-inserting-data","link":"#_3-inserting-data","children":[]},{"level":3,"title":"4. Updating Data","slug":"_4-updating-data","link":"#_4-updating-data","children":[]},{"level":3,"title":"5. Deleting Data","slug":"_5-deleting-data","link":"#_5-deleting-data","children":[]},{"level":3,"title":"6. Using the Repository Pattern","slug":"_6-using-the-repository-pattern","link":"#_6-using-the-repository-pattern","children":[]},{"level":3,"title":"7. Active Record Pattern","slug":"_7-active-record-pattern","link":"#_7-active-record-pattern","children":[]}]},{"level":2,"title":"Documentation","slug":"documentation","link":"#documentation","children":[]},{"level":2,"title":"Contributing","slug":"contributing","link":"#contributing","children":[]},{"level":2,"title":"License","slug":"license","link":"#license","children":[]},{"level":2,"title":"Acknowledgments","slug":"acknowledgments","link":"#acknowledgments","children":[]}],"relativePath":"index.md","lastUpdated":1723933892000}'),p={name:"index.md"},e=l("",41),o=[e];function t(c,r,i,D,y,F){return n(),a("div",null,o)}const E=s(p,[["render",t]]);export{A as __pageData,E as default};
+import{_ as s,o as n,c as a,S as l}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const A=JSON.parse('{"title":"Home","description":"","frontmatter":{"title":"Home"},"headers":[{"level":2,"title":"Features","slug":"features","link":"#features","children":[]},{"level":2,"title":"Installation","slug":"installation","link":"#installation","children":[]},{"level":2,"title":"Getting Started","slug":"getting-started","link":"#getting-started","children":[{"level":3,"title":"1. Define a Schema","slug":"_1-define-a-schema","link":"#_1-define-a-schema","children":[]},{"level":3,"title":"2. Executing Queries","slug":"_2-executing-queries","link":"#_2-executing-queries","children":[]},{"level":3,"title":"3. Inserting Data","slug":"_3-inserting-data","link":"#_3-inserting-data","children":[]},{"level":3,"title":"4. Updating Data","slug":"_4-updating-data","link":"#_4-updating-data","children":[]},{"level":3,"title":"5. Deleting Data","slug":"_5-deleting-data","link":"#_5-deleting-data","children":[]},{"level":3,"title":"6. Using the Repository Pattern","slug":"_6-using-the-repository-pattern","link":"#_6-using-the-repository-pattern","children":[]},{"level":3,"title":"7. Active Record Pattern","slug":"_7-active-record-pattern","link":"#_7-active-record-pattern","children":[]}]},{"level":2,"title":"Documentation","slug":"documentation","link":"#documentation","children":[]},{"level":2,"title":"Contributing","slug":"contributing","link":"#contributing","children":[]},{"level":2,"title":"License","slug":"license","link":"#license","children":[]},{"level":2,"title":"Acknowledgments","slug":"acknowledgments","link":"#acknowledgments","children":[]}],"relativePath":"index.md","lastUpdated":1723933892000}'),p={name:"index.md"},e=l("",41),o=[e];function t(c,r,i,D,y,F){return n(),a("div",null,o)}const E=s(p,[["render",t]]);export{A as __pageData,E as default};
diff --git a/docs/assets/main_Cql.md.0fb10718.js b/docs/assets/main_Cql.md.654b6a18.js
similarity index 99%
rename from docs/assets/main_Cql.md.0fb10718.js
rename to docs/assets/main_Cql.md.654b6a18.js
index cd312cc..8228e24 100644
--- a/docs/assets/main_Cql.md.0fb10718.js
+++ b/docs/assets/main_Cql.md.654b6a18.js
@@ -1,4 +1,4 @@
-import{_ as s,o as n,c as a,S as l}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const d=JSON.parse('{"title":"Cql","description":"","frontmatter":{"title":"Cql"},"headers":[{"level":2,"title":"Features","slug":"features","link":"#features","children":[]},{"level":2,"title":"Installation","slug":"installation","link":"#installation","children":[]},{"level":2,"title":"Getting Started","slug":"getting-started","link":"#getting-started","children":[{"level":3,"title":"1. Define a Schema","slug":"_1-define-a-schema","link":"#_1-define-a-schema","children":[]},{"level":3,"title":"2. Executing Queries","slug":"_2-executing-queries","link":"#_2-executing-queries","children":[]},{"level":3,"title":"3. Inserting Data","slug":"_3-inserting-data","link":"#_3-inserting-data","children":[]},{"level":3,"title":"4. Updating Data","slug":"_4-updating-data","link":"#_4-updating-data","children":[]},{"level":3,"title":"5. Deleting Data","slug":"_5-deleting-data","link":"#_5-deleting-data","children":[]},{"level":3,"title":"6. Using the Repository Pattern","slug":"_6-using-the-repository-pattern","link":"#_6-using-the-repository-pattern","children":[]},{"level":3,"title":"7. Active Record Pattern","slug":"_7-active-record-pattern","link":"#_7-active-record-pattern","children":[]}]}],"relativePath":"main/Cql.md","lastUpdated":1723933892000}'),p={name:"main/Cql.md"},o=l(`

module Cql

CQL is a powerful library designed to simplify and enhance the management and execution of SQL queries in the Crystal programming language. It provides utilities for building, validating, and executing SQL statements, ensuring better performance and code maintainability.

Features

  • Query Builder: Programmatically create complex SQL queries.
  • Insert, Update, Delete Operations: Perform CRUD operations with ease.
  • Repository Pattern: Manage your data more effectively using Cql::Repository(T).
  • Active Record Pattern: Work with your data models using Cql::Record(T).

Installation

Add this to your application's shard.yml:

yaml
dependencies:
+import{_ as s,o as n,c as a,S as l}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const d=JSON.parse('{"title":"Cql","description":"","frontmatter":{"title":"Cql"},"headers":[{"level":2,"title":"Features","slug":"features","link":"#features","children":[]},{"level":2,"title":"Installation","slug":"installation","link":"#installation","children":[]},{"level":2,"title":"Getting Started","slug":"getting-started","link":"#getting-started","children":[{"level":3,"title":"1. Define a Schema","slug":"_1-define-a-schema","link":"#_1-define-a-schema","children":[]},{"level":3,"title":"2. Executing Queries","slug":"_2-executing-queries","link":"#_2-executing-queries","children":[]},{"level":3,"title":"3. Inserting Data","slug":"_3-inserting-data","link":"#_3-inserting-data","children":[]},{"level":3,"title":"4. Updating Data","slug":"_4-updating-data","link":"#_4-updating-data","children":[]},{"level":3,"title":"5. Deleting Data","slug":"_5-deleting-data","link":"#_5-deleting-data","children":[]},{"level":3,"title":"6. Using the Repository Pattern","slug":"_6-using-the-repository-pattern","link":"#_6-using-the-repository-pattern","children":[]},{"level":3,"title":"7. Active Record Pattern","slug":"_7-active-record-pattern","link":"#_7-active-record-pattern","children":[]}]}],"relativePath":"main/Cql.md","lastUpdated":1723940574000}'),p={name:"main/Cql.md"},o=l(`

module Cql

CQL is a powerful library designed to simplify and enhance the management and execution of SQL queries in the Crystal programming language. It provides utilities for building, validating, and executing SQL statements, ensuring better performance and code maintainability.

Features

  • Query Builder: Programmatically create complex SQL queries.
  • Insert, Update, Delete Operations: Perform CRUD operations with ease.
  • Repository Pattern: Manage your data more effectively using Cql::Repository(T).
  • Active Record Pattern: Work with your data models using Cql::Record(T).

Installation

Add this to your application's shard.yml:

yaml
dependencies:
   cql:
     github: azutoolkit/cql
 

Then, run the following command to install the dependencies:

bash
shards install
diff --git a/docs/assets/main_Cql.md.0fb10718.lean.js b/docs/assets/main_Cql.md.654b6a18.lean.js
similarity index 87%
rename from docs/assets/main_Cql.md.0fb10718.lean.js
rename to docs/assets/main_Cql.md.654b6a18.lean.js
index 0419c85..90115ee 100644
--- a/docs/assets/main_Cql.md.0fb10718.lean.js
+++ b/docs/assets/main_Cql.md.654b6a18.lean.js
@@ -1 +1 @@
-import{_ as s,o as n,c as a,S as l}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const d=JSON.parse('{"title":"Cql","description":"","frontmatter":{"title":"Cql"},"headers":[{"level":2,"title":"Features","slug":"features","link":"#features","children":[]},{"level":2,"title":"Installation","slug":"installation","link":"#installation","children":[]},{"level":2,"title":"Getting Started","slug":"getting-started","link":"#getting-started","children":[{"level":3,"title":"1. Define a Schema","slug":"_1-define-a-schema","link":"#_1-define-a-schema","children":[]},{"level":3,"title":"2. Executing Queries","slug":"_2-executing-queries","link":"#_2-executing-queries","children":[]},{"level":3,"title":"3. Inserting Data","slug":"_3-inserting-data","link":"#_3-inserting-data","children":[]},{"level":3,"title":"4. Updating Data","slug":"_4-updating-data","link":"#_4-updating-data","children":[]},{"level":3,"title":"5. Deleting Data","slug":"_5-deleting-data","link":"#_5-deleting-data","children":[]},{"level":3,"title":"6. Using the Repository Pattern","slug":"_6-using-the-repository-pattern","link":"#_6-using-the-repository-pattern","children":[]},{"level":3,"title":"7. Active Record Pattern","slug":"_7-active-record-pattern","link":"#_7-active-record-pattern","children":[]}]}],"relativePath":"main/Cql.md","lastUpdated":1723933892000}'),p={name:"main/Cql.md"},o=l("",31),e=[o];function t(c,r,D,y,F,i){return n(),a("div",null,e)}const E=s(p,[["render",t]]);export{d as __pageData,E as default};
+import{_ as s,o as n,c as a,S as l}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const d=JSON.parse('{"title":"Cql","description":"","frontmatter":{"title":"Cql"},"headers":[{"level":2,"title":"Features","slug":"features","link":"#features","children":[]},{"level":2,"title":"Installation","slug":"installation","link":"#installation","children":[]},{"level":2,"title":"Getting Started","slug":"getting-started","link":"#getting-started","children":[{"level":3,"title":"1. Define a Schema","slug":"_1-define-a-schema","link":"#_1-define-a-schema","children":[]},{"level":3,"title":"2. Executing Queries","slug":"_2-executing-queries","link":"#_2-executing-queries","children":[]},{"level":3,"title":"3. Inserting Data","slug":"_3-inserting-data","link":"#_3-inserting-data","children":[]},{"level":3,"title":"4. Updating Data","slug":"_4-updating-data","link":"#_4-updating-data","children":[]},{"level":3,"title":"5. Deleting Data","slug":"_5-deleting-data","link":"#_5-deleting-data","children":[]},{"level":3,"title":"6. Using the Repository Pattern","slug":"_6-using-the-repository-pattern","link":"#_6-using-the-repository-pattern","children":[]},{"level":3,"title":"7. Active Record Pattern","slug":"_7-active-record-pattern","link":"#_7-active-record-pattern","children":[]}]}],"relativePath":"main/Cql.md","lastUpdated":1723940574000}'),p={name:"main/Cql.md"},o=l("",31),e=[o];function t(c,r,D,y,F,i){return n(),a("div",null,e)}const E=s(p,[["render",t]]);export{d as __pageData,E as default};
diff --git a/docs/assets/main_Cql_Adapter.md.64761c36.js b/docs/assets/main_Cql_Adapter.md.9766ee18.js
similarity index 97%
rename from docs/assets/main_Cql_Adapter.md.64761c36.js
rename to docs/assets/main_Cql_Adapter.md.9766ee18.js
index a4e3ff8..d1ee9a1 100644
--- a/docs/assets/main_Cql_Adapter.md.64761c36.js
+++ b/docs/assets/main_Cql_Adapter.md.9766ee18.js
@@ -1,4 +1,4 @@
-import{_ as e,o as s,c as a,S as t}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const u=JSON.parse('{"title":"Cql::Adapter","description":"","frontmatter":{"title":"Cql::Adapter"},"headers":[{"level":2,"title":"Constants","slug":"constants","link":"#constants","children":[{"level":3,"title":"Sqlite","slug":"sqlite","link":"#sqlite","children":[]},{"level":3,"title":"MySql","slug":"mysql","link":"#mysql","children":[]},{"level":3,"title":"Postgres","slug":"postgres","link":"#postgres","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def my_sql?","slug":"def-my-sql","link":"#def-my-sql","children":[]},{"level":3,"title":"def postgres?","slug":"def-postgres","link":"#def-postgres","children":[]},{"level":3,"title":"def sql_type(type) : String","slug":"def-sql-type-type-string","link":"#def-sql-type-type-string","children":[]},{"level":3,"title":"def sqlite?","slug":"def-sqlite","link":"#def-sqlite","children":[]}]}],"relativePath":"main/Cql/Adapter.md","lastUpdated":1723931959000}'),l={name:"main/Cql/Adapter.md"},n=t(`

enum Cql::Adapter

Enum < Comparable < Value < Object

Represents a database adapter module.

Table of Contents

Constants

Sqlite

crystal
0
+import{_ as e,o as s,c as a,S as t}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const u=JSON.parse('{"title":"Cql::Adapter","description":"","frontmatter":{"title":"Cql::Adapter"},"headers":[{"level":2,"title":"Constants","slug":"constants","link":"#constants","children":[{"level":3,"title":"Sqlite","slug":"sqlite","link":"#sqlite","children":[]},{"level":3,"title":"MySql","slug":"mysql","link":"#mysql","children":[]},{"level":3,"title":"Postgres","slug":"postgres","link":"#postgres","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def my_sql?","slug":"def-my-sql","link":"#def-my-sql","children":[]},{"level":3,"title":"def postgres?","slug":"def-postgres","link":"#def-postgres","children":[]},{"level":3,"title":"def sql_type(type) : String","slug":"def-sql-type-type-string","link":"#def-sql-type-type-string","children":[]},{"level":3,"title":"def sqlite?","slug":"def-sqlite","link":"#def-sqlite","children":[]}]}],"relativePath":"main/Cql/Adapter.md","lastUpdated":1723931959000}'),l={name:"main/Cql/Adapter.md"},n=t(`

enum Cql::Adapter

Enum < Comparable < Value < Object

Represents a database adapter module.

Table of Contents

Constants

Sqlite

crystal
0
 

MySql

crystal
1
 

Postgres

crystal
2
 

Instance Methods

def my_sql?

def postgres?

def sql_type(type) : String

Returns the SQL type for the given type. @param type [Type] the type @return [String] the SQL type Example Getting the SQL type

crystal
Cql::Adapter::Sqlite.sql_type(Int32) # => "INTEGER"
diff --git a/docs/assets/main_Cql_Adapter.md.64761c36.lean.js b/docs/assets/main_Cql_Adapter.md.9766ee18.lean.js
similarity index 89%
rename from docs/assets/main_Cql_Adapter.md.64761c36.lean.js
rename to docs/assets/main_Cql_Adapter.md.9766ee18.lean.js
index fa91224..9e36556 100644
--- a/docs/assets/main_Cql_Adapter.md.64761c36.lean.js
+++ b/docs/assets/main_Cql_Adapter.md.9766ee18.lean.js
@@ -1 +1 @@
-import{_ as e,o as s,c as a,S as t}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const u=JSON.parse('{"title":"Cql::Adapter","description":"","frontmatter":{"title":"Cql::Adapter"},"headers":[{"level":2,"title":"Constants","slug":"constants","link":"#constants","children":[{"level":3,"title":"Sqlite","slug":"sqlite","link":"#sqlite","children":[]},{"level":3,"title":"MySql","slug":"mysql","link":"#mysql","children":[]},{"level":3,"title":"Postgres","slug":"postgres","link":"#postgres","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def my_sql?","slug":"def-my-sql","link":"#def-my-sql","children":[]},{"level":3,"title":"def postgres?","slug":"def-postgres","link":"#def-postgres","children":[]},{"level":3,"title":"def sql_type(type) : String","slug":"def-sql-type-type-string","link":"#def-sql-type-type-string","children":[]},{"level":3,"title":"def sqlite?","slug":"def-sqlite","link":"#def-sqlite","children":[]}]}],"relativePath":"main/Cql/Adapter.md","lastUpdated":1723931959000}'),l={name:"main/Cql/Adapter.md"},n=t("",16),i=[n];function r(d,o,p,c,h,y){return s(),a("div",null,i)}const q=e(l,[["render",r]]);export{u as __pageData,q as default};
+import{_ as e,o as s,c as a,S as t}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const u=JSON.parse('{"title":"Cql::Adapter","description":"","frontmatter":{"title":"Cql::Adapter"},"headers":[{"level":2,"title":"Constants","slug":"constants","link":"#constants","children":[{"level":3,"title":"Sqlite","slug":"sqlite","link":"#sqlite","children":[]},{"level":3,"title":"MySql","slug":"mysql","link":"#mysql","children":[]},{"level":3,"title":"Postgres","slug":"postgres","link":"#postgres","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def my_sql?","slug":"def-my-sql","link":"#def-my-sql","children":[]},{"level":3,"title":"def postgres?","slug":"def-postgres","link":"#def-postgres","children":[]},{"level":3,"title":"def sql_type(type) : String","slug":"def-sql-type-type-string","link":"#def-sql-type-type-string","children":[]},{"level":3,"title":"def sqlite?","slug":"def-sqlite","link":"#def-sqlite","children":[]}]}],"relativePath":"main/Cql/Adapter.md","lastUpdated":1723931959000}'),l={name:"main/Cql/Adapter.md"},n=t("",16),i=[n];function r(d,o,p,c,h,y){return s(),a("div",null,i)}const q=e(l,[["render",r]]);export{u as __pageData,q as default};
diff --git a/docs/assets/main_Cql_AlterTable.md.ef31cf58.js b/docs/assets/main_Cql_AlterTable.md.bafd4126.js
similarity index 99%
rename from docs/assets/main_Cql_AlterTable.md.ef31cf58.js
rename to docs/assets/main_Cql_AlterTable.md.bafd4126.js
index 8ecfc63..bc9a79e 100644
--- a/docs/assets/main_Cql_AlterTable.md.ef31cf58.js
+++ b/docs/assets/main_Cql_AlterTable.md.bafd4126.js
@@ -1,4 +1,4 @@
-import{_ as n,o as a,c as s,x as e,a as l,S as o}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const D=JSON.parse('{"title":"Cql::AlterTable","description":"","frontmatter":{"title":"Cql::AlterTable"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(table : Cql::Table, schema : Cql::Schema)","slug":"def-new-table-cql-table-schema-cql-schema","link":"#def-new-table-cql-table-schema-cql-schema","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def add_column(name : Symbol, type : Any, as as_name : String | Nil = nil, null : Bool = true, default : DB::Any = nil, unique : Bool = false, size : Int32 | Nil = nil, index : Bool = false)","slug":"def-add-column-name-symbol-type-any-as-as-name-string-nil-nil-null-bool-true-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false","link":"#def-add-column-name-symbol-type-any-as-as-name-string-nil-nil-null-bool-true-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false","children":[]},{"level":3,"title":"def change_column(name : Symbol, type : Any)","slug":"def-change-column-name-symbol-type-any","link":"#def-change-column-name-symbol-type-any","children":[]},{"level":3,"title":"def create_index(name : Symbol, columns : Array(Symbol), unique : Bool = false)","slug":"def-create-index-name-symbol-columns-array-symbol-unique-bool-false","link":"#def-create-index-name-symbol-columns-array-symbol-unique-bool-false","children":[]},{"level":3,"title":"def drop_column(column : Symbol)","slug":"def-drop-column-column-symbol","link":"#def-drop-column-column-symbol","children":[]},{"level":3,"title":"def drop_foreign_key(name : Symbol)","slug":"def-drop-foreign-key-name-symbol","link":"#def-drop-foreign-key-name-symbol","children":[]},{"level":3,"title":"def drop_index(name : Symbol)","slug":"def-drop-index-name-symbol","link":"#def-drop-index-name-symbol","children":[]},{"level":3,"title":"def foreign_key(name : Symbol, columns : Array(Symbol), table : Symbol, references : Array(Symbol), on_delete : String = \\"NO ACTION\\", on_update : String = \\"NO ACTION\\")","slug":"def-foreign-key-name-symbol-columns-array-symbol-table-symbol-references-array-symbol-on-delete-string-no-action-on-update-string-no-action","link":"#def-foreign-key-name-symbol-columns-array-symbol-table-symbol-references-array-symbol-on-delete-string-no-action-on-update-string-no-action","children":[]},{"level":3,"title":"def rename_column(old_name : Symbol, new_name : Symbol)","slug":"def-rename-column-old-name-symbol-new-name-symbol","link":"#def-rename-column-old-name-symbol-new-name-symbol","children":[]},{"level":3,"title":"def rename_table(new_name : Symbol)","slug":"def-rename-table-new-name-symbol","link":"#def-rename-table-new-name-symbol","children":[]},{"level":3,"title":"def to_sql(visitor : Expression::Visitor)","slug":"def-to-sql-visitor-expression-visitor","link":"#def-to-sql-visitor-expression-visitor","children":[]}]}],"relativePath":"main/Cql/AlterTable.md","lastUpdated":1723931959000}'),t={name:"main/Cql/AlterTable.md"},r=e("div",null,[e("h1",{id:"class-cql-altertable",tabindex:"-1"},[l("class Cql::AlterTable "),e("a",{class:"header-anchor",href:"#class-cql-altertable","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"Reference"),l(" < "),e("code",null,"Object")]),e("p",null,"This module is part of the Cql namespace and is responsible for handling database alterations. This class represents an AlterTable object."),e("p",null,[e("strong",null,"Example"),l(" :")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"alter_table "),e("span",{style:{color:"#89DDFF"}},"="),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"AlterTable"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#BABED8"}},"new")]),l(`
+import{_ as n,o as a,c as s,x as e,a as l,S as o}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const D=JSON.parse('{"title":"Cql::AlterTable","description":"","frontmatter":{"title":"Cql::AlterTable"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(table : Cql::Table, schema : Cql::Schema)","slug":"def-new-table-cql-table-schema-cql-schema","link":"#def-new-table-cql-table-schema-cql-schema","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def add_column(name : Symbol, type : Any, as as_name : String | Nil = nil, null : Bool = true, default : DB::Any = nil, unique : Bool = false, size : Int32 | Nil = nil, index : Bool = false)","slug":"def-add-column-name-symbol-type-any-as-as-name-string-nil-nil-null-bool-true-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false","link":"#def-add-column-name-symbol-type-any-as-as-name-string-nil-nil-null-bool-true-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false","children":[]},{"level":3,"title":"def change_column(name : Symbol, type : Any)","slug":"def-change-column-name-symbol-type-any","link":"#def-change-column-name-symbol-type-any","children":[]},{"level":3,"title":"def create_index(name : Symbol, columns : Array(Symbol), unique : Bool = false)","slug":"def-create-index-name-symbol-columns-array-symbol-unique-bool-false","link":"#def-create-index-name-symbol-columns-array-symbol-unique-bool-false","children":[]},{"level":3,"title":"def drop_column(column : Symbol)","slug":"def-drop-column-column-symbol","link":"#def-drop-column-column-symbol","children":[]},{"level":3,"title":"def drop_foreign_key(name : Symbol)","slug":"def-drop-foreign-key-name-symbol","link":"#def-drop-foreign-key-name-symbol","children":[]},{"level":3,"title":"def drop_index(name : Symbol)","slug":"def-drop-index-name-symbol","link":"#def-drop-index-name-symbol","children":[]},{"level":3,"title":"def foreign_key(name : Symbol, columns : Array(Symbol), table : Symbol, references : Array(Symbol), on_delete : String = \\"NO ACTION\\", on_update : String = \\"NO ACTION\\")","slug":"def-foreign-key-name-symbol-columns-array-symbol-table-symbol-references-array-symbol-on-delete-string-no-action-on-update-string-no-action","link":"#def-foreign-key-name-symbol-columns-array-symbol-table-symbol-references-array-symbol-on-delete-string-no-action-on-update-string-no-action","children":[]},{"level":3,"title":"def rename_column(old_name : Symbol, new_name : Symbol)","slug":"def-rename-column-old-name-symbol-new-name-symbol","link":"#def-rename-column-old-name-symbol-new-name-symbol","children":[]},{"level":3,"title":"def rename_table(new_name : Symbol)","slug":"def-rename-table-new-name-symbol","link":"#def-rename-table-new-name-symbol","children":[]},{"level":3,"title":"def to_sql(visitor : Expression::Visitor)","slug":"def-to-sql-visitor-expression-visitor","link":"#def-to-sql-visitor-expression-visitor","children":[]}]}],"relativePath":"main/Cql/AlterTable.md","lastUpdated":1723931959000}'),t={name:"main/Cql/AlterTable.md"},r=e("div",null,[e("h1",{id:"class-cql-altertable",tabindex:"-1"},[l("class Cql::AlterTable "),e("a",{class:"header-anchor",href:"#class-cql-altertable","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"Reference"),l(" < "),e("code",null,"Object")]),e("p",null,"This module is part of the Cql namespace and is responsible for handling database alterations. This class represents an AlterTable object."),e("p",null,[e("strong",null,"Example"),l(" :")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"alter_table "),e("span",{style:{color:"#89DDFF"}},"="),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"AlterTable"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#BABED8"}},"new")]),l(`
 `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"alter_table"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#82AAFF"}},"add_column"),e("span",{style:{color:"#89DDFF"}},"(:email,"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF"}},'"'),e("span",{style:{color:"#C3E88D"}},"string"),e("span",{style:{color:"#89DDFF"}},'"'),e("span",{style:{color:"#89DDFF"}},")")]),l(`
 `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"alter_table"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#82AAFF"}},"drop_column"),e("span",{style:{color:"#89DDFF"}},"(:age)")]),l(`
 `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"alter_table"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#82AAFF"}},"rename_column"),e("span",{style:{color:"#89DDFF"}},"(:email,"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF"}},":user_email)")]),l(`
diff --git a/docs/assets/main_Cql_AlterTable.md.ef31cf58.lean.js b/docs/assets/main_Cql_AlterTable.md.bafd4126.lean.js
similarity index 98%
rename from docs/assets/main_Cql_AlterTable.md.ef31cf58.lean.js
rename to docs/assets/main_Cql_AlterTable.md.bafd4126.lean.js
index 16c0349..137ac9b 100644
--- a/docs/assets/main_Cql_AlterTable.md.ef31cf58.lean.js
+++ b/docs/assets/main_Cql_AlterTable.md.bafd4126.lean.js
@@ -1,4 +1,4 @@
-import{_ as n,o as a,c as s,x as e,a as l,S as o}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const D=JSON.parse('{"title":"Cql::AlterTable","description":"","frontmatter":{"title":"Cql::AlterTable"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(table : Cql::Table, schema : Cql::Schema)","slug":"def-new-table-cql-table-schema-cql-schema","link":"#def-new-table-cql-table-schema-cql-schema","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def add_column(name : Symbol, type : Any, as as_name : String | Nil = nil, null : Bool = true, default : DB::Any = nil, unique : Bool = false, size : Int32 | Nil = nil, index : Bool = false)","slug":"def-add-column-name-symbol-type-any-as-as-name-string-nil-nil-null-bool-true-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false","link":"#def-add-column-name-symbol-type-any-as-as-name-string-nil-nil-null-bool-true-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false","children":[]},{"level":3,"title":"def change_column(name : Symbol, type : Any)","slug":"def-change-column-name-symbol-type-any","link":"#def-change-column-name-symbol-type-any","children":[]},{"level":3,"title":"def create_index(name : Symbol, columns : Array(Symbol), unique : Bool = false)","slug":"def-create-index-name-symbol-columns-array-symbol-unique-bool-false","link":"#def-create-index-name-symbol-columns-array-symbol-unique-bool-false","children":[]},{"level":3,"title":"def drop_column(column : Symbol)","slug":"def-drop-column-column-symbol","link":"#def-drop-column-column-symbol","children":[]},{"level":3,"title":"def drop_foreign_key(name : Symbol)","slug":"def-drop-foreign-key-name-symbol","link":"#def-drop-foreign-key-name-symbol","children":[]},{"level":3,"title":"def drop_index(name : Symbol)","slug":"def-drop-index-name-symbol","link":"#def-drop-index-name-symbol","children":[]},{"level":3,"title":"def foreign_key(name : Symbol, columns : Array(Symbol), table : Symbol, references : Array(Symbol), on_delete : String = \\"NO ACTION\\", on_update : String = \\"NO ACTION\\")","slug":"def-foreign-key-name-symbol-columns-array-symbol-table-symbol-references-array-symbol-on-delete-string-no-action-on-update-string-no-action","link":"#def-foreign-key-name-symbol-columns-array-symbol-table-symbol-references-array-symbol-on-delete-string-no-action-on-update-string-no-action","children":[]},{"level":3,"title":"def rename_column(old_name : Symbol, new_name : Symbol)","slug":"def-rename-column-old-name-symbol-new-name-symbol","link":"#def-rename-column-old-name-symbol-new-name-symbol","children":[]},{"level":3,"title":"def rename_table(new_name : Symbol)","slug":"def-rename-table-new-name-symbol","link":"#def-rename-table-new-name-symbol","children":[]},{"level":3,"title":"def to_sql(visitor : Expression::Visitor)","slug":"def-to-sql-visitor-expression-visitor","link":"#def-to-sql-visitor-expression-visitor","children":[]}]}],"relativePath":"main/Cql/AlterTable.md","lastUpdated":1723931959000}'),t={name:"main/Cql/AlterTable.md"},r=e("div",null,[e("h1",{id:"class-cql-altertable",tabindex:"-1"},[l("class Cql::AlterTable "),e("a",{class:"header-anchor",href:"#class-cql-altertable","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"Reference"),l(" < "),e("code",null,"Object")]),e("p",null,"This module is part of the Cql namespace and is responsible for handling database alterations. This class represents an AlterTable object."),e("p",null,[e("strong",null,"Example"),l(" :")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"alter_table "),e("span",{style:{color:"#89DDFF"}},"="),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"AlterTable"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#BABED8"}},"new")]),l(`
+import{_ as n,o as a,c as s,x as e,a as l,S as o}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const D=JSON.parse('{"title":"Cql::AlterTable","description":"","frontmatter":{"title":"Cql::AlterTable"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(table : Cql::Table, schema : Cql::Schema)","slug":"def-new-table-cql-table-schema-cql-schema","link":"#def-new-table-cql-table-schema-cql-schema","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def add_column(name : Symbol, type : Any, as as_name : String | Nil = nil, null : Bool = true, default : DB::Any = nil, unique : Bool = false, size : Int32 | Nil = nil, index : Bool = false)","slug":"def-add-column-name-symbol-type-any-as-as-name-string-nil-nil-null-bool-true-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false","link":"#def-add-column-name-symbol-type-any-as-as-name-string-nil-nil-null-bool-true-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false","children":[]},{"level":3,"title":"def change_column(name : Symbol, type : Any)","slug":"def-change-column-name-symbol-type-any","link":"#def-change-column-name-symbol-type-any","children":[]},{"level":3,"title":"def create_index(name : Symbol, columns : Array(Symbol), unique : Bool = false)","slug":"def-create-index-name-symbol-columns-array-symbol-unique-bool-false","link":"#def-create-index-name-symbol-columns-array-symbol-unique-bool-false","children":[]},{"level":3,"title":"def drop_column(column : Symbol)","slug":"def-drop-column-column-symbol","link":"#def-drop-column-column-symbol","children":[]},{"level":3,"title":"def drop_foreign_key(name : Symbol)","slug":"def-drop-foreign-key-name-symbol","link":"#def-drop-foreign-key-name-symbol","children":[]},{"level":3,"title":"def drop_index(name : Symbol)","slug":"def-drop-index-name-symbol","link":"#def-drop-index-name-symbol","children":[]},{"level":3,"title":"def foreign_key(name : Symbol, columns : Array(Symbol), table : Symbol, references : Array(Symbol), on_delete : String = \\"NO ACTION\\", on_update : String = \\"NO ACTION\\")","slug":"def-foreign-key-name-symbol-columns-array-symbol-table-symbol-references-array-symbol-on-delete-string-no-action-on-update-string-no-action","link":"#def-foreign-key-name-symbol-columns-array-symbol-table-symbol-references-array-symbol-on-delete-string-no-action-on-update-string-no-action","children":[]},{"level":3,"title":"def rename_column(old_name : Symbol, new_name : Symbol)","slug":"def-rename-column-old-name-symbol-new-name-symbol","link":"#def-rename-column-old-name-symbol-new-name-symbol","children":[]},{"level":3,"title":"def rename_table(new_name : Symbol)","slug":"def-rename-table-new-name-symbol","link":"#def-rename-table-new-name-symbol","children":[]},{"level":3,"title":"def to_sql(visitor : Expression::Visitor)","slug":"def-to-sql-visitor-expression-visitor","link":"#def-to-sql-visitor-expression-visitor","children":[]}]}],"relativePath":"main/Cql/AlterTable.md","lastUpdated":1723931959000}'),t={name:"main/Cql/AlterTable.md"},r=e("div",null,[e("h1",{id:"class-cql-altertable",tabindex:"-1"},[l("class Cql::AlterTable "),e("a",{class:"header-anchor",href:"#class-cql-altertable","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"Reference"),l(" < "),e("code",null,"Object")]),e("p",null,"This module is part of the Cql namespace and is responsible for handling database alterations. This class represents an AlterTable object."),e("p",null,[e("strong",null,"Example"),l(" :")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"alter_table "),e("span",{style:{color:"#89DDFF"}},"="),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"AlterTable"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#BABED8"}},"new")]),l(`
 `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"alter_table"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#82AAFF"}},"add_column"),e("span",{style:{color:"#89DDFF"}},"(:email,"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF"}},'"'),e("span",{style:{color:"#C3E88D"}},"string"),e("span",{style:{color:"#89DDFF"}},'"'),e("span",{style:{color:"#89DDFF"}},")")]),l(`
 `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"alter_table"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#82AAFF"}},"drop_column"),e("span",{style:{color:"#89DDFF"}},"(:age)")]),l(`
 `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"alter_table"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#82AAFF"}},"rename_column"),e("span",{style:{color:"#89DDFF"}},"(:email,"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF"}},":user_email)")]),l(`
diff --git a/docs/assets/main_Cql_Column.md.33eb3586.js b/docs/assets/main_Cql_Column.md.f756a2ee.js
similarity index 98%
rename from docs/assets/main_Cql_Column.md.33eb3586.js
rename to docs/assets/main_Cql_Column.md.f756a2ee.js
index 082d87e..ee49a14 100644
--- a/docs/assets/main_Cql_Column.md.33eb3586.js
+++ b/docs/assets/main_Cql_Column.md.f756a2ee.js
@@ -1,4 +1,4 @@
-import{_ as s,o as e,c as a,x as l,a as n,S as o}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const B=JSON.parse('{"title":"Cql::Column(T)","description":"","frontmatter":{"title":"Cql::Column(T)"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(name : Symbol, type : T.class, as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, size : Int32 | Nil = nil, index : Index | Nil = nil)","slug":"def-new-name-symbol-type-t-class-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-index-nil-nil","link":"#def-new-name-symbol-type-t-class-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-index-nil-nil","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def expression","slug":"def-expression","link":"#def-expression","children":[]},{"level":3,"title":"def validate!(value)","slug":"def-validate-value","link":"#def-validate-value","children":[]}]}],"relativePath":"main/Cql/Column.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Column.md"},i=l("div",null,[l("h1",{id:"class-cql-column-t",tabindex:"-1"},[n("class Cql::Column(T) "),l("a",{class:"header-anchor",href:"#class-cql-column-t","aria-hidden":"true"},"#")]),l("p",null,[l("code",null,"Cql::BaseColumn"),n(" < "),l("code",null,"Reference"),n(" < "),l("code",null,"Object")]),l("p",null,"A column in a table This class represents a column in a table It provides methods for setting the column type, default value, and constraints It also provides methods for building expressions"),l("p",null,[l("strong",null,"Example"),n(" Creating a new column")]),l("div",{class:"language-crystal"},[l("button",{title:"Copy Code",class:"copy"}),l("span",{class:"lang"},"crystal"),l("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[l("code",null,[l("span",{class:"line"},[l("span",{style:{color:"#BABED8"}},"schema"),l("span",{style:{color:"#89DDFF"}},"."),l("span",{style:{color:"#BABED8"}},"build "),l("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),n(`
+import{_ as s,o as e,c as a,x as l,a as n,S as o}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const B=JSON.parse('{"title":"Cql::Column(T)","description":"","frontmatter":{"title":"Cql::Column(T)"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(name : Symbol, type : T.class, as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, size : Int32 | Nil = nil, index : Index | Nil = nil)","slug":"def-new-name-symbol-type-t-class-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-index-nil-nil","link":"#def-new-name-symbol-type-t-class-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-index-nil-nil","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def expression","slug":"def-expression","link":"#def-expression","children":[]},{"level":3,"title":"def validate!(value)","slug":"def-validate-value","link":"#def-validate-value","children":[]}]}],"relativePath":"main/Cql/Column.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Column.md"},i=l("div",null,[l("h1",{id:"class-cql-column-t",tabindex:"-1"},[n("class Cql::Column(T) "),l("a",{class:"header-anchor",href:"#class-cql-column-t","aria-hidden":"true"},"#")]),l("p",null,[l("code",null,"Cql::BaseColumn"),n(" < "),l("code",null,"Reference"),n(" < "),l("code",null,"Object")]),l("p",null,"A column in a table This class represents a column in a table It provides methods for setting the column type, default value, and constraints It also provides methods for building expressions"),l("p",null,[l("strong",null,"Example"),n(" Creating a new column")]),l("div",{class:"language-crystal"},[l("button",{title:"Copy Code",class:"copy"}),l("span",{class:"lang"},"crystal"),l("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[l("code",null,[l("span",{class:"line"},[l("span",{style:{color:"#BABED8"}},"schema"),l("span",{style:{color:"#89DDFF"}},"."),l("span",{style:{color:"#BABED8"}},"build "),l("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),n(`
 `),l("span",{class:"line"},[l("span",{style:{color:"#BABED8"}},"  table "),l("span",{style:{color:"#89DDFF"}},":users"),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),n(`
 `),l("span",{class:"line"},[l("span",{style:{color:"#BABED8"}},"    column "),l("span",{style:{color:"#89DDFF"}},":name,"),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#FFCB6B"}},"String"),l("span",{style:{color:"#89DDFF"}},","),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#89DDFF"}},"null:"),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#FF9CAC"}},"false"),l("span",{style:{color:"#89DDFF"}},","),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#89DDFF"}},"default:"),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#89DDFF"}},'"'),l("span",{style:{color:"#C3E88D"}},"John"),l("span",{style:{color:"#89DDFF"}},'"')]),n(`
 `),l("span",{class:"line"},[l("span",{style:{color:"#BABED8"}},"    column "),l("span",{style:{color:"#89DDFF"}},":age,"),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#FFCB6B"}},"Int32"),l("span",{style:{color:"#89DDFF"}},","),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#89DDFF"}},"null:"),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#FF9CAC"}},"false")]),n(`
diff --git a/docs/assets/main_Cql_Column.md.33eb3586.lean.js b/docs/assets/main_Cql_Column.md.f756a2ee.lean.js
similarity index 97%
rename from docs/assets/main_Cql_Column.md.33eb3586.lean.js
rename to docs/assets/main_Cql_Column.md.f756a2ee.lean.js
index f8c090b..ec5e138 100644
--- a/docs/assets/main_Cql_Column.md.33eb3586.lean.js
+++ b/docs/assets/main_Cql_Column.md.f756a2ee.lean.js
@@ -1,4 +1,4 @@
-import{_ as s,o as e,c as a,x as l,a as n,S as o}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const B=JSON.parse('{"title":"Cql::Column(T)","description":"","frontmatter":{"title":"Cql::Column(T)"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(name : Symbol, type : T.class, as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, size : Int32 | Nil = nil, index : Index | Nil = nil)","slug":"def-new-name-symbol-type-t-class-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-index-nil-nil","link":"#def-new-name-symbol-type-t-class-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-index-nil-nil","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def expression","slug":"def-expression","link":"#def-expression","children":[]},{"level":3,"title":"def validate!(value)","slug":"def-validate-value","link":"#def-validate-value","children":[]}]}],"relativePath":"main/Cql/Column.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Column.md"},i=l("div",null,[l("h1",{id:"class-cql-column-t",tabindex:"-1"},[n("class Cql::Column(T) "),l("a",{class:"header-anchor",href:"#class-cql-column-t","aria-hidden":"true"},"#")]),l("p",null,[l("code",null,"Cql::BaseColumn"),n(" < "),l("code",null,"Reference"),n(" < "),l("code",null,"Object")]),l("p",null,"A column in a table This class represents a column in a table It provides methods for setting the column type, default value, and constraints It also provides methods for building expressions"),l("p",null,[l("strong",null,"Example"),n(" Creating a new column")]),l("div",{class:"language-crystal"},[l("button",{title:"Copy Code",class:"copy"}),l("span",{class:"lang"},"crystal"),l("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[l("code",null,[l("span",{class:"line"},[l("span",{style:{color:"#BABED8"}},"schema"),l("span",{style:{color:"#89DDFF"}},"."),l("span",{style:{color:"#BABED8"}},"build "),l("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),n(`
+import{_ as s,o as e,c as a,x as l,a as n,S as o}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const B=JSON.parse('{"title":"Cql::Column(T)","description":"","frontmatter":{"title":"Cql::Column(T)"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(name : Symbol, type : T.class, as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, size : Int32 | Nil = nil, index : Index | Nil = nil)","slug":"def-new-name-symbol-type-t-class-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-index-nil-nil","link":"#def-new-name-symbol-type-t-class-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-index-nil-nil","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def expression","slug":"def-expression","link":"#def-expression","children":[]},{"level":3,"title":"def validate!(value)","slug":"def-validate-value","link":"#def-validate-value","children":[]}]}],"relativePath":"main/Cql/Column.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Column.md"},i=l("div",null,[l("h1",{id:"class-cql-column-t",tabindex:"-1"},[n("class Cql::Column(T) "),l("a",{class:"header-anchor",href:"#class-cql-column-t","aria-hidden":"true"},"#")]),l("p",null,[l("code",null,"Cql::BaseColumn"),n(" < "),l("code",null,"Reference"),n(" < "),l("code",null,"Object")]),l("p",null,"A column in a table This class represents a column in a table It provides methods for setting the column type, default value, and constraints It also provides methods for building expressions"),l("p",null,[l("strong",null,"Example"),n(" Creating a new column")]),l("div",{class:"language-crystal"},[l("button",{title:"Copy Code",class:"copy"}),l("span",{class:"lang"},"crystal"),l("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[l("code",null,[l("span",{class:"line"},[l("span",{style:{color:"#BABED8"}},"schema"),l("span",{style:{color:"#89DDFF"}},"."),l("span",{style:{color:"#BABED8"}},"build "),l("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),n(`
 `),l("span",{class:"line"},[l("span",{style:{color:"#BABED8"}},"  table "),l("span",{style:{color:"#89DDFF"}},":users"),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),n(`
 `),l("span",{class:"line"},[l("span",{style:{color:"#BABED8"}},"    column "),l("span",{style:{color:"#89DDFF"}},":name,"),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#FFCB6B"}},"String"),l("span",{style:{color:"#89DDFF"}},","),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#89DDFF"}},"null:"),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#FF9CAC"}},"false"),l("span",{style:{color:"#89DDFF"}},","),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#89DDFF"}},"default:"),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#89DDFF"}},'"'),l("span",{style:{color:"#C3E88D"}},"John"),l("span",{style:{color:"#89DDFF"}},'"')]),n(`
 `),l("span",{class:"line"},[l("span",{style:{color:"#BABED8"}},"    column "),l("span",{style:{color:"#89DDFF"}},":age,"),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#FFCB6B"}},"Int32"),l("span",{style:{color:"#89DDFF"}},","),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#89DDFF"}},"null:"),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#FF9CAC"}},"false")]),n(`
diff --git a/docs/assets/main_Cql_Delete.md.bf02e9a6.js b/docs/assets/main_Cql_Delete.md.18a0bc7d.js
similarity index 99%
rename from docs/assets/main_Cql_Delete.md.bf02e9a6.js
rename to docs/assets/main_Cql_Delete.md.18a0bc7d.js
index 9785c71..d61f466 100644
--- a/docs/assets/main_Cql_Delete.md.bf02e9a6.js
+++ b/docs/assets/main_Cql_Delete.md.18a0bc7d.js
@@ -1,4 +1,4 @@
-import{_ as l,o as a,c as n,x as s,a as e,S as o}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const g=JSON.parse('{"title":"Cql::Delete","description":"","frontmatter":{"title":"Cql::Delete"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(schema : Schema)","slug":"def-new-schema-schema","link":"#def-new-schema-schema","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def back(*columns : Symbol)","slug":"def-back-columns-symbol","link":"#def-back-columns-symbol","children":[]},{"level":3,"title":"def build","slug":"def-build","link":"#def-build","children":[]},{"level":3,"title":"def commit","slug":"def-commit","link":"#def-commit","children":[]},{"level":3,"title":"def from(table : Symbol)","slug":"def-from-table-symbol","link":"#def-from-table-symbol","children":[]},{"level":3,"title":"def to_sql(gen = @schema.gen)","slug":"def-to-sql-gen-schema-gen","link":"#def-to-sql-gen-schema-gen","children":[]},{"level":3,"title":"def using(table : Symbol)","slug":"def-using-table-symbol","link":"#def-using-table-symbol","children":[]},{"level":3,"title":"def where","slug":"def-where","link":"#def-where","children":[]},{"level":3,"title":"def where(attr : Hash(Symbol, DB::Any))","slug":"def-where-attr-hash-symbol-db-any","link":"#def-where-attr-hash-symbol-db-any","children":[]},{"level":3,"title":"def where","slug":"def-where-1","link":"#def-where-1","children":[]}]}],"relativePath":"main/Cql/Delete.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Delete.md"},p=s("div",null,[s("h1",{id:"class-cql-delete",tabindex:"-1"},[e("class Cql::Delete "),s("a",{class:"header-anchor",href:"#class-cql-delete","aria-hidden":"true"},"#")]),s("p",null,[s("code",null,"Reference"),e(" < "),s("code",null,"Object")]),s("p",null,"A delete query This class represents a delete query It provides methods for building a delete query It also provides methods for executing the query"),s("p",null,[s("strong",null,"Example"),e(" Deleting a record")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"delete"),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#82AAFF"}},"from"),s("span",{style:{color:"#89DDFF"}},"(:users)."),s("span",{style:{color:"#82AAFF"}},"where"),s("span",{style:{color:"#89DDFF"}},"(id:"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#F78C6C"}},"1"),s("span",{style:{color:"#89DDFF"}},")."),s("span",{style:{color:"#BABED8"}},"commit")]),e(`
+import{_ as l,o as a,c as n,x as s,a as e,S as o}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const g=JSON.parse('{"title":"Cql::Delete","description":"","frontmatter":{"title":"Cql::Delete"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(schema : Schema)","slug":"def-new-schema-schema","link":"#def-new-schema-schema","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def back(*columns : Symbol)","slug":"def-back-columns-symbol","link":"#def-back-columns-symbol","children":[]},{"level":3,"title":"def build","slug":"def-build","link":"#def-build","children":[]},{"level":3,"title":"def commit","slug":"def-commit","link":"#def-commit","children":[]},{"level":3,"title":"def from(table : Symbol)","slug":"def-from-table-symbol","link":"#def-from-table-symbol","children":[]},{"level":3,"title":"def to_sql(gen = @schema.gen)","slug":"def-to-sql-gen-schema-gen","link":"#def-to-sql-gen-schema-gen","children":[]},{"level":3,"title":"def using(table : Symbol)","slug":"def-using-table-symbol","link":"#def-using-table-symbol","children":[]},{"level":3,"title":"def where","slug":"def-where","link":"#def-where","children":[]},{"level":3,"title":"def where(attr : Hash(Symbol, DB::Any))","slug":"def-where-attr-hash-symbol-db-any","link":"#def-where-attr-hash-symbol-db-any","children":[]},{"level":3,"title":"def where","slug":"def-where-1","link":"#def-where-1","children":[]}]}],"relativePath":"main/Cql/Delete.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Delete.md"},p=s("div",null,[s("h1",{id:"class-cql-delete",tabindex:"-1"},[e("class Cql::Delete "),s("a",{class:"header-anchor",href:"#class-cql-delete","aria-hidden":"true"},"#")]),s("p",null,[s("code",null,"Reference"),e(" < "),s("code",null,"Object")]),s("p",null,"A delete query This class represents a delete query It provides methods for building a delete query It also provides methods for executing the query"),s("p",null,[s("strong",null,"Example"),e(" Deleting a record")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"delete"),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#82AAFF"}},"from"),s("span",{style:{color:"#89DDFF"}},"(:users)."),s("span",{style:{color:"#82AAFF"}},"where"),s("span",{style:{color:"#89DDFF"}},"(id:"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#F78C6C"}},"1"),s("span",{style:{color:"#89DDFF"}},")."),s("span",{style:{color:"#BABED8"}},"commit")]),e(`
 `),s("span",{class:"line"})])])]),s("details",{class:"details custom-block"},[s("summary",null,"Table of Contents"),s("nav",{class:"table-of-contents"},[s("ul",null,[s("li",null,[s("a",{href:"#constructors"},"Constructors"),s("ul",null,[s("li",null,[s("a",{href:"#def-new-schema-schema"},"def new(schema : Schema)")])])]),s("li",null,[s("a",{href:"#instance-methods"},"Instance Methods"),s("ul",null,[s("li",null,[s("a",{href:"#def-back-columns-symbol"},"def back(*columns : Symbol)")]),s("li",null,[s("a",{href:"#def-build"},"def build")]),s("li",null,[s("a",{href:"#def-commit"},"def commit")]),s("li",null,[s("a",{href:"#def-from-table-symbol"},"def from(table : Symbol)")]),s("li",null,[s("a",{href:"#def-to-sql-gen-schema-gen"},"def to_sql(gen = @schema.gen)")]),s("li",null,[s("a",{href:"#def-using-table-symbol"},"def using(table : Symbol)")]),s("li",null,[s("a",{href:"#def-where"},"def where")]),s("li",null,[s("a",{href:"#def-where-attr-hash-symbol-db-any"},"def where(attr : Hash(Symbol, DB::Any))")]),s("li",null,[s("a",{href:"#def-where-1"},"def where")])])])])])])],-1),r=o(`

Constructors

def new(schema : Schema)

Initialize the delete query

  • @param schema [Schema] The schema to use
  • @return [Delete] The delete query object

Example Deleting a record

crystal
delete = Cql::Delete.new(schema)
   .from(:users)
   .where(id: 1)
diff --git a/docs/assets/main_Cql_Delete.md.bf02e9a6.lean.js b/docs/assets/main_Cql_Delete.md.18a0bc7d.lean.js
similarity index 96%
rename from docs/assets/main_Cql_Delete.md.bf02e9a6.lean.js
rename to docs/assets/main_Cql_Delete.md.18a0bc7d.lean.js
index 9120b70..4ff7808 100644
--- a/docs/assets/main_Cql_Delete.md.bf02e9a6.lean.js
+++ b/docs/assets/main_Cql_Delete.md.18a0bc7d.lean.js
@@ -1,2 +1,2 @@
-import{_ as l,o as a,c as n,x as s,a as e,S as o}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const g=JSON.parse('{"title":"Cql::Delete","description":"","frontmatter":{"title":"Cql::Delete"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(schema : Schema)","slug":"def-new-schema-schema","link":"#def-new-schema-schema","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def back(*columns : Symbol)","slug":"def-back-columns-symbol","link":"#def-back-columns-symbol","children":[]},{"level":3,"title":"def build","slug":"def-build","link":"#def-build","children":[]},{"level":3,"title":"def commit","slug":"def-commit","link":"#def-commit","children":[]},{"level":3,"title":"def from(table : Symbol)","slug":"def-from-table-symbol","link":"#def-from-table-symbol","children":[]},{"level":3,"title":"def to_sql(gen = @schema.gen)","slug":"def-to-sql-gen-schema-gen","link":"#def-to-sql-gen-schema-gen","children":[]},{"level":3,"title":"def using(table : Symbol)","slug":"def-using-table-symbol","link":"#def-using-table-symbol","children":[]},{"level":3,"title":"def where","slug":"def-where","link":"#def-where","children":[]},{"level":3,"title":"def where(attr : Hash(Symbol, DB::Any))","slug":"def-where-attr-hash-symbol-db-any","link":"#def-where-attr-hash-symbol-db-any","children":[]},{"level":3,"title":"def where","slug":"def-where-1","link":"#def-where-1","children":[]}]}],"relativePath":"main/Cql/Delete.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Delete.md"},p=s("div",null,[s("h1",{id:"class-cql-delete",tabindex:"-1"},[e("class Cql::Delete "),s("a",{class:"header-anchor",href:"#class-cql-delete","aria-hidden":"true"},"#")]),s("p",null,[s("code",null,"Reference"),e(" < "),s("code",null,"Object")]),s("p",null,"A delete query This class represents a delete query It provides methods for building a delete query It also provides methods for executing the query"),s("p",null,[s("strong",null,"Example"),e(" Deleting a record")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"delete"),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#82AAFF"}},"from"),s("span",{style:{color:"#89DDFF"}},"(:users)."),s("span",{style:{color:"#82AAFF"}},"where"),s("span",{style:{color:"#89DDFF"}},"(id:"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#F78C6C"}},"1"),s("span",{style:{color:"#89DDFF"}},")."),s("span",{style:{color:"#BABED8"}},"commit")]),e(`
+import{_ as l,o as a,c as n,x as s,a as e,S as o}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const g=JSON.parse('{"title":"Cql::Delete","description":"","frontmatter":{"title":"Cql::Delete"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(schema : Schema)","slug":"def-new-schema-schema","link":"#def-new-schema-schema","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def back(*columns : Symbol)","slug":"def-back-columns-symbol","link":"#def-back-columns-symbol","children":[]},{"level":3,"title":"def build","slug":"def-build","link":"#def-build","children":[]},{"level":3,"title":"def commit","slug":"def-commit","link":"#def-commit","children":[]},{"level":3,"title":"def from(table : Symbol)","slug":"def-from-table-symbol","link":"#def-from-table-symbol","children":[]},{"level":3,"title":"def to_sql(gen = @schema.gen)","slug":"def-to-sql-gen-schema-gen","link":"#def-to-sql-gen-schema-gen","children":[]},{"level":3,"title":"def using(table : Symbol)","slug":"def-using-table-symbol","link":"#def-using-table-symbol","children":[]},{"level":3,"title":"def where","slug":"def-where","link":"#def-where","children":[]},{"level":3,"title":"def where(attr : Hash(Symbol, DB::Any))","slug":"def-where-attr-hash-symbol-db-any","link":"#def-where-attr-hash-symbol-db-any","children":[]},{"level":3,"title":"def where","slug":"def-where-1","link":"#def-where-1","children":[]}]}],"relativePath":"main/Cql/Delete.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Delete.md"},p=s("div",null,[s("h1",{id:"class-cql-delete",tabindex:"-1"},[e("class Cql::Delete "),s("a",{class:"header-anchor",href:"#class-cql-delete","aria-hidden":"true"},"#")]),s("p",null,[s("code",null,"Reference"),e(" < "),s("code",null,"Object")]),s("p",null,"A delete query This class represents a delete query It provides methods for building a delete query It also provides methods for executing the query"),s("p",null,[s("strong",null,"Example"),e(" Deleting a record")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"delete"),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#82AAFF"}},"from"),s("span",{style:{color:"#89DDFF"}},"(:users)."),s("span",{style:{color:"#82AAFF"}},"where"),s("span",{style:{color:"#89DDFF"}},"(id:"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#F78C6C"}},"1"),s("span",{style:{color:"#89DDFF"}},")."),s("span",{style:{color:"#BABED8"}},"commit")]),e(`
 `),s("span",{class:"line"})])])]),s("details",{class:"details custom-block"},[s("summary",null,"Table of Contents"),s("nav",{class:"table-of-contents"},[s("ul",null,[s("li",null,[s("a",{href:"#constructors"},"Constructors"),s("ul",null,[s("li",null,[s("a",{href:"#def-new-schema-schema"},"def new(schema : Schema)")])])]),s("li",null,[s("a",{href:"#instance-methods"},"Instance Methods"),s("ul",null,[s("li",null,[s("a",{href:"#def-back-columns-symbol"},"def back(*columns : Symbol)")]),s("li",null,[s("a",{href:"#def-build"},"def build")]),s("li",null,[s("a",{href:"#def-commit"},"def commit")]),s("li",null,[s("a",{href:"#def-from-table-symbol"},"def from(table : Symbol)")]),s("li",null,[s("a",{href:"#def-to-sql-gen-schema-gen"},"def to_sql(gen = @schema.gen)")]),s("li",null,[s("a",{href:"#def-using-table-symbol"},"def using(table : Symbol)")]),s("li",null,[s("a",{href:"#def-where"},"def where")]),s("li",null,[s("a",{href:"#def-where-attr-hash-symbol-db-any"},"def where(attr : Hash(Symbol, DB::Any))")]),s("li",null,[s("a",{href:"#def-where-1"},"def where")])])])])])])],-1),r=o("",53),c=[p,r];function i(y,d,F,D,h,u){return a(),n("div",null,c)}const f=l(t,[["render",i]]);export{g as __pageData,f as default};
diff --git a/docs/assets/main_Cql_Error.md.bce74228.js b/docs/assets/main_Cql_Error.md.6a11b4b7.js
similarity index 95%
rename from docs/assets/main_Cql_Error.md.bce74228.js
rename to docs/assets/main_Cql_Error.md.6a11b4b7.js
index 3222f05..e7378f7 100644
--- a/docs/assets/main_Cql_Error.md.bce74228.js
+++ b/docs/assets/main_Cql_Error.md.6a11b4b7.js
@@ -1,2 +1,2 @@
-import{_ as r,o as l,c as n,x as e,a as s}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const C=JSON.parse('{"title":"Cql::Error","description":"","frontmatter":{"title":"Cql::Error"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(message : String)","slug":"def-new-message-string","link":"#def-new-message-string","children":[]}]}],"relativePath":"main/Cql/Error.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Error.md"},a=e("div",null,[e("h1",{id:"class-cql-error",tabindex:"-1"},[s("class Cql::Error "),e("a",{class:"header-anchor",href:"#class-cql-error","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"Exception"),s(" < "),e("code",null,"Reference"),s(" < "),e("code",null,"Object")]),e("p",null,"Error class This class represents an error in the Cql library It provides a message describing the error"),e("p",null,[e("strong",null,"Example"),s(" Raising an error")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#82AAFF"}},"raise"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"Cql"),e("span",{style:{color:"#89DDFF"}},"::"),e("span",{style:{color:"#FFCB6B"}},"Error"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#82AAFF"}},"new"),e("span",{style:{color:"#89DDFF"}},"("),e("span",{style:{color:"#89DDFF"}},'"'),e("span",{style:{color:"#C3E88D"}},"Something went wrong"),e("span",{style:{color:"#89DDFF"}},'"'),e("span",{style:{color:"#89DDFF"}},")")]),s(`
+import{_ as r,o as l,c as n,x as e,a as s}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const C=JSON.parse('{"title":"Cql::Error","description":"","frontmatter":{"title":"Cql::Error"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(message : String)","slug":"def-new-message-string","link":"#def-new-message-string","children":[]}]}],"relativePath":"main/Cql/Error.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Error.md"},a=e("div",null,[e("h1",{id:"class-cql-error",tabindex:"-1"},[s("class Cql::Error "),e("a",{class:"header-anchor",href:"#class-cql-error","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"Exception"),s(" < "),e("code",null,"Reference"),s(" < "),e("code",null,"Object")]),e("p",null,"Error class This class represents an error in the Cql library It provides a message describing the error"),e("p",null,[e("strong",null,"Example"),s(" Raising an error")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#82AAFF"}},"raise"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"Cql"),e("span",{style:{color:"#89DDFF"}},"::"),e("span",{style:{color:"#FFCB6B"}},"Error"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#82AAFF"}},"new"),e("span",{style:{color:"#89DDFF"}},"("),e("span",{style:{color:"#89DDFF"}},'"'),e("span",{style:{color:"#C3E88D"}},"Something went wrong"),e("span",{style:{color:"#89DDFF"}},'"'),e("span",{style:{color:"#89DDFF"}},")")]),s(`
 `),e("span",{class:"line"})])])]),e("details",{class:"details custom-block"},[e("summary",null,"Table of Contents"),e("nav",{class:"table-of-contents"},[e("ul",null,[e("li",null,[e("a",{href:"#constructors"},"Constructors"),e("ul",null,[e("li",null,[e("a",{href:"#def-new-message-string"},"def new(message : String)")])])])])])])],-1),o=e("h2",{id:"constructors",tabindex:"-1"},[s("Constructors "),e("a",{class:"header-anchor",href:"#constructors","aria-hidden":"true"},"#")],-1),c=e("h3",{id:"def-new-message-string",tabindex:"-1"},[s("def new"),e("code",null,"(message : String)"),s(),e("a",{class:"header-anchor",href:"#def-new-message-string","aria-hidden":"true"},"#")],-1),i=e("p",null,":::",-1),d=[a,o,c,i];function p(u,h,g,m,f,_){return l(),n("div",null,d)}const D=r(t,[["render",p]]);export{C as __pageData,D as default};
diff --git a/docs/assets/main_Cql_Error.md.bce74228.lean.js b/docs/assets/main_Cql_Error.md.6a11b4b7.lean.js
similarity index 95%
rename from docs/assets/main_Cql_Error.md.bce74228.lean.js
rename to docs/assets/main_Cql_Error.md.6a11b4b7.lean.js
index 3222f05..e7378f7 100644
--- a/docs/assets/main_Cql_Error.md.bce74228.lean.js
+++ b/docs/assets/main_Cql_Error.md.6a11b4b7.lean.js
@@ -1,2 +1,2 @@
-import{_ as r,o as l,c as n,x as e,a as s}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const C=JSON.parse('{"title":"Cql::Error","description":"","frontmatter":{"title":"Cql::Error"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(message : String)","slug":"def-new-message-string","link":"#def-new-message-string","children":[]}]}],"relativePath":"main/Cql/Error.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Error.md"},a=e("div",null,[e("h1",{id:"class-cql-error",tabindex:"-1"},[s("class Cql::Error "),e("a",{class:"header-anchor",href:"#class-cql-error","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"Exception"),s(" < "),e("code",null,"Reference"),s(" < "),e("code",null,"Object")]),e("p",null,"Error class This class represents an error in the Cql library It provides a message describing the error"),e("p",null,[e("strong",null,"Example"),s(" Raising an error")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#82AAFF"}},"raise"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"Cql"),e("span",{style:{color:"#89DDFF"}},"::"),e("span",{style:{color:"#FFCB6B"}},"Error"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#82AAFF"}},"new"),e("span",{style:{color:"#89DDFF"}},"("),e("span",{style:{color:"#89DDFF"}},'"'),e("span",{style:{color:"#C3E88D"}},"Something went wrong"),e("span",{style:{color:"#89DDFF"}},'"'),e("span",{style:{color:"#89DDFF"}},")")]),s(`
+import{_ as r,o as l,c as n,x as e,a as s}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const C=JSON.parse('{"title":"Cql::Error","description":"","frontmatter":{"title":"Cql::Error"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(message : String)","slug":"def-new-message-string","link":"#def-new-message-string","children":[]}]}],"relativePath":"main/Cql/Error.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Error.md"},a=e("div",null,[e("h1",{id:"class-cql-error",tabindex:"-1"},[s("class Cql::Error "),e("a",{class:"header-anchor",href:"#class-cql-error","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"Exception"),s(" < "),e("code",null,"Reference"),s(" < "),e("code",null,"Object")]),e("p",null,"Error class This class represents an error in the Cql library It provides a message describing the error"),e("p",null,[e("strong",null,"Example"),s(" Raising an error")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#82AAFF"}},"raise"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"Cql"),e("span",{style:{color:"#89DDFF"}},"::"),e("span",{style:{color:"#FFCB6B"}},"Error"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#82AAFF"}},"new"),e("span",{style:{color:"#89DDFF"}},"("),e("span",{style:{color:"#89DDFF"}},'"'),e("span",{style:{color:"#C3E88D"}},"Something went wrong"),e("span",{style:{color:"#89DDFF"}},'"'),e("span",{style:{color:"#89DDFF"}},")")]),s(`
 `),e("span",{class:"line"})])])]),e("details",{class:"details custom-block"},[e("summary",null,"Table of Contents"),e("nav",{class:"table-of-contents"},[e("ul",null,[e("li",null,[e("a",{href:"#constructors"},"Constructors"),e("ul",null,[e("li",null,[e("a",{href:"#def-new-message-string"},"def new(message : String)")])])])])])])],-1),o=e("h2",{id:"constructors",tabindex:"-1"},[s("Constructors "),e("a",{class:"header-anchor",href:"#constructors","aria-hidden":"true"},"#")],-1),c=e("h3",{id:"def-new-message-string",tabindex:"-1"},[s("def new"),e("code",null,"(message : String)"),s(),e("a",{class:"header-anchor",href:"#def-new-message-string","aria-hidden":"true"},"#")],-1),i=e("p",null,":::",-1),d=[a,o,c,i];function p(u,h,g,m,f,_){return l(),n("div",null,d)}const D=r(t,[["render",p]]);export{C as __pageData,D as default};
diff --git a/docs/assets/main_Cql_ForeignKey.md.419e170a.js b/docs/assets/main_Cql_ForeignKey.md.40555aa1.js
similarity index 97%
rename from docs/assets/main_Cql_ForeignKey.md.419e170a.js
rename to docs/assets/main_Cql_ForeignKey.md.40555aa1.js
index db08686..7371d98 100644
--- a/docs/assets/main_Cql_ForeignKey.md.419e170a.js
+++ b/docs/assets/main_Cql_ForeignKey.md.40555aa1.js
@@ -1,4 +1,4 @@
-import{_ as l,o as n,c as o,x as e,a as s}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const g=JSON.parse('{"title":"Cql::ForeignKey","description":"","frontmatter":{"title":"Cql::ForeignKey"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(name : Symbol, columns : Array(Symbol), table : Symbol, references : Array(Symbol), on_delete : String = \\"NO ACTION\\", on_update : String = \\"NO ACTION\\")","slug":"def-new-name-symbol-columns-array-symbol-table-symbol-references-array-symbol-on-delete-string-no-action-on-update-string-no-action","link":"#def-new-name-symbol-columns-array-symbol-table-symbol-references-array-symbol-on-delete-string-no-action-on-update-string-no-action","children":[]}]}],"relativePath":"main/Cql/ForeignKey.md","lastUpdated":1723931959000}'),a={name:"main/Cql/ForeignKey.md"},t=e("div",null,[e("h1",{id:"class-cql-foreignkey",tabindex:"-1"},[s("class Cql::ForeignKey "),e("a",{class:"header-anchor",href:"#class-cql-foreignkey","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"Reference"),s(" < "),e("code",null,"Object")]),e("p",null,"A foreign key constraint This class represents a foreign key constraint It provides methods for setting the columns, table, and references It also provides methods for setting the on delete and on update actions"),e("p",null,[e("strong",null,"Example"),s(" Creating a new foreign key")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"schema"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#BABED8"}},"build "),e("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),s(`
+import{_ as l,o as n,c as o,x as e,a as s}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const g=JSON.parse('{"title":"Cql::ForeignKey","description":"","frontmatter":{"title":"Cql::ForeignKey"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(name : Symbol, columns : Array(Symbol), table : Symbol, references : Array(Symbol), on_delete : String = \\"NO ACTION\\", on_update : String = \\"NO ACTION\\")","slug":"def-new-name-symbol-columns-array-symbol-table-symbol-references-array-symbol-on-delete-string-no-action-on-update-string-no-action","link":"#def-new-name-symbol-columns-array-symbol-table-symbol-references-array-symbol-on-delete-string-no-action-on-update-string-no-action","children":[]}]}],"relativePath":"main/Cql/ForeignKey.md","lastUpdated":1723931959000}'),a={name:"main/Cql/ForeignKey.md"},t=e("div",null,[e("h1",{id:"class-cql-foreignkey",tabindex:"-1"},[s("class Cql::ForeignKey "),e("a",{class:"header-anchor",href:"#class-cql-foreignkey","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"Reference"),s(" < "),e("code",null,"Object")]),e("p",null,"A foreign key constraint This class represents a foreign key constraint It provides methods for setting the columns, table, and references It also provides methods for setting the on delete and on update actions"),e("p",null,[e("strong",null,"Example"),s(" Creating a new foreign key")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"schema"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#BABED8"}},"build "),e("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),s(`
 `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"  table "),e("span",{style:{color:"#89DDFF"}},":users"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),s(`
 `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"    column "),e("span",{style:{color:"#89DDFF"}},":id,"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"Int32"),e("span",{style:{color:"#89DDFF"}},","),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF"}},"primary:"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FF9CAC"}},"true")]),s(`
 `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"    column "),e("span",{style:{color:"#89DDFF"}},":name,"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"String")]),s(`
diff --git a/docs/assets/main_Cql_ForeignKey.md.419e170a.lean.js b/docs/assets/main_Cql_ForeignKey.md.40555aa1.lean.js
similarity index 97%
rename from docs/assets/main_Cql_ForeignKey.md.419e170a.lean.js
rename to docs/assets/main_Cql_ForeignKey.md.40555aa1.lean.js
index db08686..7371d98 100644
--- a/docs/assets/main_Cql_ForeignKey.md.419e170a.lean.js
+++ b/docs/assets/main_Cql_ForeignKey.md.40555aa1.lean.js
@@ -1,4 +1,4 @@
-import{_ as l,o as n,c as o,x as e,a as s}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const g=JSON.parse('{"title":"Cql::ForeignKey","description":"","frontmatter":{"title":"Cql::ForeignKey"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(name : Symbol, columns : Array(Symbol), table : Symbol, references : Array(Symbol), on_delete : String = \\"NO ACTION\\", on_update : String = \\"NO ACTION\\")","slug":"def-new-name-symbol-columns-array-symbol-table-symbol-references-array-symbol-on-delete-string-no-action-on-update-string-no-action","link":"#def-new-name-symbol-columns-array-symbol-table-symbol-references-array-symbol-on-delete-string-no-action-on-update-string-no-action","children":[]}]}],"relativePath":"main/Cql/ForeignKey.md","lastUpdated":1723931959000}'),a={name:"main/Cql/ForeignKey.md"},t=e("div",null,[e("h1",{id:"class-cql-foreignkey",tabindex:"-1"},[s("class Cql::ForeignKey "),e("a",{class:"header-anchor",href:"#class-cql-foreignkey","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"Reference"),s(" < "),e("code",null,"Object")]),e("p",null,"A foreign key constraint This class represents a foreign key constraint It provides methods for setting the columns, table, and references It also provides methods for setting the on delete and on update actions"),e("p",null,[e("strong",null,"Example"),s(" Creating a new foreign key")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"schema"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#BABED8"}},"build "),e("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),s(`
+import{_ as l,o as n,c as o,x as e,a as s}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const g=JSON.parse('{"title":"Cql::ForeignKey","description":"","frontmatter":{"title":"Cql::ForeignKey"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(name : Symbol, columns : Array(Symbol), table : Symbol, references : Array(Symbol), on_delete : String = \\"NO ACTION\\", on_update : String = \\"NO ACTION\\")","slug":"def-new-name-symbol-columns-array-symbol-table-symbol-references-array-symbol-on-delete-string-no-action-on-update-string-no-action","link":"#def-new-name-symbol-columns-array-symbol-table-symbol-references-array-symbol-on-delete-string-no-action-on-update-string-no-action","children":[]}]}],"relativePath":"main/Cql/ForeignKey.md","lastUpdated":1723931959000}'),a={name:"main/Cql/ForeignKey.md"},t=e("div",null,[e("h1",{id:"class-cql-foreignkey",tabindex:"-1"},[s("class Cql::ForeignKey "),e("a",{class:"header-anchor",href:"#class-cql-foreignkey","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"Reference"),s(" < "),e("code",null,"Object")]),e("p",null,"A foreign key constraint This class represents a foreign key constraint It provides methods for setting the columns, table, and references It also provides methods for setting the on delete and on update actions"),e("p",null,[e("strong",null,"Example"),s(" Creating a new foreign key")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"schema"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#BABED8"}},"build "),e("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),s(`
 `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"  table "),e("span",{style:{color:"#89DDFF"}},":users"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),s(`
 `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"    column "),e("span",{style:{color:"#89DDFF"}},":id,"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"Int32"),e("span",{style:{color:"#89DDFF"}},","),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF"}},"primary:"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FF9CAC"}},"true")]),s(`
 `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"    column "),e("span",{style:{color:"#89DDFF"}},":name,"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"String")]),s(`
diff --git a/docs/assets/main_Cql_Insert.md.daf9a018.js b/docs/assets/main_Cql_Insert.md.9423888f.js
similarity index 99%
rename from docs/assets/main_Cql_Insert.md.daf9a018.js
rename to docs/assets/main_Cql_Insert.md.9423888f.js
index 12ae44d..e995dd7 100644
--- a/docs/assets/main_Cql_Insert.md.daf9a018.js
+++ b/docs/assets/main_Cql_Insert.md.9423888f.js
@@ -1,4 +1,4 @@
-import{_ as e,o as l,c as n,x as s,a,S as o}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const g=JSON.parse('{"title":"Cql::Insert","description":"","frontmatter":{"title":"Cql::Insert"},"headers":[{"level":2,"title":"Constants","slug":"constants","link":"#constants","children":[{"level":3,"title":"Log","slug":"log","link":"#log","children":[]}]},{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(schema : Schema)","slug":"def-new-schema-schema","link":"#def-new-schema-schema","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def back(*columns : Symbol)","slug":"def-back-columns-symbol","link":"#def-back-columns-symbol","children":[]},{"level":3,"title":"def build","slug":"def-build","link":"#def-build","children":[]},{"level":3,"title":"def commit","slug":"def-commit","link":"#def-commit","children":[]},{"level":3,"title":"def into(table : Symbol)","slug":"def-into-table-symbol","link":"#def-into-table-symbol","children":[]},{"level":3,"title":"def last_insert_id(as type : PrimaryKeyType = Int64)","slug":"def-last-insert-id-as-type-primarykeytype-int64","link":"#def-last-insert-id-as-type-primarykeytype-int64","children":[]},{"level":3,"title":"def query(query : Query)","slug":"def-query-query-query","link":"#def-query-query-query","children":[]},{"level":3,"title":"def to_sql(gen = @schema.gen)","slug":"def-to-sql-gen-schema-gen","link":"#def-to-sql-gen-schema-gen","children":[]},{"level":3,"title":"def values(values : Array(Hash(Symbol, DB::Any)))","slug":"def-values-values-array-hash-symbol-db-any","link":"#def-values-values-array-hash-symbol-db-any","children":[]},{"level":3,"title":"def values(hash : Hash(Symbol, DB::Any))","slug":"def-values-hash-hash-symbol-db-any","link":"#def-values-hash-hash-symbol-db-any","children":[]},{"level":3,"title":"def values","slug":"def-values","link":"#def-values","children":[]}]}],"relativePath":"main/Cql/Insert.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Insert.md"},r=s("div",null,[s("h1",{id:"class-cql-insert",tabindex:"-1"},[a("class Cql::Insert "),s("a",{class:"header-anchor",href:"#class-cql-insert","aria-hidden":"true"},"#")]),s("p",null,[s("code",null,"Reference"),a(" < "),s("code",null,"Object")]),s("p",null,"An insert statement builder class This class provides methods for building an insert statement It also provides methods for executing the statement"),s("p",null,[s("strong",null,"Example"),a(" Inserting a record")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"insert")]),a(`
+import{_ as e,o as l,c as n,x as s,a,S as o}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const g=JSON.parse('{"title":"Cql::Insert","description":"","frontmatter":{"title":"Cql::Insert"},"headers":[{"level":2,"title":"Constants","slug":"constants","link":"#constants","children":[{"level":3,"title":"Log","slug":"log","link":"#log","children":[]}]},{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(schema : Schema)","slug":"def-new-schema-schema","link":"#def-new-schema-schema","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def back(*columns : Symbol)","slug":"def-back-columns-symbol","link":"#def-back-columns-symbol","children":[]},{"level":3,"title":"def build","slug":"def-build","link":"#def-build","children":[]},{"level":3,"title":"def commit","slug":"def-commit","link":"#def-commit","children":[]},{"level":3,"title":"def into(table : Symbol)","slug":"def-into-table-symbol","link":"#def-into-table-symbol","children":[]},{"level":3,"title":"def last_insert_id(as type : PrimaryKeyType = Int64)","slug":"def-last-insert-id-as-type-primarykeytype-int64","link":"#def-last-insert-id-as-type-primarykeytype-int64","children":[]},{"level":3,"title":"def query(query : Query)","slug":"def-query-query-query","link":"#def-query-query-query","children":[]},{"level":3,"title":"def to_sql(gen = @schema.gen)","slug":"def-to-sql-gen-schema-gen","link":"#def-to-sql-gen-schema-gen","children":[]},{"level":3,"title":"def values(values : Array(Hash(Symbol, DB::Any)))","slug":"def-values-values-array-hash-symbol-db-any","link":"#def-values-values-array-hash-symbol-db-any","children":[]},{"level":3,"title":"def values(hash : Hash(Symbol, DB::Any))","slug":"def-values-hash-hash-symbol-db-any","link":"#def-values-hash-hash-symbol-db-any","children":[]},{"level":3,"title":"def values","slug":"def-values","link":"#def-values","children":[]}]}],"relativePath":"main/Cql/Insert.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Insert.md"},r=s("div",null,[s("h1",{id:"class-cql-insert",tabindex:"-1"},[a("class Cql::Insert "),s("a",{class:"header-anchor",href:"#class-cql-insert","aria-hidden":"true"},"#")]),s("p",null,[s("code",null,"Reference"),a(" < "),s("code",null,"Object")]),s("p",null,"An insert statement builder class This class provides methods for building an insert statement It also provides methods for executing the statement"),s("p",null,[s("strong",null,"Example"),a(" Inserting a record")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"insert")]),a(`
 `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"  "),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#82AAFF"}},"into"),s("span",{style:{color:"#89DDFF"}},"(:users)")]),a(`
 `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"  "),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#82AAFF"}},"values"),s("span",{style:{color:"#89DDFF"}},"(name:"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},'"'),s("span",{style:{color:"#C3E88D"}},"John"),s("span",{style:{color:"#89DDFF"}},'"'),s("span",{style:{color:"#89DDFF"}},","),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},"age:"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#F78C6C"}},"30"),s("span",{style:{color:"#89DDFF"}},")")]),a(`
 `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"  "),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#BABED8"}},"last_insert_id")]),a(`
diff --git a/docs/assets/main_Cql_Insert.md.daf9a018.lean.js b/docs/assets/main_Cql_Insert.md.9423888f.lean.js
similarity index 98%
rename from docs/assets/main_Cql_Insert.md.daf9a018.lean.js
rename to docs/assets/main_Cql_Insert.md.9423888f.lean.js
index 0282724..9ace088 100644
--- a/docs/assets/main_Cql_Insert.md.daf9a018.lean.js
+++ b/docs/assets/main_Cql_Insert.md.9423888f.lean.js
@@ -1,4 +1,4 @@
-import{_ as e,o as l,c as n,x as s,a,S as o}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const g=JSON.parse('{"title":"Cql::Insert","description":"","frontmatter":{"title":"Cql::Insert"},"headers":[{"level":2,"title":"Constants","slug":"constants","link":"#constants","children":[{"level":3,"title":"Log","slug":"log","link":"#log","children":[]}]},{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(schema : Schema)","slug":"def-new-schema-schema","link":"#def-new-schema-schema","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def back(*columns : Symbol)","slug":"def-back-columns-symbol","link":"#def-back-columns-symbol","children":[]},{"level":3,"title":"def build","slug":"def-build","link":"#def-build","children":[]},{"level":3,"title":"def commit","slug":"def-commit","link":"#def-commit","children":[]},{"level":3,"title":"def into(table : Symbol)","slug":"def-into-table-symbol","link":"#def-into-table-symbol","children":[]},{"level":3,"title":"def last_insert_id(as type : PrimaryKeyType = Int64)","slug":"def-last-insert-id-as-type-primarykeytype-int64","link":"#def-last-insert-id-as-type-primarykeytype-int64","children":[]},{"level":3,"title":"def query(query : Query)","slug":"def-query-query-query","link":"#def-query-query-query","children":[]},{"level":3,"title":"def to_sql(gen = @schema.gen)","slug":"def-to-sql-gen-schema-gen","link":"#def-to-sql-gen-schema-gen","children":[]},{"level":3,"title":"def values(values : Array(Hash(Symbol, DB::Any)))","slug":"def-values-values-array-hash-symbol-db-any","link":"#def-values-values-array-hash-symbol-db-any","children":[]},{"level":3,"title":"def values(hash : Hash(Symbol, DB::Any))","slug":"def-values-hash-hash-symbol-db-any","link":"#def-values-hash-hash-symbol-db-any","children":[]},{"level":3,"title":"def values","slug":"def-values","link":"#def-values","children":[]}]}],"relativePath":"main/Cql/Insert.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Insert.md"},r=s("div",null,[s("h1",{id:"class-cql-insert",tabindex:"-1"},[a("class Cql::Insert "),s("a",{class:"header-anchor",href:"#class-cql-insert","aria-hidden":"true"},"#")]),s("p",null,[s("code",null,"Reference"),a(" < "),s("code",null,"Object")]),s("p",null,"An insert statement builder class This class provides methods for building an insert statement It also provides methods for executing the statement"),s("p",null,[s("strong",null,"Example"),a(" Inserting a record")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"insert")]),a(`
+import{_ as e,o as l,c as n,x as s,a,S as o}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const g=JSON.parse('{"title":"Cql::Insert","description":"","frontmatter":{"title":"Cql::Insert"},"headers":[{"level":2,"title":"Constants","slug":"constants","link":"#constants","children":[{"level":3,"title":"Log","slug":"log","link":"#log","children":[]}]},{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(schema : Schema)","slug":"def-new-schema-schema","link":"#def-new-schema-schema","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def back(*columns : Symbol)","slug":"def-back-columns-symbol","link":"#def-back-columns-symbol","children":[]},{"level":3,"title":"def build","slug":"def-build","link":"#def-build","children":[]},{"level":3,"title":"def commit","slug":"def-commit","link":"#def-commit","children":[]},{"level":3,"title":"def into(table : Symbol)","slug":"def-into-table-symbol","link":"#def-into-table-symbol","children":[]},{"level":3,"title":"def last_insert_id(as type : PrimaryKeyType = Int64)","slug":"def-last-insert-id-as-type-primarykeytype-int64","link":"#def-last-insert-id-as-type-primarykeytype-int64","children":[]},{"level":3,"title":"def query(query : Query)","slug":"def-query-query-query","link":"#def-query-query-query","children":[]},{"level":3,"title":"def to_sql(gen = @schema.gen)","slug":"def-to-sql-gen-schema-gen","link":"#def-to-sql-gen-schema-gen","children":[]},{"level":3,"title":"def values(values : Array(Hash(Symbol, DB::Any)))","slug":"def-values-values-array-hash-symbol-db-any","link":"#def-values-values-array-hash-symbol-db-any","children":[]},{"level":3,"title":"def values(hash : Hash(Symbol, DB::Any))","slug":"def-values-hash-hash-symbol-db-any","link":"#def-values-hash-hash-symbol-db-any","children":[]},{"level":3,"title":"def values","slug":"def-values","link":"#def-values","children":[]}]}],"relativePath":"main/Cql/Insert.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Insert.md"},r=s("div",null,[s("h1",{id:"class-cql-insert",tabindex:"-1"},[a("class Cql::Insert "),s("a",{class:"header-anchor",href:"#class-cql-insert","aria-hidden":"true"},"#")]),s("p",null,[s("code",null,"Reference"),a(" < "),s("code",null,"Object")]),s("p",null,"An insert statement builder class This class provides methods for building an insert statement It also provides methods for executing the statement"),s("p",null,[s("strong",null,"Example"),a(" Inserting a record")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"insert")]),a(`
 `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"  "),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#82AAFF"}},"into"),s("span",{style:{color:"#89DDFF"}},"(:users)")]),a(`
 `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"  "),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#82AAFF"}},"values"),s("span",{style:{color:"#89DDFF"}},"(name:"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},'"'),s("span",{style:{color:"#C3E88D"}},"John"),s("span",{style:{color:"#89DDFF"}},'"'),s("span",{style:{color:"#89DDFF"}},","),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},"age:"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#F78C6C"}},"30"),s("span",{style:{color:"#89DDFF"}},")")]),a(`
 `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"  "),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#BABED8"}},"last_insert_id")]),a(`
diff --git a/docs/assets/main_Cql_Migration.md.8b1eb018.js b/docs/assets/main_Cql_Migration.md.2dc49fe1.js
similarity index 99%
rename from docs/assets/main_Cql_Migration.md.8b1eb018.js
rename to docs/assets/main_Cql_Migration.md.2dc49fe1.js
index af4fa1f..a916f50 100644
--- a/docs/assets/main_Cql_Migration.md.8b1eb018.js
+++ b/docs/assets/main_Cql_Migration.md.2dc49fe1.js
@@ -1,4 +1,4 @@
-import{_ as a,o as e,c as n,x as l,a as s,S as o}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const g=JSON.parse('{"title":"Cql::Migration","description":"","frontmatter":{"title":"Cql::Migration"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(schema : Schema)","slug":"def-new-schema-schema","link":"#def-new-schema-schema","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def down","slug":"def-down","link":"#def-down","children":[]},{"level":3,"title":"def schema","slug":"def-schema","link":"#def-schema","children":[]},{"level":3,"title":"def up","slug":"def-up","link":"#def-up","children":[]}]}],"relativePath":"main/Cql/Migration.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Migration.md"},c=l("div",null,[l("h1",{id:"class-cql-migration",tabindex:"-1"},[s("class Cql::Migration "),l("a",{class:"header-anchor",href:"#class-cql-migration","aria-hidden":"true"},"#")]),l("p",null,[l("code",null,"Reference"),s(" < "),l("code",null,"Object")]),l("p",null,[s("Migrations are used to manage changes to the database schema over time. Each migration is a subclass of "),l("code",null,"Migration"),s(" and must implement the "),l("code",null,"up"),s(" and "),l("code",null,"down"),s(" methods.")]),l("p",null,[s("The "),l("code",null,"up"),s(" method is used to apply the migration, while the "),l("code",null,"down"),s(" method is used to rollback the migration. Migrations are executed in their version order defined. The "),l("code",null,"Migrator"),s(" class is used to manage migrations and provides methods to apply, rollback, and redo migrations. The "),l("code",null,"Migrator"),s(" class also provides methods to list applied and pending migrations.")]),l("p",null,[l("strong",null,"Example"),s(" Creating a new migration")]),l("div",{class:"language-crystal"},[l("button",{title:"Copy Code",class:"copy"}),l("span",{class:"lang"},"crystal"),l("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[l("code",null,[l("span",{class:"line"},[l("span",{style:{color:"#89DDFF","font-style":"italic"}},"class"),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#FFCB6B"}},"CreateUsersTable "),l("span",{style:{color:"#89DDFF"}},"<"),l("span",{style:{color:"#FFCB6B"}}," Cql::Migration")]),s(`
+import{_ as a,o as e,c as n,x as l,a as s,S as o}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const g=JSON.parse('{"title":"Cql::Migration","description":"","frontmatter":{"title":"Cql::Migration"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(schema : Schema)","slug":"def-new-schema-schema","link":"#def-new-schema-schema","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def down","slug":"def-down","link":"#def-down","children":[]},{"level":3,"title":"def schema","slug":"def-schema","link":"#def-schema","children":[]},{"level":3,"title":"def up","slug":"def-up","link":"#def-up","children":[]}]}],"relativePath":"main/Cql/Migration.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Migration.md"},c=l("div",null,[l("h1",{id:"class-cql-migration",tabindex:"-1"},[s("class Cql::Migration "),l("a",{class:"header-anchor",href:"#class-cql-migration","aria-hidden":"true"},"#")]),l("p",null,[l("code",null,"Reference"),s(" < "),l("code",null,"Object")]),l("p",null,[s("Migrations are used to manage changes to the database schema over time. Each migration is a subclass of "),l("code",null,"Migration"),s(" and must implement the "),l("code",null,"up"),s(" and "),l("code",null,"down"),s(" methods.")]),l("p",null,[s("The "),l("code",null,"up"),s(" method is used to apply the migration, while the "),l("code",null,"down"),s(" method is used to rollback the migration. Migrations are executed in their version order defined. The "),l("code",null,"Migrator"),s(" class is used to manage migrations and provides methods to apply, rollback, and redo migrations. The "),l("code",null,"Migrator"),s(" class also provides methods to list applied and pending migrations.")]),l("p",null,[l("strong",null,"Example"),s(" Creating a new migration")]),l("div",{class:"language-crystal"},[l("button",{title:"Copy Code",class:"copy"}),l("span",{class:"lang"},"crystal"),l("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[l("code",null,[l("span",{class:"line"},[l("span",{style:{color:"#89DDFF","font-style":"italic"}},"class"),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#FFCB6B"}},"CreateUsersTable "),l("span",{style:{color:"#89DDFF"}},"<"),l("span",{style:{color:"#FFCB6B"}}," Cql::Migration")]),s(`
 `),l("span",{class:"line"},[l("span",{style:{color:"#BABED8"}},"  self"),l("span",{style:{color:"#89DDFF"}},"."),l("span",{style:{color:"#BABED8"}},"version "),l("span",{style:{color:"#89DDFF"}},"="),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#F78C6C"}},"1_i64")]),s(`
 `),l("span",{class:"line"}),s(`
 `),l("span",{class:"line"},[l("span",{style:{color:"#BABED8"}},"  "),l("span",{style:{color:"#89DDFF","font-style":"italic"}},"def"),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#82AAFF"}},"up")]),s(`
diff --git a/docs/assets/main_Cql_Migration.md.8b1eb018.lean.js b/docs/assets/main_Cql_Migration.md.2dc49fe1.lean.js
similarity index 99%
rename from docs/assets/main_Cql_Migration.md.8b1eb018.lean.js
rename to docs/assets/main_Cql_Migration.md.2dc49fe1.lean.js
index 991e247..d9b5bc9 100644
--- a/docs/assets/main_Cql_Migration.md.8b1eb018.lean.js
+++ b/docs/assets/main_Cql_Migration.md.2dc49fe1.lean.js
@@ -1,4 +1,4 @@
-import{_ as a,o as e,c as n,x as l,a as s,S as o}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const g=JSON.parse('{"title":"Cql::Migration","description":"","frontmatter":{"title":"Cql::Migration"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(schema : Schema)","slug":"def-new-schema-schema","link":"#def-new-schema-schema","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def down","slug":"def-down","link":"#def-down","children":[]},{"level":3,"title":"def schema","slug":"def-schema","link":"#def-schema","children":[]},{"level":3,"title":"def up","slug":"def-up","link":"#def-up","children":[]}]}],"relativePath":"main/Cql/Migration.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Migration.md"},c=l("div",null,[l("h1",{id:"class-cql-migration",tabindex:"-1"},[s("class Cql::Migration "),l("a",{class:"header-anchor",href:"#class-cql-migration","aria-hidden":"true"},"#")]),l("p",null,[l("code",null,"Reference"),s(" < "),l("code",null,"Object")]),l("p",null,[s("Migrations are used to manage changes to the database schema over time. Each migration is a subclass of "),l("code",null,"Migration"),s(" and must implement the "),l("code",null,"up"),s(" and "),l("code",null,"down"),s(" methods.")]),l("p",null,[s("The "),l("code",null,"up"),s(" method is used to apply the migration, while the "),l("code",null,"down"),s(" method is used to rollback the migration. Migrations are executed in their version order defined. The "),l("code",null,"Migrator"),s(" class is used to manage migrations and provides methods to apply, rollback, and redo migrations. The "),l("code",null,"Migrator"),s(" class also provides methods to list applied and pending migrations.")]),l("p",null,[l("strong",null,"Example"),s(" Creating a new migration")]),l("div",{class:"language-crystal"},[l("button",{title:"Copy Code",class:"copy"}),l("span",{class:"lang"},"crystal"),l("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[l("code",null,[l("span",{class:"line"},[l("span",{style:{color:"#89DDFF","font-style":"italic"}},"class"),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#FFCB6B"}},"CreateUsersTable "),l("span",{style:{color:"#89DDFF"}},"<"),l("span",{style:{color:"#FFCB6B"}}," Cql::Migration")]),s(`
+import{_ as a,o as e,c as n,x as l,a as s,S as o}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const g=JSON.parse('{"title":"Cql::Migration","description":"","frontmatter":{"title":"Cql::Migration"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(schema : Schema)","slug":"def-new-schema-schema","link":"#def-new-schema-schema","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def down","slug":"def-down","link":"#def-down","children":[]},{"level":3,"title":"def schema","slug":"def-schema","link":"#def-schema","children":[]},{"level":3,"title":"def up","slug":"def-up","link":"#def-up","children":[]}]}],"relativePath":"main/Cql/Migration.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Migration.md"},c=l("div",null,[l("h1",{id:"class-cql-migration",tabindex:"-1"},[s("class Cql::Migration "),l("a",{class:"header-anchor",href:"#class-cql-migration","aria-hidden":"true"},"#")]),l("p",null,[l("code",null,"Reference"),s(" < "),l("code",null,"Object")]),l("p",null,[s("Migrations are used to manage changes to the database schema over time. Each migration is a subclass of "),l("code",null,"Migration"),s(" and must implement the "),l("code",null,"up"),s(" and "),l("code",null,"down"),s(" methods.")]),l("p",null,[s("The "),l("code",null,"up"),s(" method is used to apply the migration, while the "),l("code",null,"down"),s(" method is used to rollback the migration. Migrations are executed in their version order defined. The "),l("code",null,"Migrator"),s(" class is used to manage migrations and provides methods to apply, rollback, and redo migrations. The "),l("code",null,"Migrator"),s(" class also provides methods to list applied and pending migrations.")]),l("p",null,[l("strong",null,"Example"),s(" Creating a new migration")]),l("div",{class:"language-crystal"},[l("button",{title:"Copy Code",class:"copy"}),l("span",{class:"lang"},"crystal"),l("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[l("code",null,[l("span",{class:"line"},[l("span",{style:{color:"#89DDFF","font-style":"italic"}},"class"),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#FFCB6B"}},"CreateUsersTable "),l("span",{style:{color:"#89DDFF"}},"<"),l("span",{style:{color:"#FFCB6B"}}," Cql::Migration")]),s(`
 `),l("span",{class:"line"},[l("span",{style:{color:"#BABED8"}},"  self"),l("span",{style:{color:"#89DDFF"}},"."),l("span",{style:{color:"#BABED8"}},"version "),l("span",{style:{color:"#89DDFF"}},"="),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#F78C6C"}},"1_i64")]),s(`
 `),l("span",{class:"line"}),s(`
 `),l("span",{class:"line"},[l("span",{style:{color:"#BABED8"}},"  "),l("span",{style:{color:"#89DDFF","font-style":"italic"}},"def"),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#82AAFF"}},"up")]),s(`
diff --git a/docs/assets/main_Cql_Migrator.md.5a68f1e4.js b/docs/assets/main_Cql_Migrator.md.a62219bc.js
similarity index 99%
rename from docs/assets/main_Cql_Migrator.md.5a68f1e4.js
rename to docs/assets/main_Cql_Migrator.md.a62219bc.js
index a307e0b..a4b02a5 100644
--- a/docs/assets/main_Cql_Migrator.md.5a68f1e4.js
+++ b/docs/assets/main_Cql_Migrator.md.a62219bc.js
@@ -1,4 +1,4 @@
-import{_ as e,o as n,c as l,x as s,a,S as t}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const F=JSON.parse('{"title":"Cql::Migrator","description":"","frontmatter":{"title":"Cql::Migrator"},"headers":[{"level":2,"title":"Constants","slug":"constants","link":"#constants","children":[{"level":3,"title":"Log","slug":"log","link":"#log","children":[]}]},{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(schema : Schema)","slug":"def-new-schema-schema","link":"#def-new-schema-schema","children":[]}]},{"level":2,"title":"Class Methods","slug":"class-methods","link":"#class-methods","children":[{"level":3,"title":"def migrations","slug":"def-migrations","link":"#def-migrations","children":[]},{"level":3,"title":"def migrations=(migrations : Array(Migration.class))","slug":"def-migrations-migrations-array-migration-class","link":"#def-migrations-migrations-array-migration-class","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def applied_migrations","slug":"def-applied-migrations","link":"#def-applied-migrations","children":[]},{"level":3,"title":"def down(steps : Int32 = Migrator.migrations.size)","slug":"def-down-steps-int32-migrator-migrations-size","link":"#def-down-steps-int32-migrator-migrations-size","children":[]},{"level":3,"title":"def down_to(version : Int64)","slug":"def-down-to-version-int64","link":"#def-down-to-version-int64","children":[]},{"level":3,"title":"def last","slug":"def-last","link":"#def-last","children":[]},{"level":3,"title":"def pending_migrations","slug":"def-pending-migrations","link":"#def-pending-migrations","children":[]},{"level":3,"title":"def print_applied_migrations","slug":"def-print-applied-migrations","link":"#def-print-applied-migrations","children":[]},{"level":3,"title":"def print_pending_migrations","slug":"def-print-pending-migrations","link":"#def-print-pending-migrations","children":[]},{"level":3,"title":"def print_rolled_back_migrations(m : Array(Migration.class))","slug":"def-print-rolled-back-migrations-m-array-migration-class","link":"#def-print-rolled-back-migrations-m-array-migration-class","children":[]},{"level":3,"title":"def redo","slug":"def-redo","link":"#def-redo","children":[]},{"level":3,"title":"def repo","slug":"def-repo","link":"#def-repo","children":[]},{"level":3,"title":"def rollback(steps : Int32 = 1)","slug":"def-rollback-steps-int32-1","link":"#def-rollback-steps-int32-1","children":[]},{"level":3,"title":"def schema","slug":"def-schema","link":"#def-schema","children":[]},{"level":3,"title":"def up(steps : Int32 = Migrator.migrations.size)","slug":"def-up-steps-int32-migrator-migrations-size","link":"#def-up-steps-int32-migrator-migrations-size","children":[]},{"level":3,"title":"def up_to(version : Int64)","slug":"def-up-to-version-int64","link":"#def-up-to-version-int64","children":[]}]}],"relativePath":"main/Cql/Migrator.md","lastUpdated":1723931959000}'),i={name:"main/Cql/Migrator.md"},o=s("div",null,[s("h1",{id:"class-cql-migrator",tabindex:"-1"},[a("class Cql::Migrator "),s("a",{class:"header-anchor",href:"#class-cql-migrator","aria-hidden":"true"},"#")]),s("p",null,[s("code",null,"Reference"),a(" < "),s("code",null,"Object")]),s("p",null,[a("The "),s("code",null,"Migrator"),a(" class is used to manage migrations and provides methods to apply, rollback, and redo migrations. The "),s("code",null,"Migrator"),a(" class also provides methods to list applied and pending migrations. "),s("strong",null,"Example"),a(" Creating a new migrator")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"schema "),s("span",{style:{color:"#89DDFF"}},"="),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Cql"),s("span",{style:{color:"#89DDFF"}},"::"),s("span",{style:{color:"#FFCB6B"}},"Schema"),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#82AAFF"}},"build"),s("span",{style:{color:"#89DDFF"}},"(:northwind,"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},'"'),s("span",{style:{color:"#C3E88D"}},"sqlite3://db.sqlite3"),s("span",{style:{color:"#89DDFF"}},'"'),s("span",{style:{color:"#89DDFF"}},")"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF","font-style":"italic"}},"do "),s("span",{style:{color:"#89DDFF"}},"|"),s("span",{style:{color:"#BABED8"}},"s"),s("span",{style:{color:"#89DDFF"}},"|")]),a(`
+import{_ as e,o as n,c as l,x as s,a,S as t}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const F=JSON.parse('{"title":"Cql::Migrator","description":"","frontmatter":{"title":"Cql::Migrator"},"headers":[{"level":2,"title":"Constants","slug":"constants","link":"#constants","children":[{"level":3,"title":"Log","slug":"log","link":"#log","children":[]}]},{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(schema : Schema)","slug":"def-new-schema-schema","link":"#def-new-schema-schema","children":[]}]},{"level":2,"title":"Class Methods","slug":"class-methods","link":"#class-methods","children":[{"level":3,"title":"def migrations","slug":"def-migrations","link":"#def-migrations","children":[]},{"level":3,"title":"def migrations=(migrations : Array(Migration.class))","slug":"def-migrations-migrations-array-migration-class","link":"#def-migrations-migrations-array-migration-class","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def applied_migrations","slug":"def-applied-migrations","link":"#def-applied-migrations","children":[]},{"level":3,"title":"def down(steps : Int32 = Migrator.migrations.size)","slug":"def-down-steps-int32-migrator-migrations-size","link":"#def-down-steps-int32-migrator-migrations-size","children":[]},{"level":3,"title":"def down_to(version : Int64)","slug":"def-down-to-version-int64","link":"#def-down-to-version-int64","children":[]},{"level":3,"title":"def last","slug":"def-last","link":"#def-last","children":[]},{"level":3,"title":"def pending_migrations","slug":"def-pending-migrations","link":"#def-pending-migrations","children":[]},{"level":3,"title":"def print_applied_migrations","slug":"def-print-applied-migrations","link":"#def-print-applied-migrations","children":[]},{"level":3,"title":"def print_pending_migrations","slug":"def-print-pending-migrations","link":"#def-print-pending-migrations","children":[]},{"level":3,"title":"def print_rolled_back_migrations(m : Array(Migration.class))","slug":"def-print-rolled-back-migrations-m-array-migration-class","link":"#def-print-rolled-back-migrations-m-array-migration-class","children":[]},{"level":3,"title":"def redo","slug":"def-redo","link":"#def-redo","children":[]},{"level":3,"title":"def repo","slug":"def-repo","link":"#def-repo","children":[]},{"level":3,"title":"def rollback(steps : Int32 = 1)","slug":"def-rollback-steps-int32-1","link":"#def-rollback-steps-int32-1","children":[]},{"level":3,"title":"def schema","slug":"def-schema","link":"#def-schema","children":[]},{"level":3,"title":"def up(steps : Int32 = Migrator.migrations.size)","slug":"def-up-steps-int32-migrator-migrations-size","link":"#def-up-steps-int32-migrator-migrations-size","children":[]},{"level":3,"title":"def up_to(version : Int64)","slug":"def-up-to-version-int64","link":"#def-up-to-version-int64","children":[]}]}],"relativePath":"main/Cql/Migrator.md","lastUpdated":1723931959000}'),i={name:"main/Cql/Migrator.md"},o=s("div",null,[s("h1",{id:"class-cql-migrator",tabindex:"-1"},[a("class Cql::Migrator "),s("a",{class:"header-anchor",href:"#class-cql-migrator","aria-hidden":"true"},"#")]),s("p",null,[s("code",null,"Reference"),a(" < "),s("code",null,"Object")]),s("p",null,[a("The "),s("code",null,"Migrator"),a(" class is used to manage migrations and provides methods to apply, rollback, and redo migrations. The "),s("code",null,"Migrator"),a(" class also provides methods to list applied and pending migrations. "),s("strong",null,"Example"),a(" Creating a new migrator")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"schema "),s("span",{style:{color:"#89DDFF"}},"="),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Cql"),s("span",{style:{color:"#89DDFF"}},"::"),s("span",{style:{color:"#FFCB6B"}},"Schema"),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#82AAFF"}},"build"),s("span",{style:{color:"#89DDFF"}},"(:northwind,"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},'"'),s("span",{style:{color:"#C3E88D"}},"sqlite3://db.sqlite3"),s("span",{style:{color:"#89DDFF"}},'"'),s("span",{style:{color:"#89DDFF"}},")"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF","font-style":"italic"}},"do "),s("span",{style:{color:"#89DDFF"}},"|"),s("span",{style:{color:"#BABED8"}},"s"),s("span",{style:{color:"#89DDFF"}},"|")]),a(`
 `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"  table "),s("span",{style:{color:"#89DDFF"}},":schema_migrations"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),a(`
 `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"    primary "),s("span",{style:{color:"#89DDFF"}},":id,"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Int32")]),a(`
 `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"    column "),s("span",{style:{color:"#89DDFF"}},":name,"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"String")]),a(`
diff --git a/docs/assets/main_Cql_Migrator.md.5a68f1e4.lean.js b/docs/assets/main_Cql_Migrator.md.a62219bc.lean.js
similarity index 98%
rename from docs/assets/main_Cql_Migrator.md.5a68f1e4.lean.js
rename to docs/assets/main_Cql_Migrator.md.a62219bc.lean.js
index 9d5db3a..eb35b2b 100644
--- a/docs/assets/main_Cql_Migrator.md.5a68f1e4.lean.js
+++ b/docs/assets/main_Cql_Migrator.md.a62219bc.lean.js
@@ -1,4 +1,4 @@
-import{_ as e,o as n,c as l,x as s,a,S as t}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const F=JSON.parse('{"title":"Cql::Migrator","description":"","frontmatter":{"title":"Cql::Migrator"},"headers":[{"level":2,"title":"Constants","slug":"constants","link":"#constants","children":[{"level":3,"title":"Log","slug":"log","link":"#log","children":[]}]},{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(schema : Schema)","slug":"def-new-schema-schema","link":"#def-new-schema-schema","children":[]}]},{"level":2,"title":"Class Methods","slug":"class-methods","link":"#class-methods","children":[{"level":3,"title":"def migrations","slug":"def-migrations","link":"#def-migrations","children":[]},{"level":3,"title":"def migrations=(migrations : Array(Migration.class))","slug":"def-migrations-migrations-array-migration-class","link":"#def-migrations-migrations-array-migration-class","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def applied_migrations","slug":"def-applied-migrations","link":"#def-applied-migrations","children":[]},{"level":3,"title":"def down(steps : Int32 = Migrator.migrations.size)","slug":"def-down-steps-int32-migrator-migrations-size","link":"#def-down-steps-int32-migrator-migrations-size","children":[]},{"level":3,"title":"def down_to(version : Int64)","slug":"def-down-to-version-int64","link":"#def-down-to-version-int64","children":[]},{"level":3,"title":"def last","slug":"def-last","link":"#def-last","children":[]},{"level":3,"title":"def pending_migrations","slug":"def-pending-migrations","link":"#def-pending-migrations","children":[]},{"level":3,"title":"def print_applied_migrations","slug":"def-print-applied-migrations","link":"#def-print-applied-migrations","children":[]},{"level":3,"title":"def print_pending_migrations","slug":"def-print-pending-migrations","link":"#def-print-pending-migrations","children":[]},{"level":3,"title":"def print_rolled_back_migrations(m : Array(Migration.class))","slug":"def-print-rolled-back-migrations-m-array-migration-class","link":"#def-print-rolled-back-migrations-m-array-migration-class","children":[]},{"level":3,"title":"def redo","slug":"def-redo","link":"#def-redo","children":[]},{"level":3,"title":"def repo","slug":"def-repo","link":"#def-repo","children":[]},{"level":3,"title":"def rollback(steps : Int32 = 1)","slug":"def-rollback-steps-int32-1","link":"#def-rollback-steps-int32-1","children":[]},{"level":3,"title":"def schema","slug":"def-schema","link":"#def-schema","children":[]},{"level":3,"title":"def up(steps : Int32 = Migrator.migrations.size)","slug":"def-up-steps-int32-migrator-migrations-size","link":"#def-up-steps-int32-migrator-migrations-size","children":[]},{"level":3,"title":"def up_to(version : Int64)","slug":"def-up-to-version-int64","link":"#def-up-to-version-int64","children":[]}]}],"relativePath":"main/Cql/Migrator.md","lastUpdated":1723931959000}'),i={name:"main/Cql/Migrator.md"},o=s("div",null,[s("h1",{id:"class-cql-migrator",tabindex:"-1"},[a("class Cql::Migrator "),s("a",{class:"header-anchor",href:"#class-cql-migrator","aria-hidden":"true"},"#")]),s("p",null,[s("code",null,"Reference"),a(" < "),s("code",null,"Object")]),s("p",null,[a("The "),s("code",null,"Migrator"),a(" class is used to manage migrations and provides methods to apply, rollback, and redo migrations. The "),s("code",null,"Migrator"),a(" class also provides methods to list applied and pending migrations. "),s("strong",null,"Example"),a(" Creating a new migrator")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"schema "),s("span",{style:{color:"#89DDFF"}},"="),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Cql"),s("span",{style:{color:"#89DDFF"}},"::"),s("span",{style:{color:"#FFCB6B"}},"Schema"),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#82AAFF"}},"build"),s("span",{style:{color:"#89DDFF"}},"(:northwind,"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},'"'),s("span",{style:{color:"#C3E88D"}},"sqlite3://db.sqlite3"),s("span",{style:{color:"#89DDFF"}},'"'),s("span",{style:{color:"#89DDFF"}},")"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF","font-style":"italic"}},"do "),s("span",{style:{color:"#89DDFF"}},"|"),s("span",{style:{color:"#BABED8"}},"s"),s("span",{style:{color:"#89DDFF"}},"|")]),a(`
+import{_ as e,o as n,c as l,x as s,a,S as t}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const F=JSON.parse('{"title":"Cql::Migrator","description":"","frontmatter":{"title":"Cql::Migrator"},"headers":[{"level":2,"title":"Constants","slug":"constants","link":"#constants","children":[{"level":3,"title":"Log","slug":"log","link":"#log","children":[]}]},{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(schema : Schema)","slug":"def-new-schema-schema","link":"#def-new-schema-schema","children":[]}]},{"level":2,"title":"Class Methods","slug":"class-methods","link":"#class-methods","children":[{"level":3,"title":"def migrations","slug":"def-migrations","link":"#def-migrations","children":[]},{"level":3,"title":"def migrations=(migrations : Array(Migration.class))","slug":"def-migrations-migrations-array-migration-class","link":"#def-migrations-migrations-array-migration-class","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def applied_migrations","slug":"def-applied-migrations","link":"#def-applied-migrations","children":[]},{"level":3,"title":"def down(steps : Int32 = Migrator.migrations.size)","slug":"def-down-steps-int32-migrator-migrations-size","link":"#def-down-steps-int32-migrator-migrations-size","children":[]},{"level":3,"title":"def down_to(version : Int64)","slug":"def-down-to-version-int64","link":"#def-down-to-version-int64","children":[]},{"level":3,"title":"def last","slug":"def-last","link":"#def-last","children":[]},{"level":3,"title":"def pending_migrations","slug":"def-pending-migrations","link":"#def-pending-migrations","children":[]},{"level":3,"title":"def print_applied_migrations","slug":"def-print-applied-migrations","link":"#def-print-applied-migrations","children":[]},{"level":3,"title":"def print_pending_migrations","slug":"def-print-pending-migrations","link":"#def-print-pending-migrations","children":[]},{"level":3,"title":"def print_rolled_back_migrations(m : Array(Migration.class))","slug":"def-print-rolled-back-migrations-m-array-migration-class","link":"#def-print-rolled-back-migrations-m-array-migration-class","children":[]},{"level":3,"title":"def redo","slug":"def-redo","link":"#def-redo","children":[]},{"level":3,"title":"def repo","slug":"def-repo","link":"#def-repo","children":[]},{"level":3,"title":"def rollback(steps : Int32 = 1)","slug":"def-rollback-steps-int32-1","link":"#def-rollback-steps-int32-1","children":[]},{"level":3,"title":"def schema","slug":"def-schema","link":"#def-schema","children":[]},{"level":3,"title":"def up(steps : Int32 = Migrator.migrations.size)","slug":"def-up-steps-int32-migrator-migrations-size","link":"#def-up-steps-int32-migrator-migrations-size","children":[]},{"level":3,"title":"def up_to(version : Int64)","slug":"def-up-to-version-int64","link":"#def-up-to-version-int64","children":[]}]}],"relativePath":"main/Cql/Migrator.md","lastUpdated":1723931959000}'),i={name:"main/Cql/Migrator.md"},o=s("div",null,[s("h1",{id:"class-cql-migrator",tabindex:"-1"},[a("class Cql::Migrator "),s("a",{class:"header-anchor",href:"#class-cql-migrator","aria-hidden":"true"},"#")]),s("p",null,[s("code",null,"Reference"),a(" < "),s("code",null,"Object")]),s("p",null,[a("The "),s("code",null,"Migrator"),a(" class is used to manage migrations and provides methods to apply, rollback, and redo migrations. The "),s("code",null,"Migrator"),a(" class also provides methods to list applied and pending migrations. "),s("strong",null,"Example"),a(" Creating a new migrator")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"schema "),s("span",{style:{color:"#89DDFF"}},"="),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Cql"),s("span",{style:{color:"#89DDFF"}},"::"),s("span",{style:{color:"#FFCB6B"}},"Schema"),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#82AAFF"}},"build"),s("span",{style:{color:"#89DDFF"}},"(:northwind,"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},'"'),s("span",{style:{color:"#C3E88D"}},"sqlite3://db.sqlite3"),s("span",{style:{color:"#89DDFF"}},'"'),s("span",{style:{color:"#89DDFF"}},")"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF","font-style":"italic"}},"do "),s("span",{style:{color:"#89DDFF"}},"|"),s("span",{style:{color:"#BABED8"}},"s"),s("span",{style:{color:"#89DDFF"}},"|")]),a(`
 `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"  table "),s("span",{style:{color:"#89DDFF"}},":schema_migrations"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),a(`
 `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"    primary "),s("span",{style:{color:"#89DDFF"}},":id,"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Int32")]),a(`
 `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"    column "),s("span",{style:{color:"#89DDFF"}},":name,"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"String")]),a(`
diff --git a/docs/assets/main_Cql_Migrator_MigrationRecord.md.83ba86ec.js b/docs/assets/main_Cql_Migrator_MigrationRecord.md.fa74ed80.js
similarity index 98%
rename from docs/assets/main_Cql_Migrator_MigrationRecord.md.83ba86ec.js
rename to docs/assets/main_Cql_Migrator_MigrationRecord.md.fa74ed80.js
index e501327..6d7a33f 100644
--- a/docs/assets/main_Cql_Migrator_MigrationRecord.md.83ba86ec.js
+++ b/docs/assets/main_Cql_Migrator_MigrationRecord.md.fa74ed80.js
@@ -1,2 +1,2 @@
-import{_ as t,o as l,c as d,x as e,a,S as r}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const D=JSON.parse('{"title":"Cql::Migrator::MigrationRecord","description":"","frontmatter":{"title":"Cql::Migrator::MigrationRecord"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(id : Int64, name : String, version : Int64, created_at : Time = Time.local, updated_at : Time = Time.local)","slug":"def-new-id-int64-name-string-version-int64-created-at-time-time-local-updated-at-time-time-local","link":"#def-new-id-int64-name-string-version-int64-created-at-time-time-local-updated-at-time-time-local","children":[]},{"level":3,"title":"def new(rs : DB::ResultSet)","slug":"def-new-rs-db-resultset","link":"#def-new-rs-db-resultset","children":[]}]},{"level":2,"title":"Class Methods","slug":"class-methods","link":"#class-methods","children":[{"level":3,"title":"def from_rs(rs : DB::ResultSet)","slug":"def-from-rs-rs-db-resultset","link":"#def-from-rs-rs-db-resultset","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def created_at","slug":"def-created-at","link":"#def-created-at","children":[]},{"level":3,"title":"def id","slug":"def-id","link":"#def-id","children":[]},{"level":3,"title":"def name","slug":"def-name","link":"#def-name","children":[]},{"level":3,"title":"def updated_at","slug":"def-updated-at","link":"#def-updated-at","children":[]},{"level":3,"title":"def version","slug":"def-version","link":"#def-version","children":[]}]}],"relativePath":"main/Cql/Migrator/MigrationRecord.md","lastUpdated":1723931959000}'),s={name:"main/Cql/Migrator/MigrationRecord.md"},i=e("div",null,[e("h1",{id:"class-cql-migrator-migrationrecord",tabindex:"-1"},[a("class Cql::Migrator::MigrationRecord "),e("a",{class:"header-anchor",href:"#class-cql-migrator-migrationrecord","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"DB::Mappable"),a(" < "),e("code",null,"DB::Serializable"),a(" < "),e("code",null,"Reference"),a(" < "),e("code",null,"Object")]),e("p",null,[a("Represents a migration record. @field id [Int64] the migration record id @field name [String] the migration name @field version [Int64] the migration version @field created_at [Time] the creation time @field updated_at [Time] the update time "),e("strong",null,"Example"),a(" Creating a migration record")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#82AAFF"}},"record"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF"}},"="),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"Cql"),e("span",{style:{color:"#89DDFF"}},"::"),e("span",{style:{color:"#FFCB6B"}},"MigrationRecord"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#82AAFF"}},"new"),e("span",{style:{color:"#89DDFF"}},"("),e("span",{style:{color:"#F78C6C"}},"0_i64"),e("span",{style:{color:"#89DDFF"}},","),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF"}},'"'),e("span",{style:{color:"#C3E88D"}},"CreateUsersTable"),e("span",{style:{color:"#89DDFF"}},'"'),e("span",{style:{color:"#89DDFF"}},","),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#F78C6C"}},"1_i64"),e("span",{style:{color:"#89DDFF"}},")")]),a(`
+import{_ as t,o as l,c as d,x as e,a,S as r}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const D=JSON.parse('{"title":"Cql::Migrator::MigrationRecord","description":"","frontmatter":{"title":"Cql::Migrator::MigrationRecord"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(id : Int64, name : String, version : Int64, created_at : Time = Time.local, updated_at : Time = Time.local)","slug":"def-new-id-int64-name-string-version-int64-created-at-time-time-local-updated-at-time-time-local","link":"#def-new-id-int64-name-string-version-int64-created-at-time-time-local-updated-at-time-time-local","children":[]},{"level":3,"title":"def new(rs : DB::ResultSet)","slug":"def-new-rs-db-resultset","link":"#def-new-rs-db-resultset","children":[]}]},{"level":2,"title":"Class Methods","slug":"class-methods","link":"#class-methods","children":[{"level":3,"title":"def from_rs(rs : DB::ResultSet)","slug":"def-from-rs-rs-db-resultset","link":"#def-from-rs-rs-db-resultset","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def created_at","slug":"def-created-at","link":"#def-created-at","children":[]},{"level":3,"title":"def id","slug":"def-id","link":"#def-id","children":[]},{"level":3,"title":"def name","slug":"def-name","link":"#def-name","children":[]},{"level":3,"title":"def updated_at","slug":"def-updated-at","link":"#def-updated-at","children":[]},{"level":3,"title":"def version","slug":"def-version","link":"#def-version","children":[]}]}],"relativePath":"main/Cql/Migrator/MigrationRecord.md","lastUpdated":1723931959000}'),s={name:"main/Cql/Migrator/MigrationRecord.md"},i=e("div",null,[e("h1",{id:"class-cql-migrator-migrationrecord",tabindex:"-1"},[a("class Cql::Migrator::MigrationRecord "),e("a",{class:"header-anchor",href:"#class-cql-migrator-migrationrecord","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"DB::Mappable"),a(" < "),e("code",null,"DB::Serializable"),a(" < "),e("code",null,"Reference"),a(" < "),e("code",null,"Object")]),e("p",null,[a("Represents a migration record. @field id [Int64] the migration record id @field name [String] the migration name @field version [Int64] the migration version @field created_at [Time] the creation time @field updated_at [Time] the update time "),e("strong",null,"Example"),a(" Creating a migration record")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#82AAFF"}},"record"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF"}},"="),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"Cql"),e("span",{style:{color:"#89DDFF"}},"::"),e("span",{style:{color:"#FFCB6B"}},"MigrationRecord"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#82AAFF"}},"new"),e("span",{style:{color:"#89DDFF"}},"("),e("span",{style:{color:"#F78C6C"}},"0_i64"),e("span",{style:{color:"#89DDFF"}},","),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF"}},'"'),e("span",{style:{color:"#C3E88D"}},"CreateUsersTable"),e("span",{style:{color:"#89DDFF"}},'"'),e("span",{style:{color:"#89DDFF"}},","),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#F78C6C"}},"1_i64"),e("span",{style:{color:"#89DDFF"}},")")]),a(`
 `),e("span",{class:"line"})])])]),e("details",{class:"details custom-block"},[e("summary",null,"Table of Contents"),e("nav",{class:"table-of-contents"},[e("ul",null,[e("li",null,[e("a",{href:"#constructors"},"Constructors"),e("ul",null,[e("li",null,[e("a",{href:"#def-new-id-int64-name-string-version-int64-created-at-time-time-local-updated-at-time-time-local"},"def new(id : Int64, name : String, version : Int64, created_at : Time = Time.local, updated_at : Time = Time.local)")]),e("li",null,[e("a",{href:"#def-new-rs-db-resultset"},"def new(rs : DB::ResultSet)")])])]),e("li",null,[e("a",{href:"#class-methods"},"Class Methods"),e("ul",null,[e("li",null,[e("a",{href:"#def-from-rs-rs-db-resultset"},"def from_rs(rs : DB::ResultSet)")])])]),e("li",null,[e("a",{href:"#instance-methods"},"Instance Methods"),e("ul",null,[e("li",null,[e("a",{href:"#def-created-at"},"def created_at")]),e("li",null,[e("a",{href:"#def-id"},"def id")]),e("li",null,[e("a",{href:"#def-name"},"def name")]),e("li",null,[e("a",{href:"#def-updated-at"},"def updated_at")]),e("li",null,[e("a",{href:"#def-version"},"def version")])])])])])])],-1),n=r('

Included Modules

DB::Mappable, DB::Serializable

Constructors

def new(id : Int64, name : String, version : Int64, created_at : Time = Time.local, updated_at : Time = Time.local)

def new(rs : DB::ResultSet)

Class Methods

def from_rs(rs : DB::ResultSet)

Instance Methods

def created_at

def id

def name

def updated_at

def version

:::

',14),o=[i,n];function c(h,f,u,m,p,g){return l(),d("div",null,o)}const b=t(s,[["render",c]]);export{D as __pageData,b as default}; diff --git a/docs/assets/main_Cql_Migrator_MigrationRecord.md.83ba86ec.lean.js b/docs/assets/main_Cql_Migrator_MigrationRecord.md.fa74ed80.lean.js similarity index 97% rename from docs/assets/main_Cql_Migrator_MigrationRecord.md.83ba86ec.lean.js rename to docs/assets/main_Cql_Migrator_MigrationRecord.md.fa74ed80.lean.js index 5041721..994d5f4 100644 --- a/docs/assets/main_Cql_Migrator_MigrationRecord.md.83ba86ec.lean.js +++ b/docs/assets/main_Cql_Migrator_MigrationRecord.md.fa74ed80.lean.js @@ -1,2 +1,2 @@ -import{_ as t,o as l,c as d,x as e,a,S as r}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const D=JSON.parse('{"title":"Cql::Migrator::MigrationRecord","description":"","frontmatter":{"title":"Cql::Migrator::MigrationRecord"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(id : Int64, name : String, version : Int64, created_at : Time = Time.local, updated_at : Time = Time.local)","slug":"def-new-id-int64-name-string-version-int64-created-at-time-time-local-updated-at-time-time-local","link":"#def-new-id-int64-name-string-version-int64-created-at-time-time-local-updated-at-time-time-local","children":[]},{"level":3,"title":"def new(rs : DB::ResultSet)","slug":"def-new-rs-db-resultset","link":"#def-new-rs-db-resultset","children":[]}]},{"level":2,"title":"Class Methods","slug":"class-methods","link":"#class-methods","children":[{"level":3,"title":"def from_rs(rs : DB::ResultSet)","slug":"def-from-rs-rs-db-resultset","link":"#def-from-rs-rs-db-resultset","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def created_at","slug":"def-created-at","link":"#def-created-at","children":[]},{"level":3,"title":"def id","slug":"def-id","link":"#def-id","children":[]},{"level":3,"title":"def name","slug":"def-name","link":"#def-name","children":[]},{"level":3,"title":"def updated_at","slug":"def-updated-at","link":"#def-updated-at","children":[]},{"level":3,"title":"def version","slug":"def-version","link":"#def-version","children":[]}]}],"relativePath":"main/Cql/Migrator/MigrationRecord.md","lastUpdated":1723931959000}'),s={name:"main/Cql/Migrator/MigrationRecord.md"},i=e("div",null,[e("h1",{id:"class-cql-migrator-migrationrecord",tabindex:"-1"},[a("class Cql::Migrator::MigrationRecord "),e("a",{class:"header-anchor",href:"#class-cql-migrator-migrationrecord","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"DB::Mappable"),a(" < "),e("code",null,"DB::Serializable"),a(" < "),e("code",null,"Reference"),a(" < "),e("code",null,"Object")]),e("p",null,[a("Represents a migration record. @field id [Int64] the migration record id @field name [String] the migration name @field version [Int64] the migration version @field created_at [Time] the creation time @field updated_at [Time] the update time "),e("strong",null,"Example"),a(" Creating a migration record")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#82AAFF"}},"record"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF"}},"="),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"Cql"),e("span",{style:{color:"#89DDFF"}},"::"),e("span",{style:{color:"#FFCB6B"}},"MigrationRecord"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#82AAFF"}},"new"),e("span",{style:{color:"#89DDFF"}},"("),e("span",{style:{color:"#F78C6C"}},"0_i64"),e("span",{style:{color:"#89DDFF"}},","),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF"}},'"'),e("span",{style:{color:"#C3E88D"}},"CreateUsersTable"),e("span",{style:{color:"#89DDFF"}},'"'),e("span",{style:{color:"#89DDFF"}},","),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#F78C6C"}},"1_i64"),e("span",{style:{color:"#89DDFF"}},")")]),a(` +import{_ as t,o as l,c as d,x as e,a,S as r}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const D=JSON.parse('{"title":"Cql::Migrator::MigrationRecord","description":"","frontmatter":{"title":"Cql::Migrator::MigrationRecord"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(id : Int64, name : String, version : Int64, created_at : Time = Time.local, updated_at : Time = Time.local)","slug":"def-new-id-int64-name-string-version-int64-created-at-time-time-local-updated-at-time-time-local","link":"#def-new-id-int64-name-string-version-int64-created-at-time-time-local-updated-at-time-time-local","children":[]},{"level":3,"title":"def new(rs : DB::ResultSet)","slug":"def-new-rs-db-resultset","link":"#def-new-rs-db-resultset","children":[]}]},{"level":2,"title":"Class Methods","slug":"class-methods","link":"#class-methods","children":[{"level":3,"title":"def from_rs(rs : DB::ResultSet)","slug":"def-from-rs-rs-db-resultset","link":"#def-from-rs-rs-db-resultset","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def created_at","slug":"def-created-at","link":"#def-created-at","children":[]},{"level":3,"title":"def id","slug":"def-id","link":"#def-id","children":[]},{"level":3,"title":"def name","slug":"def-name","link":"#def-name","children":[]},{"level":3,"title":"def updated_at","slug":"def-updated-at","link":"#def-updated-at","children":[]},{"level":3,"title":"def version","slug":"def-version","link":"#def-version","children":[]}]}],"relativePath":"main/Cql/Migrator/MigrationRecord.md","lastUpdated":1723931959000}'),s={name:"main/Cql/Migrator/MigrationRecord.md"},i=e("div",null,[e("h1",{id:"class-cql-migrator-migrationrecord",tabindex:"-1"},[a("class Cql::Migrator::MigrationRecord "),e("a",{class:"header-anchor",href:"#class-cql-migrator-migrationrecord","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"DB::Mappable"),a(" < "),e("code",null,"DB::Serializable"),a(" < "),e("code",null,"Reference"),a(" < "),e("code",null,"Object")]),e("p",null,[a("Represents a migration record. @field id [Int64] the migration record id @field name [String] the migration name @field version [Int64] the migration version @field created_at [Time] the creation time @field updated_at [Time] the update time "),e("strong",null,"Example"),a(" Creating a migration record")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#82AAFF"}},"record"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF"}},"="),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"Cql"),e("span",{style:{color:"#89DDFF"}},"::"),e("span",{style:{color:"#FFCB6B"}},"MigrationRecord"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#82AAFF"}},"new"),e("span",{style:{color:"#89DDFF"}},"("),e("span",{style:{color:"#F78C6C"}},"0_i64"),e("span",{style:{color:"#89DDFF"}},","),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF"}},'"'),e("span",{style:{color:"#C3E88D"}},"CreateUsersTable"),e("span",{style:{color:"#89DDFF"}},'"'),e("span",{style:{color:"#89DDFF"}},","),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#F78C6C"}},"1_i64"),e("span",{style:{color:"#89DDFF"}},")")]),a(` `),e("span",{class:"line"})])])]),e("details",{class:"details custom-block"},[e("summary",null,"Table of Contents"),e("nav",{class:"table-of-contents"},[e("ul",null,[e("li",null,[e("a",{href:"#constructors"},"Constructors"),e("ul",null,[e("li",null,[e("a",{href:"#def-new-id-int64-name-string-version-int64-created-at-time-time-local-updated-at-time-time-local"},"def new(id : Int64, name : String, version : Int64, created_at : Time = Time.local, updated_at : Time = Time.local)")]),e("li",null,[e("a",{href:"#def-new-rs-db-resultset"},"def new(rs : DB::ResultSet)")])])]),e("li",null,[e("a",{href:"#class-methods"},"Class Methods"),e("ul",null,[e("li",null,[e("a",{href:"#def-from-rs-rs-db-resultset"},"def from_rs(rs : DB::ResultSet)")])])]),e("li",null,[e("a",{href:"#instance-methods"},"Instance Methods"),e("ul",null,[e("li",null,[e("a",{href:"#def-created-at"},"def created_at")]),e("li",null,[e("a",{href:"#def-id"},"def id")]),e("li",null,[e("a",{href:"#def-name"},"def name")]),e("li",null,[e("a",{href:"#def-updated-at"},"def updated_at")]),e("li",null,[e("a",{href:"#def-version"},"def version")])])])])])])],-1),n=r("",14),o=[i,n];function c(h,f,u,m,p,g){return l(),d("div",null,o)}const b=t(s,[["render",c]]);export{D as __pageData,b as default}; diff --git a/docs/assets/main_Cql_PrimaryKey.md.124148d7.js b/docs/assets/main_Cql_PrimaryKey.md.ae64f81d.js similarity index 97% rename from docs/assets/main_Cql_PrimaryKey.md.124148d7.js rename to docs/assets/main_Cql_PrimaryKey.md.ae64f81d.js index 65dc781..41f88e9 100644 --- a/docs/assets/main_Cql_PrimaryKey.md.124148d7.js +++ b/docs/assets/main_Cql_PrimaryKey.md.ae64f81d.js @@ -1,4 +1,4 @@ -import{_ as a,o as l,c as t,x as e,a as n,S as s}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const B=JSON.parse('{"title":"Cql::PrimaryKey(T)","description":"","frontmatter":{"title":"Cql::PrimaryKey(T)"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(name : Symbol = :id, type : PrimaryKeyType = Int64.class, as_name : String | Nil = nil, auto_increment : Bool = true, unique : Bool = true, default : DB::Any = nil)","slug":"def-new-name-symbol-id-type-primarykeytype-int64-class-as-name-string-nil-nil-auto-increment-bool-true-unique-bool-true-default-db-any-nil","link":"#def-new-name-symbol-id-type-primarykeytype-int64-class-as-name-string-nil-nil-auto-increment-bool-true-unique-bool-true-default-db-any-nil","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def as_name","slug":"def-as-name","link":"#def-as-name","children":[]},{"level":3,"title":"def auto_increment?","slug":"def-auto-increment","link":"#def-auto-increment","children":[]},{"level":3,"title":"def unique?","slug":"def-unique","link":"#def-unique","children":[]}]}],"relativePath":"main/Cql/PrimaryKey.md","lastUpdated":1723931959000}'),i={name:"main/Cql/PrimaryKey.md"},r=e("div",null,[e("h1",{id:"class-cql-primarykey-t",tabindex:"-1"},[n("class Cql::PrimaryKey(T) "),e("a",{class:"header-anchor",href:"#class-cql-primarykey-t","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"Cql::Column"),n(" < "),e("code",null,"Cql::BaseColumn"),n(" < "),e("code",null,"Reference"),n(" < "),e("code",null,"Object")]),e("p",null,"Primary key column definition"),e("p",null,[e("strong",null,"Example:")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"schema"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#BABED8"}},"table "),e("span",{style:{color:"#89DDFF"}},":users"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),n(` +import{_ as a,o as l,c as t,x as e,a as n,S as s}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const B=JSON.parse('{"title":"Cql::PrimaryKey(T)","description":"","frontmatter":{"title":"Cql::PrimaryKey(T)"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(name : Symbol = :id, type : PrimaryKeyType = Int64.class, as_name : String | Nil = nil, auto_increment : Bool = true, unique : Bool = true, default : DB::Any = nil)","slug":"def-new-name-symbol-id-type-primarykeytype-int64-class-as-name-string-nil-nil-auto-increment-bool-true-unique-bool-true-default-db-any-nil","link":"#def-new-name-symbol-id-type-primarykeytype-int64-class-as-name-string-nil-nil-auto-increment-bool-true-unique-bool-true-default-db-any-nil","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def as_name","slug":"def-as-name","link":"#def-as-name","children":[]},{"level":3,"title":"def auto_increment?","slug":"def-auto-increment","link":"#def-auto-increment","children":[]},{"level":3,"title":"def unique?","slug":"def-unique","link":"#def-unique","children":[]}]}],"relativePath":"main/Cql/PrimaryKey.md","lastUpdated":1723931959000}'),i={name:"main/Cql/PrimaryKey.md"},r=e("div",null,[e("h1",{id:"class-cql-primarykey-t",tabindex:"-1"},[n("class Cql::PrimaryKey(T) "),e("a",{class:"header-anchor",href:"#class-cql-primarykey-t","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"Cql::Column"),n(" < "),e("code",null,"Cql::BaseColumn"),n(" < "),e("code",null,"Reference"),n(" < "),e("code",null,"Object")]),e("p",null,"Primary key column definition"),e("p",null,[e("strong",null,"Example:")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"schema"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#BABED8"}},"table "),e("span",{style:{color:"#89DDFF"}},":users"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),n(` `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}}," primary "),e("span",{style:{color:"#89DDFF"}},":id,"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"Int32")]),n(` `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}}," column "),e("span",{style:{color:"#89DDFF"}},":name,"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"String")]),n(` `),e("span",{class:"line"},[e("span",{style:{color:"#89DDFF","font-style":"italic"}},"end")]),n(` diff --git a/docs/assets/main_Cql_PrimaryKey.md.124148d7.lean.js b/docs/assets/main_Cql_PrimaryKey.md.ae64f81d.lean.js similarity index 96% rename from docs/assets/main_Cql_PrimaryKey.md.124148d7.lean.js rename to docs/assets/main_Cql_PrimaryKey.md.ae64f81d.lean.js index ac09d3e..68506bd 100644 --- a/docs/assets/main_Cql_PrimaryKey.md.124148d7.lean.js +++ b/docs/assets/main_Cql_PrimaryKey.md.ae64f81d.lean.js @@ -1,4 +1,4 @@ -import{_ as a,o as l,c as t,x as e,a as n,S as s}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const B=JSON.parse('{"title":"Cql::PrimaryKey(T)","description":"","frontmatter":{"title":"Cql::PrimaryKey(T)"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(name : Symbol = :id, type : PrimaryKeyType = Int64.class, as_name : String | Nil = nil, auto_increment : Bool = true, unique : Bool = true, default : DB::Any = nil)","slug":"def-new-name-symbol-id-type-primarykeytype-int64-class-as-name-string-nil-nil-auto-increment-bool-true-unique-bool-true-default-db-any-nil","link":"#def-new-name-symbol-id-type-primarykeytype-int64-class-as-name-string-nil-nil-auto-increment-bool-true-unique-bool-true-default-db-any-nil","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def as_name","slug":"def-as-name","link":"#def-as-name","children":[]},{"level":3,"title":"def auto_increment?","slug":"def-auto-increment","link":"#def-auto-increment","children":[]},{"level":3,"title":"def unique?","slug":"def-unique","link":"#def-unique","children":[]}]}],"relativePath":"main/Cql/PrimaryKey.md","lastUpdated":1723931959000}'),i={name:"main/Cql/PrimaryKey.md"},r=e("div",null,[e("h1",{id:"class-cql-primarykey-t",tabindex:"-1"},[n("class Cql::PrimaryKey(T) "),e("a",{class:"header-anchor",href:"#class-cql-primarykey-t","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"Cql::Column"),n(" < "),e("code",null,"Cql::BaseColumn"),n(" < "),e("code",null,"Reference"),n(" < "),e("code",null,"Object")]),e("p",null,"Primary key column definition"),e("p",null,[e("strong",null,"Example:")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"schema"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#BABED8"}},"table "),e("span",{style:{color:"#89DDFF"}},":users"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),n(` +import{_ as a,o as l,c as t,x as e,a as n,S as s}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const B=JSON.parse('{"title":"Cql::PrimaryKey(T)","description":"","frontmatter":{"title":"Cql::PrimaryKey(T)"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(name : Symbol = :id, type : PrimaryKeyType = Int64.class, as_name : String | Nil = nil, auto_increment : Bool = true, unique : Bool = true, default : DB::Any = nil)","slug":"def-new-name-symbol-id-type-primarykeytype-int64-class-as-name-string-nil-nil-auto-increment-bool-true-unique-bool-true-default-db-any-nil","link":"#def-new-name-symbol-id-type-primarykeytype-int64-class-as-name-string-nil-nil-auto-increment-bool-true-unique-bool-true-default-db-any-nil","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def as_name","slug":"def-as-name","link":"#def-as-name","children":[]},{"level":3,"title":"def auto_increment?","slug":"def-auto-increment","link":"#def-auto-increment","children":[]},{"level":3,"title":"def unique?","slug":"def-unique","link":"#def-unique","children":[]}]}],"relativePath":"main/Cql/PrimaryKey.md","lastUpdated":1723931959000}'),i={name:"main/Cql/PrimaryKey.md"},r=e("div",null,[e("h1",{id:"class-cql-primarykey-t",tabindex:"-1"},[n("class Cql::PrimaryKey(T) "),e("a",{class:"header-anchor",href:"#class-cql-primarykey-t","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"Cql::Column"),n(" < "),e("code",null,"Cql::BaseColumn"),n(" < "),e("code",null,"Reference"),n(" < "),e("code",null,"Object")]),e("p",null,"Primary key column definition"),e("p",null,[e("strong",null,"Example:")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"schema"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#BABED8"}},"table "),e("span",{style:{color:"#89DDFF"}},":users"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),n(` `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}}," primary "),e("span",{style:{color:"#89DDFF"}},":id,"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"Int32")]),n(` `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}}," column "),e("span",{style:{color:"#89DDFF"}},":name,"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"String")]),n(` `),e("span",{class:"line"},[e("span",{style:{color:"#89DDFF","font-style":"italic"}},"end")]),n(` diff --git a/docs/assets/main_Cql_PrimaryKeyType.md.a3984ab5.js b/docs/assets/main_Cql_PrimaryKeyType.md.a6dc8024.js similarity index 85% rename from docs/assets/main_Cql_PrimaryKeyType.md.a3984ab5.js rename to docs/assets/main_Cql_PrimaryKeyType.md.a6dc8024.js index 552982b..0f58b9b 100644 --- a/docs/assets/main_Cql_PrimaryKeyType.md.a3984ab5.js +++ b/docs/assets/main_Cql_PrimaryKeyType.md.a6dc8024.js @@ -1 +1 @@ -import{_ as a,o as t,c as r,x as e,a as s}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const T=JSON.parse('{"title":"Cql::PrimaryKeyType","description":"","frontmatter":{"title":"Cql::PrimaryKeyType"},"headers":[],"relativePath":"main/Cql/PrimaryKeyType.md","lastUpdated":1723931959000}'),l={name:"main/Cql/PrimaryKeyType.md"},i=e("div",null,[e("h1",{id:"alias-cql-primarykeytype",tabindex:"-1"},[s("alias Cql::PrimaryKeyType "),e("a",{class:"header-anchor",href:"#alias-cql-primarykeytype","aria-hidden":"true"},"#")]),e("p",null,"Represents a database primary key column type."),e("details",{class:"details custom-block"},[e("summary",null,"Table of Contents"),e("nav",{class:"table-of-contents"},[e("ul")])])],-1),n=e("p",null,":::",-1),o=[i,n];function c(p,y,d,m,_,u){return t(),r("div",null,o)}const q=a(l,[["render",c]]);export{T as __pageData,q as default}; +import{_ as a,o as t,c as r,x as e,a as s}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const T=JSON.parse('{"title":"Cql::PrimaryKeyType","description":"","frontmatter":{"title":"Cql::PrimaryKeyType"},"headers":[],"relativePath":"main/Cql/PrimaryKeyType.md","lastUpdated":1723931959000}'),l={name:"main/Cql/PrimaryKeyType.md"},i=e("div",null,[e("h1",{id:"alias-cql-primarykeytype",tabindex:"-1"},[s("alias Cql::PrimaryKeyType "),e("a",{class:"header-anchor",href:"#alias-cql-primarykeytype","aria-hidden":"true"},"#")]),e("p",null,"Represents a database primary key column type."),e("details",{class:"details custom-block"},[e("summary",null,"Table of Contents"),e("nav",{class:"table-of-contents"},[e("ul")])])],-1),n=e("p",null,":::",-1),o=[i,n];function c(p,y,d,m,_,u){return t(),r("div",null,o)}const q=a(l,[["render",c]]);export{T as __pageData,q as default}; diff --git a/docs/assets/main_Cql_PrimaryKeyType.md.a3984ab5.lean.js b/docs/assets/main_Cql_PrimaryKeyType.md.a6dc8024.lean.js similarity index 85% rename from docs/assets/main_Cql_PrimaryKeyType.md.a3984ab5.lean.js rename to docs/assets/main_Cql_PrimaryKeyType.md.a6dc8024.lean.js index 552982b..0f58b9b 100644 --- a/docs/assets/main_Cql_PrimaryKeyType.md.a3984ab5.lean.js +++ b/docs/assets/main_Cql_PrimaryKeyType.md.a6dc8024.lean.js @@ -1 +1 @@ -import{_ as a,o as t,c as r,x as e,a as s}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const T=JSON.parse('{"title":"Cql::PrimaryKeyType","description":"","frontmatter":{"title":"Cql::PrimaryKeyType"},"headers":[],"relativePath":"main/Cql/PrimaryKeyType.md","lastUpdated":1723931959000}'),l={name:"main/Cql/PrimaryKeyType.md"},i=e("div",null,[e("h1",{id:"alias-cql-primarykeytype",tabindex:"-1"},[s("alias Cql::PrimaryKeyType "),e("a",{class:"header-anchor",href:"#alias-cql-primarykeytype","aria-hidden":"true"},"#")]),e("p",null,"Represents a database primary key column type."),e("details",{class:"details custom-block"},[e("summary",null,"Table of Contents"),e("nav",{class:"table-of-contents"},[e("ul")])])],-1),n=e("p",null,":::",-1),o=[i,n];function c(p,y,d,m,_,u){return t(),r("div",null,o)}const q=a(l,[["render",c]]);export{T as __pageData,q as default}; +import{_ as a,o as t,c as r,x as e,a as s}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const T=JSON.parse('{"title":"Cql::PrimaryKeyType","description":"","frontmatter":{"title":"Cql::PrimaryKeyType"},"headers":[],"relativePath":"main/Cql/PrimaryKeyType.md","lastUpdated":1723931959000}'),l={name:"main/Cql/PrimaryKeyType.md"},i=e("div",null,[e("h1",{id:"alias-cql-primarykeytype",tabindex:"-1"},[s("alias Cql::PrimaryKeyType "),e("a",{class:"header-anchor",href:"#alias-cql-primarykeytype","aria-hidden":"true"},"#")]),e("p",null,"Represents a database primary key column type."),e("details",{class:"details custom-block"},[e("summary",null,"Table of Contents"),e("nav",{class:"table-of-contents"},[e("ul")])])],-1),n=e("p",null,":::",-1),o=[i,n];function c(p,y,d,m,_,u){return t(),r("div",null,o)}const q=a(l,[["render",c]]);export{T as __pageData,q as default}; diff --git a/docs/assets/main_Cql_Query.md.d4182774.js b/docs/assets/main_Cql_Query.md.a0f5a31f.js similarity index 99% rename from docs/assets/main_Cql_Query.md.d4182774.js rename to docs/assets/main_Cql_Query.md.a0f5a31f.js index d07bb03..5aec2ea 100644 --- a/docs/assets/main_Cql_Query.md.d4182774.js +++ b/docs/assets/main_Cql_Query.md.a0f5a31f.js @@ -1,4 +1,4 @@ -import{_ as a,o as e,c as n,x as s,a as l,S as o}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const f=JSON.parse('{"title":"Cql::Query","description":"","frontmatter":{"title":"Cql::Query"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(schema : Schema)","slug":"def-new-schema-schema","link":"#def-new-schema-schema","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def aggr_columns","slug":"def-aggr-columns","link":"#def-aggr-columns","children":[]},{"level":3,"title":"def all(as as_kind)","slug":"def-all-as-as-kind","link":"#def-all-as-as-kind","children":[]},{"level":3,"title":"def all!(as as_kind)","slug":"def-all-as-as-kind-1","link":"#def-all-as-as-kind-1","children":[]},{"level":3,"title":"def avg(column : Symbol)","slug":"def-avg-column-symbol","link":"#def-avg-column-symbol","children":[]},{"level":3,"title":"def build","slug":"def-build","link":"#def-build","children":[]},{"level":3,"title":"def columns","slug":"def-columns","link":"#def-columns","children":[]},{"level":3,"title":"def count(column : Symbol = :*)","slug":"def-count-column-symbol","link":"#def-count-column-symbol","children":[]},{"level":3,"title":"def distinct","slug":"def-distinct","link":"#def-distinct","children":[]},{"level":3,"title":"def distinct?","slug":"def-distinct-1","link":"#def-distinct-1","children":[]},{"level":3,"title":"def each(as as_kind, &)","slug":"def-each-as-as-kind","link":"#def-each-as-as-kind","children":[]},{"level":3,"title":"def first(as as_kind)","slug":"def-first-as-as-kind","link":"#def-first-as-as-kind","children":[]},{"level":3,"title":"def first!(as as_kind)","slug":"def-first-as-as-kind-1","link":"#def-first-as-as-kind-1","children":[]},{"level":3,"title":"def from(*tbls : Symbol)","slug":"def-from-tbls-symbol","link":"#def-from-tbls-symbol","children":[]},{"level":3,"title":"def get(as as_kind)","slug":"def-get-as-as-kind","link":"#def-get-as-as-kind","children":[]},{"level":3,"title":"def group(*columns)","slug":"def-group-columns","link":"#def-group-columns","children":[]},{"level":3,"title":"def group_by","slug":"def-group-by","link":"#def-group-by","children":[]},{"level":3,"title":"def having","slug":"def-having","link":"#def-having","children":[]},{"level":3,"title":"def having","slug":"def-having-1","link":"#def-having-1","children":[]},{"level":3,"title":"def inner(table : Symbol, on : Hash(Cql::BaseColumn, Cql::BaseColumn | DB::Any))","slug":"def-inner-table-symbol-on-hash-cql-basecolumn-cql-basecolumn-db-any","link":"#def-inner-table-symbol-on-hash-cql-basecolumn-cql-basecolumn-db-any","children":[]},{"level":3,"title":"def inner(table : Symbol, &)","slug":"def-inner-table-symbol","link":"#def-inner-table-symbol","children":[]},{"level":3,"title":"def joins","slug":"def-joins","link":"#def-joins","children":[]},{"level":3,"title":"def left(table : Symbol, on : Hash(Cql::BaseColumn, Cql::BaseColumn | DB::Any))","slug":"def-left-table-symbol-on-hash-cql-basecolumn-cql-basecolumn-db-any","link":"#def-left-table-symbol-on-hash-cql-basecolumn-cql-basecolumn-db-any","children":[]},{"level":3,"title":"def left(table : Symbol, &)","slug":"def-left-table-symbol","link":"#def-left-table-symbol","children":[]},{"level":3,"title":"def limit(value : Int32)","slug":"def-limit-value-int32","link":"#def-limit-value-int32","children":[]},{"level":3,"title":"def limit","slug":"def-limit","link":"#def-limit","children":[]},{"level":3,"title":"def max(column : Symbol)","slug":"def-max-column-symbol","link":"#def-max-column-symbol","children":[]},{"level":3,"title":"def min(column : Symbol)","slug":"def-min-column-symbol","link":"#def-min-column-symbol","children":[]},{"level":3,"title":"def offset(value : Int32)","slug":"def-offset-value-int32","link":"#def-offset-value-int32","children":[]},{"level":3,"title":"def offset","slug":"def-offset","link":"#def-offset","children":[]},{"level":3,"title":"def order(*fields)","slug":"def-order-fields","link":"#def-order-fields","children":[]},{"level":3,"title":"def order","slug":"def-order","link":"#def-order","children":[]},{"level":3,"title":"def order_by","slug":"def-order-by","link":"#def-order-by","children":[]},{"level":3,"title":"def right(table : Symbol, on : Hash(Cql::BaseColumn, Cql::BaseColumn | DB::Any))","slug":"def-right-table-symbol-on-hash-cql-basecolumn-cql-basecolumn-db-any","link":"#def-right-table-symbol-on-hash-cql-basecolumn-cql-basecolumn-db-any","children":[]},{"level":3,"title":"def right(table : Symbol, &)","slug":"def-right-table-symbol","link":"#def-right-table-symbol","children":[]},{"level":3,"title":"def select(*columns : Symbol)","slug":"def-select-columns-symbol","link":"#def-select-columns-symbol","children":[]},{"level":3,"title":"def select","slug":"def-select","link":"#def-select","children":[]},{"level":3,"title":"def sum(column : Symbol)","slug":"def-sum-column-symbol","link":"#def-sum-column-symbol","children":[]},{"level":3,"title":"def tables","slug":"def-tables","link":"#def-tables","children":[]},{"level":3,"title":"def to_sql(gen = @schema.gen)","slug":"def-to-sql-gen-schema-gen","link":"#def-to-sql-gen-schema-gen","children":[]},{"level":3,"title":"def where(hash : Hash(Symbol, DB::Any))","slug":"def-where-hash-hash-symbol-db-any","link":"#def-where-hash-hash-symbol-db-any","children":[]},{"level":3,"title":"def where","slug":"def-where","link":"#def-where","children":[]},{"level":3,"title":"def where","slug":"def-where-1","link":"#def-where-1","children":[]},{"level":3,"title":"def where","slug":"def-where-2","link":"#def-where-2","children":[]}]},{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro method_missing(call)","slug":"macro-method-missing-call","link":"#macro-method-missing-call","children":[]}]}],"relativePath":"main/Cql/Query.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Query.md"},r=s("div",null,[s("h1",{id:"class-cql-query",tabindex:"-1"},[l("class Cql::Query "),s("a",{class:"header-anchor",href:"#class-cql-query","aria-hidden":"true"},"#")]),s("p",null,[s("code",null,"Reference"),l(" < "),s("code",null,"Object")]),s("p",null,[l("The "),s("code",null,"Query"),l(" class is responsible for building SQL queries in a structured manner. It holds various components like selected columns, tables, conditions, and more. It provides methods to execute the query and return results.")]),s("p",null,[s("strong",null,"Example"),l(" Creating a new query")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"schema "),s("span",{style:{color:"#89DDFF"}},"="),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Cql"),s("span",{style:{color:"#89DDFF"}},"::"),s("span",{style:{color:"#FFCB6B"}},"Schema"),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#BABED8"}},"new")]),l(` +import{_ as a,o as e,c as n,x as s,a as l,S as o}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const f=JSON.parse('{"title":"Cql::Query","description":"","frontmatter":{"title":"Cql::Query"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(schema : Schema)","slug":"def-new-schema-schema","link":"#def-new-schema-schema","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def aggr_columns","slug":"def-aggr-columns","link":"#def-aggr-columns","children":[]},{"level":3,"title":"def all(as as_kind)","slug":"def-all-as-as-kind","link":"#def-all-as-as-kind","children":[]},{"level":3,"title":"def all!(as as_kind)","slug":"def-all-as-as-kind-1","link":"#def-all-as-as-kind-1","children":[]},{"level":3,"title":"def avg(column : Symbol)","slug":"def-avg-column-symbol","link":"#def-avg-column-symbol","children":[]},{"level":3,"title":"def build","slug":"def-build","link":"#def-build","children":[]},{"level":3,"title":"def columns","slug":"def-columns","link":"#def-columns","children":[]},{"level":3,"title":"def count(column : Symbol = :*)","slug":"def-count-column-symbol","link":"#def-count-column-symbol","children":[]},{"level":3,"title":"def distinct","slug":"def-distinct","link":"#def-distinct","children":[]},{"level":3,"title":"def distinct?","slug":"def-distinct-1","link":"#def-distinct-1","children":[]},{"level":3,"title":"def each(as as_kind, &)","slug":"def-each-as-as-kind","link":"#def-each-as-as-kind","children":[]},{"level":3,"title":"def first(as as_kind)","slug":"def-first-as-as-kind","link":"#def-first-as-as-kind","children":[]},{"level":3,"title":"def first!(as as_kind)","slug":"def-first-as-as-kind-1","link":"#def-first-as-as-kind-1","children":[]},{"level":3,"title":"def from(*tbls : Symbol)","slug":"def-from-tbls-symbol","link":"#def-from-tbls-symbol","children":[]},{"level":3,"title":"def get(as as_kind)","slug":"def-get-as-as-kind","link":"#def-get-as-as-kind","children":[]},{"level":3,"title":"def group(*columns)","slug":"def-group-columns","link":"#def-group-columns","children":[]},{"level":3,"title":"def group_by","slug":"def-group-by","link":"#def-group-by","children":[]},{"level":3,"title":"def having","slug":"def-having","link":"#def-having","children":[]},{"level":3,"title":"def having","slug":"def-having-1","link":"#def-having-1","children":[]},{"level":3,"title":"def inner(table : Symbol, on : Hash(Cql::BaseColumn, Cql::BaseColumn | DB::Any))","slug":"def-inner-table-symbol-on-hash-cql-basecolumn-cql-basecolumn-db-any","link":"#def-inner-table-symbol-on-hash-cql-basecolumn-cql-basecolumn-db-any","children":[]},{"level":3,"title":"def inner(table : Symbol, &)","slug":"def-inner-table-symbol","link":"#def-inner-table-symbol","children":[]},{"level":3,"title":"def joins","slug":"def-joins","link":"#def-joins","children":[]},{"level":3,"title":"def left(table : Symbol, on : Hash(Cql::BaseColumn, Cql::BaseColumn | DB::Any))","slug":"def-left-table-symbol-on-hash-cql-basecolumn-cql-basecolumn-db-any","link":"#def-left-table-symbol-on-hash-cql-basecolumn-cql-basecolumn-db-any","children":[]},{"level":3,"title":"def left(table : Symbol, &)","slug":"def-left-table-symbol","link":"#def-left-table-symbol","children":[]},{"level":3,"title":"def limit(value : Int32)","slug":"def-limit-value-int32","link":"#def-limit-value-int32","children":[]},{"level":3,"title":"def limit","slug":"def-limit","link":"#def-limit","children":[]},{"level":3,"title":"def max(column : Symbol)","slug":"def-max-column-symbol","link":"#def-max-column-symbol","children":[]},{"level":3,"title":"def min(column : Symbol)","slug":"def-min-column-symbol","link":"#def-min-column-symbol","children":[]},{"level":3,"title":"def offset(value : Int32)","slug":"def-offset-value-int32","link":"#def-offset-value-int32","children":[]},{"level":3,"title":"def offset","slug":"def-offset","link":"#def-offset","children":[]},{"level":3,"title":"def order(*fields)","slug":"def-order-fields","link":"#def-order-fields","children":[]},{"level":3,"title":"def order","slug":"def-order","link":"#def-order","children":[]},{"level":3,"title":"def order_by","slug":"def-order-by","link":"#def-order-by","children":[]},{"level":3,"title":"def right(table : Symbol, on : Hash(Cql::BaseColumn, Cql::BaseColumn | DB::Any))","slug":"def-right-table-symbol-on-hash-cql-basecolumn-cql-basecolumn-db-any","link":"#def-right-table-symbol-on-hash-cql-basecolumn-cql-basecolumn-db-any","children":[]},{"level":3,"title":"def right(table : Symbol, &)","slug":"def-right-table-symbol","link":"#def-right-table-symbol","children":[]},{"level":3,"title":"def select(*columns : Symbol)","slug":"def-select-columns-symbol","link":"#def-select-columns-symbol","children":[]},{"level":3,"title":"def select","slug":"def-select","link":"#def-select","children":[]},{"level":3,"title":"def sum(column : Symbol)","slug":"def-sum-column-symbol","link":"#def-sum-column-symbol","children":[]},{"level":3,"title":"def tables","slug":"def-tables","link":"#def-tables","children":[]},{"level":3,"title":"def to_sql(gen = @schema.gen)","slug":"def-to-sql-gen-schema-gen","link":"#def-to-sql-gen-schema-gen","children":[]},{"level":3,"title":"def where(hash : Hash(Symbol, DB::Any))","slug":"def-where-hash-hash-symbol-db-any","link":"#def-where-hash-hash-symbol-db-any","children":[]},{"level":3,"title":"def where","slug":"def-where","link":"#def-where","children":[]},{"level":3,"title":"def where","slug":"def-where-1","link":"#def-where-1","children":[]},{"level":3,"title":"def where","slug":"def-where-2","link":"#def-where-2","children":[]}]},{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro method_missing(call)","slug":"macro-method-missing-call","link":"#macro-method-missing-call","children":[]}]}],"relativePath":"main/Cql/Query.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Query.md"},r=s("div",null,[s("h1",{id:"class-cql-query",tabindex:"-1"},[l("class Cql::Query "),s("a",{class:"header-anchor",href:"#class-cql-query","aria-hidden":"true"},"#")]),s("p",null,[s("code",null,"Reference"),l(" < "),s("code",null,"Object")]),s("p",null,[l("The "),s("code",null,"Query"),l(" class is responsible for building SQL queries in a structured manner. It holds various components like selected columns, tables, conditions, and more. It provides methods to execute the query and return results.")]),s("p",null,[s("strong",null,"Example"),l(" Creating a new query")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"schema "),s("span",{style:{color:"#89DDFF"}},"="),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Cql"),s("span",{style:{color:"#89DDFF"}},"::"),s("span",{style:{color:"#FFCB6B"}},"Schema"),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#BABED8"}},"new")]),l(` `),s("span",{class:"line"}),l(` `),s("span",{class:"line"},[s("span",{style:{color:"#FFCB6B"}},"Cql"),s("span",{style:{color:"#89DDFF"}},"::"),s("span",{style:{color:"#FFCB6B"}},"Query"),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#82AAFF"}},"new"),s("span",{style:{color:"#89DDFF"}},"("),s("span",{style:{color:"#BABED8"}},"schema"),s("span",{style:{color:"#89DDFF"}},")")]),l(` `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"query"),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#82AAFF"}},"select"),s("span",{style:{color:"#89DDFF"}},"(:name,"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},":age)."),s("span",{style:{color:"#82AAFF"}},"from"),s("span",{style:{color:"#89DDFF"}},"(:users)."),s("span",{style:{color:"#82AAFF"}},"where"),s("span",{style:{color:"#89DDFF"}},"(name:"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},'"'),s("span",{style:{color:"#C3E88D"}},"John"),s("span",{style:{color:"#89DDFF"}},'"'),s("span",{style:{color:"#89DDFF"}},")."),s("span",{style:{color:"#82AAFF"}},"all"),s("span",{style:{color:"#89DDFF"}},"("),s("span",{style:{color:"#FFCB6B"}},"User"),s("span",{style:{color:"#89DDFF"}},")")]),l(` diff --git a/docs/assets/main_Cql_Query.md.d4182774.lean.js b/docs/assets/main_Cql_Query.md.a0f5a31f.lean.js similarity index 99% rename from docs/assets/main_Cql_Query.md.d4182774.lean.js rename to docs/assets/main_Cql_Query.md.a0f5a31f.lean.js index 0fed0da..8b5f2cd 100644 --- a/docs/assets/main_Cql_Query.md.d4182774.lean.js +++ b/docs/assets/main_Cql_Query.md.a0f5a31f.lean.js @@ -1,4 +1,4 @@ -import{_ as a,o as e,c as n,x as s,a as l,S as o}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const f=JSON.parse('{"title":"Cql::Query","description":"","frontmatter":{"title":"Cql::Query"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(schema : Schema)","slug":"def-new-schema-schema","link":"#def-new-schema-schema","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def aggr_columns","slug":"def-aggr-columns","link":"#def-aggr-columns","children":[]},{"level":3,"title":"def all(as as_kind)","slug":"def-all-as-as-kind","link":"#def-all-as-as-kind","children":[]},{"level":3,"title":"def all!(as as_kind)","slug":"def-all-as-as-kind-1","link":"#def-all-as-as-kind-1","children":[]},{"level":3,"title":"def avg(column : Symbol)","slug":"def-avg-column-symbol","link":"#def-avg-column-symbol","children":[]},{"level":3,"title":"def build","slug":"def-build","link":"#def-build","children":[]},{"level":3,"title":"def columns","slug":"def-columns","link":"#def-columns","children":[]},{"level":3,"title":"def count(column : Symbol = :*)","slug":"def-count-column-symbol","link":"#def-count-column-symbol","children":[]},{"level":3,"title":"def distinct","slug":"def-distinct","link":"#def-distinct","children":[]},{"level":3,"title":"def distinct?","slug":"def-distinct-1","link":"#def-distinct-1","children":[]},{"level":3,"title":"def each(as as_kind, &)","slug":"def-each-as-as-kind","link":"#def-each-as-as-kind","children":[]},{"level":3,"title":"def first(as as_kind)","slug":"def-first-as-as-kind","link":"#def-first-as-as-kind","children":[]},{"level":3,"title":"def first!(as as_kind)","slug":"def-first-as-as-kind-1","link":"#def-first-as-as-kind-1","children":[]},{"level":3,"title":"def from(*tbls : Symbol)","slug":"def-from-tbls-symbol","link":"#def-from-tbls-symbol","children":[]},{"level":3,"title":"def get(as as_kind)","slug":"def-get-as-as-kind","link":"#def-get-as-as-kind","children":[]},{"level":3,"title":"def group(*columns)","slug":"def-group-columns","link":"#def-group-columns","children":[]},{"level":3,"title":"def group_by","slug":"def-group-by","link":"#def-group-by","children":[]},{"level":3,"title":"def having","slug":"def-having","link":"#def-having","children":[]},{"level":3,"title":"def having","slug":"def-having-1","link":"#def-having-1","children":[]},{"level":3,"title":"def inner(table : Symbol, on : Hash(Cql::BaseColumn, Cql::BaseColumn | DB::Any))","slug":"def-inner-table-symbol-on-hash-cql-basecolumn-cql-basecolumn-db-any","link":"#def-inner-table-symbol-on-hash-cql-basecolumn-cql-basecolumn-db-any","children":[]},{"level":3,"title":"def inner(table : Symbol, &)","slug":"def-inner-table-symbol","link":"#def-inner-table-symbol","children":[]},{"level":3,"title":"def joins","slug":"def-joins","link":"#def-joins","children":[]},{"level":3,"title":"def left(table : Symbol, on : Hash(Cql::BaseColumn, Cql::BaseColumn | DB::Any))","slug":"def-left-table-symbol-on-hash-cql-basecolumn-cql-basecolumn-db-any","link":"#def-left-table-symbol-on-hash-cql-basecolumn-cql-basecolumn-db-any","children":[]},{"level":3,"title":"def left(table : Symbol, &)","slug":"def-left-table-symbol","link":"#def-left-table-symbol","children":[]},{"level":3,"title":"def limit(value : Int32)","slug":"def-limit-value-int32","link":"#def-limit-value-int32","children":[]},{"level":3,"title":"def limit","slug":"def-limit","link":"#def-limit","children":[]},{"level":3,"title":"def max(column : Symbol)","slug":"def-max-column-symbol","link":"#def-max-column-symbol","children":[]},{"level":3,"title":"def min(column : Symbol)","slug":"def-min-column-symbol","link":"#def-min-column-symbol","children":[]},{"level":3,"title":"def offset(value : Int32)","slug":"def-offset-value-int32","link":"#def-offset-value-int32","children":[]},{"level":3,"title":"def offset","slug":"def-offset","link":"#def-offset","children":[]},{"level":3,"title":"def order(*fields)","slug":"def-order-fields","link":"#def-order-fields","children":[]},{"level":3,"title":"def order","slug":"def-order","link":"#def-order","children":[]},{"level":3,"title":"def order_by","slug":"def-order-by","link":"#def-order-by","children":[]},{"level":3,"title":"def right(table : Symbol, on : Hash(Cql::BaseColumn, Cql::BaseColumn | DB::Any))","slug":"def-right-table-symbol-on-hash-cql-basecolumn-cql-basecolumn-db-any","link":"#def-right-table-symbol-on-hash-cql-basecolumn-cql-basecolumn-db-any","children":[]},{"level":3,"title":"def right(table : Symbol, &)","slug":"def-right-table-symbol","link":"#def-right-table-symbol","children":[]},{"level":3,"title":"def select(*columns : Symbol)","slug":"def-select-columns-symbol","link":"#def-select-columns-symbol","children":[]},{"level":3,"title":"def select","slug":"def-select","link":"#def-select","children":[]},{"level":3,"title":"def sum(column : Symbol)","slug":"def-sum-column-symbol","link":"#def-sum-column-symbol","children":[]},{"level":3,"title":"def tables","slug":"def-tables","link":"#def-tables","children":[]},{"level":3,"title":"def to_sql(gen = @schema.gen)","slug":"def-to-sql-gen-schema-gen","link":"#def-to-sql-gen-schema-gen","children":[]},{"level":3,"title":"def where(hash : Hash(Symbol, DB::Any))","slug":"def-where-hash-hash-symbol-db-any","link":"#def-where-hash-hash-symbol-db-any","children":[]},{"level":3,"title":"def where","slug":"def-where","link":"#def-where","children":[]},{"level":3,"title":"def where","slug":"def-where-1","link":"#def-where-1","children":[]},{"level":3,"title":"def where","slug":"def-where-2","link":"#def-where-2","children":[]}]},{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro method_missing(call)","slug":"macro-method-missing-call","link":"#macro-method-missing-call","children":[]}]}],"relativePath":"main/Cql/Query.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Query.md"},r=s("div",null,[s("h1",{id:"class-cql-query",tabindex:"-1"},[l("class Cql::Query "),s("a",{class:"header-anchor",href:"#class-cql-query","aria-hidden":"true"},"#")]),s("p",null,[s("code",null,"Reference"),l(" < "),s("code",null,"Object")]),s("p",null,[l("The "),s("code",null,"Query"),l(" class is responsible for building SQL queries in a structured manner. It holds various components like selected columns, tables, conditions, and more. It provides methods to execute the query and return results.")]),s("p",null,[s("strong",null,"Example"),l(" Creating a new query")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"schema "),s("span",{style:{color:"#89DDFF"}},"="),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Cql"),s("span",{style:{color:"#89DDFF"}},"::"),s("span",{style:{color:"#FFCB6B"}},"Schema"),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#BABED8"}},"new")]),l(` +import{_ as a,o as e,c as n,x as s,a as l,S as o}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const f=JSON.parse('{"title":"Cql::Query","description":"","frontmatter":{"title":"Cql::Query"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(schema : Schema)","slug":"def-new-schema-schema","link":"#def-new-schema-schema","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def aggr_columns","slug":"def-aggr-columns","link":"#def-aggr-columns","children":[]},{"level":3,"title":"def all(as as_kind)","slug":"def-all-as-as-kind","link":"#def-all-as-as-kind","children":[]},{"level":3,"title":"def all!(as as_kind)","slug":"def-all-as-as-kind-1","link":"#def-all-as-as-kind-1","children":[]},{"level":3,"title":"def avg(column : Symbol)","slug":"def-avg-column-symbol","link":"#def-avg-column-symbol","children":[]},{"level":3,"title":"def build","slug":"def-build","link":"#def-build","children":[]},{"level":3,"title":"def columns","slug":"def-columns","link":"#def-columns","children":[]},{"level":3,"title":"def count(column : Symbol = :*)","slug":"def-count-column-symbol","link":"#def-count-column-symbol","children":[]},{"level":3,"title":"def distinct","slug":"def-distinct","link":"#def-distinct","children":[]},{"level":3,"title":"def distinct?","slug":"def-distinct-1","link":"#def-distinct-1","children":[]},{"level":3,"title":"def each(as as_kind, &)","slug":"def-each-as-as-kind","link":"#def-each-as-as-kind","children":[]},{"level":3,"title":"def first(as as_kind)","slug":"def-first-as-as-kind","link":"#def-first-as-as-kind","children":[]},{"level":3,"title":"def first!(as as_kind)","slug":"def-first-as-as-kind-1","link":"#def-first-as-as-kind-1","children":[]},{"level":3,"title":"def from(*tbls : Symbol)","slug":"def-from-tbls-symbol","link":"#def-from-tbls-symbol","children":[]},{"level":3,"title":"def get(as as_kind)","slug":"def-get-as-as-kind","link":"#def-get-as-as-kind","children":[]},{"level":3,"title":"def group(*columns)","slug":"def-group-columns","link":"#def-group-columns","children":[]},{"level":3,"title":"def group_by","slug":"def-group-by","link":"#def-group-by","children":[]},{"level":3,"title":"def having","slug":"def-having","link":"#def-having","children":[]},{"level":3,"title":"def having","slug":"def-having-1","link":"#def-having-1","children":[]},{"level":3,"title":"def inner(table : Symbol, on : Hash(Cql::BaseColumn, Cql::BaseColumn | DB::Any))","slug":"def-inner-table-symbol-on-hash-cql-basecolumn-cql-basecolumn-db-any","link":"#def-inner-table-symbol-on-hash-cql-basecolumn-cql-basecolumn-db-any","children":[]},{"level":3,"title":"def inner(table : Symbol, &)","slug":"def-inner-table-symbol","link":"#def-inner-table-symbol","children":[]},{"level":3,"title":"def joins","slug":"def-joins","link":"#def-joins","children":[]},{"level":3,"title":"def left(table : Symbol, on : Hash(Cql::BaseColumn, Cql::BaseColumn | DB::Any))","slug":"def-left-table-symbol-on-hash-cql-basecolumn-cql-basecolumn-db-any","link":"#def-left-table-symbol-on-hash-cql-basecolumn-cql-basecolumn-db-any","children":[]},{"level":3,"title":"def left(table : Symbol, &)","slug":"def-left-table-symbol","link":"#def-left-table-symbol","children":[]},{"level":3,"title":"def limit(value : Int32)","slug":"def-limit-value-int32","link":"#def-limit-value-int32","children":[]},{"level":3,"title":"def limit","slug":"def-limit","link":"#def-limit","children":[]},{"level":3,"title":"def max(column : Symbol)","slug":"def-max-column-symbol","link":"#def-max-column-symbol","children":[]},{"level":3,"title":"def min(column : Symbol)","slug":"def-min-column-symbol","link":"#def-min-column-symbol","children":[]},{"level":3,"title":"def offset(value : Int32)","slug":"def-offset-value-int32","link":"#def-offset-value-int32","children":[]},{"level":3,"title":"def offset","slug":"def-offset","link":"#def-offset","children":[]},{"level":3,"title":"def order(*fields)","slug":"def-order-fields","link":"#def-order-fields","children":[]},{"level":3,"title":"def order","slug":"def-order","link":"#def-order","children":[]},{"level":3,"title":"def order_by","slug":"def-order-by","link":"#def-order-by","children":[]},{"level":3,"title":"def right(table : Symbol, on : Hash(Cql::BaseColumn, Cql::BaseColumn | DB::Any))","slug":"def-right-table-symbol-on-hash-cql-basecolumn-cql-basecolumn-db-any","link":"#def-right-table-symbol-on-hash-cql-basecolumn-cql-basecolumn-db-any","children":[]},{"level":3,"title":"def right(table : Symbol, &)","slug":"def-right-table-symbol","link":"#def-right-table-symbol","children":[]},{"level":3,"title":"def select(*columns : Symbol)","slug":"def-select-columns-symbol","link":"#def-select-columns-symbol","children":[]},{"level":3,"title":"def select","slug":"def-select","link":"#def-select","children":[]},{"level":3,"title":"def sum(column : Symbol)","slug":"def-sum-column-symbol","link":"#def-sum-column-symbol","children":[]},{"level":3,"title":"def tables","slug":"def-tables","link":"#def-tables","children":[]},{"level":3,"title":"def to_sql(gen = @schema.gen)","slug":"def-to-sql-gen-schema-gen","link":"#def-to-sql-gen-schema-gen","children":[]},{"level":3,"title":"def where(hash : Hash(Symbol, DB::Any))","slug":"def-where-hash-hash-symbol-db-any","link":"#def-where-hash-hash-symbol-db-any","children":[]},{"level":3,"title":"def where","slug":"def-where","link":"#def-where","children":[]},{"level":3,"title":"def where","slug":"def-where-1","link":"#def-where-1","children":[]},{"level":3,"title":"def where","slug":"def-where-2","link":"#def-where-2","children":[]}]},{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro method_missing(call)","slug":"macro-method-missing-call","link":"#macro-method-missing-call","children":[]}]}],"relativePath":"main/Cql/Query.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Query.md"},r=s("div",null,[s("h1",{id:"class-cql-query",tabindex:"-1"},[l("class Cql::Query "),s("a",{class:"header-anchor",href:"#class-cql-query","aria-hidden":"true"},"#")]),s("p",null,[s("code",null,"Reference"),l(" < "),s("code",null,"Object")]),s("p",null,[l("The "),s("code",null,"Query"),l(" class is responsible for building SQL queries in a structured manner. It holds various components like selected columns, tables, conditions, and more. It provides methods to execute the query and return results.")]),s("p",null,[s("strong",null,"Example"),l(" Creating a new query")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"schema "),s("span",{style:{color:"#89DDFF"}},"="),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Cql"),s("span",{style:{color:"#89DDFF"}},"::"),s("span",{style:{color:"#FFCB6B"}},"Schema"),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#BABED8"}},"new")]),l(` `),s("span",{class:"line"}),l(` `),s("span",{class:"line"},[s("span",{style:{color:"#FFCB6B"}},"Cql"),s("span",{style:{color:"#89DDFF"}},"::"),s("span",{style:{color:"#FFCB6B"}},"Query"),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#82AAFF"}},"new"),s("span",{style:{color:"#89DDFF"}},"("),s("span",{style:{color:"#BABED8"}},"schema"),s("span",{style:{color:"#89DDFF"}},")")]),l(` `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"query"),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#82AAFF"}},"select"),s("span",{style:{color:"#89DDFF"}},"(:name,"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},":age)."),s("span",{style:{color:"#82AAFF"}},"from"),s("span",{style:{color:"#89DDFF"}},"(:users)."),s("span",{style:{color:"#82AAFF"}},"where"),s("span",{style:{color:"#89DDFF"}},"(name:"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},'"'),s("span",{style:{color:"#C3E88D"}},"John"),s("span",{style:{color:"#89DDFF"}},'"'),s("span",{style:{color:"#89DDFF"}},")."),s("span",{style:{color:"#82AAFF"}},"all"),s("span",{style:{color:"#89DDFF"}},"("),s("span",{style:{color:"#FFCB6B"}},"User"),s("span",{style:{color:"#89DDFF"}},")")]),l(` diff --git a/docs/assets/main_Cql_Record.md.66c3399d.js b/docs/assets/main_Cql_Record.md.e2316d6b.js similarity index 99% rename from docs/assets/main_Cql_Record.md.66c3399d.js rename to docs/assets/main_Cql_Record.md.e2316d6b.js index 30d2d7f..4a8d008 100644 --- a/docs/assets/main_Cql_Record.md.66c3399d.js +++ b/docs/assets/main_Cql_Record.md.e2316d6b.js @@ -1,4 +1,4 @@ -import{_ as e,o as a,c as n,x as s,a as l,S as t}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const f=JSON.parse('{"title":"Cql::Record(T, Pk)","description":"","frontmatter":{"title":"Cql::Record(T, Pk)"},"headers":[{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def attributes(attrs : Hash(Symbol, DB::Any))","slug":"def-attributes-attrs-hash-symbol-db-any","link":"#def-attributes-attrs-hash-symbol-db-any","children":[]},{"level":3,"title":"def attributes","slug":"def-attributes","link":"#def-attributes","children":[]},{"level":3,"title":"def delete","slug":"def-delete","link":"#def-delete","children":[]},{"level":3,"title":"def id","slug":"def-id","link":"#def-id","children":[]},{"level":3,"title":"def id=(id : Pk)","slug":"def-id-id-pk","link":"#def-id-id-pk","children":[]},{"level":3,"title":"def persisted?","slug":"def-persisted","link":"#def-persisted","children":[]},{"level":3,"title":"def reload!","slug":"def-reload","link":"#def-reload","children":[]},{"level":3,"title":"def save","slug":"def-save","link":"#def-save","children":[]},{"level":3,"title":"def update(fields : Hash(Symbol, DB::Any))","slug":"def-update-fields-hash-symbol-db-any","link":"#def-update-fields-hash-symbol-db-any","children":[]},{"level":3,"title":"def update","slug":"def-update","link":"#def-update","children":[]},{"level":3,"title":"def update","slug":"def-update-1","link":"#def-update-1","children":[]}]}],"relativePath":"main/Cql/Record.md","lastUpdated":1723931959000}'),o={name:"main/Cql/Record.md"},p=s("div",null,[s("h1",{id:"module-cql-record-t-pk",tabindex:"-1"},[l("module Cql::Record(T, Pk) "),s("a",{class:"header-anchor",href:"#module-cql-record-t-pk","aria-hidden":"true"},"#")]),s("p",null,"Write documentation for Record module"),s("p",null,[s("strong",null,"Example"),l(" Using the Record module")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#FFCB6B"}},"AcmeDB"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},"="),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Cql"),s("span",{style:{color:"#89DDFF"}},"::"),s("span",{style:{color:"#FFCB6B"}},"Schema"),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#82AAFF"}},"build"),s("span",{style:{color:"#89DDFF"}},"(:acme_db,"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},"adapter:"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Cql"),s("span",{style:{color:"#89DDFF"}},"::"),s("span",{style:{color:"#FFCB6B"}},"Adapter"),s("span",{style:{color:"#89DDFF"}},"::"),s("span",{style:{color:"#FFCB6B"}},"Postgres"),s("span",{style:{color:"#89DDFF"}},",")]),l(` +import{_ as e,o as a,c as n,x as s,a as l,S as t}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const f=JSON.parse('{"title":"Cql::Record(T, Pk)","description":"","frontmatter":{"title":"Cql::Record(T, Pk)"},"headers":[{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def attributes(attrs : Hash(Symbol, DB::Any))","slug":"def-attributes-attrs-hash-symbol-db-any","link":"#def-attributes-attrs-hash-symbol-db-any","children":[]},{"level":3,"title":"def attributes","slug":"def-attributes","link":"#def-attributes","children":[]},{"level":3,"title":"def delete","slug":"def-delete","link":"#def-delete","children":[]},{"level":3,"title":"def id","slug":"def-id","link":"#def-id","children":[]},{"level":3,"title":"def id=(id : Pk)","slug":"def-id-id-pk","link":"#def-id-id-pk","children":[]},{"level":3,"title":"def persisted?","slug":"def-persisted","link":"#def-persisted","children":[]},{"level":3,"title":"def reload!","slug":"def-reload","link":"#def-reload","children":[]},{"level":3,"title":"def save","slug":"def-save","link":"#def-save","children":[]},{"level":3,"title":"def update(fields : Hash(Symbol, DB::Any))","slug":"def-update-fields-hash-symbol-db-any","link":"#def-update-fields-hash-symbol-db-any","children":[]},{"level":3,"title":"def update","slug":"def-update","link":"#def-update","children":[]},{"level":3,"title":"def update","slug":"def-update-1","link":"#def-update-1","children":[]}]}],"relativePath":"main/Cql/Record.md","lastUpdated":1723931959000}'),o={name:"main/Cql/Record.md"},p=s("div",null,[s("h1",{id:"module-cql-record-t-pk",tabindex:"-1"},[l("module Cql::Record(T, Pk) "),s("a",{class:"header-anchor",href:"#module-cql-record-t-pk","aria-hidden":"true"},"#")]),s("p",null,"Write documentation for Record module"),s("p",null,[s("strong",null,"Example"),l(" Using the Record module")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#FFCB6B"}},"AcmeDB"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},"="),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Cql"),s("span",{style:{color:"#89DDFF"}},"::"),s("span",{style:{color:"#FFCB6B"}},"Schema"),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#82AAFF"}},"build"),s("span",{style:{color:"#89DDFF"}},"(:acme_db,"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},"adapter:"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Cql"),s("span",{style:{color:"#89DDFF"}},"::"),s("span",{style:{color:"#FFCB6B"}},"Adapter"),s("span",{style:{color:"#89DDFF"}},"::"),s("span",{style:{color:"#FFCB6B"}},"Postgres"),s("span",{style:{color:"#89DDFF"}},",")]),l(` `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},"uri:"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},'"'),s("span",{style:{color:"#C3E88D"}},"postgresql://example:example@localhost:5432/example"),s("span",{style:{color:"#89DDFF"}},'"'),s("span",{style:{color:"#89DDFF"}},")"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),l(` `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}}," table "),s("span",{style:{color:"#89DDFF"}},":posts"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),l(` `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}}," primary "),s("span",{style:{color:"#89DDFF"}},":id,"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Int64"),s("span",{style:{color:"#89DDFF"}},","),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},"auto_increment:"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FF9CAC"}},"true")]),l(` diff --git a/docs/assets/main_Cql_Record.md.66c3399d.lean.js b/docs/assets/main_Cql_Record.md.e2316d6b.lean.js similarity index 99% rename from docs/assets/main_Cql_Record.md.66c3399d.lean.js rename to docs/assets/main_Cql_Record.md.e2316d6b.lean.js index 974772c..85bcfb7 100644 --- a/docs/assets/main_Cql_Record.md.66c3399d.lean.js +++ b/docs/assets/main_Cql_Record.md.e2316d6b.lean.js @@ -1,4 +1,4 @@ -import{_ as e,o as a,c as n,x as s,a as l,S as t}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const f=JSON.parse('{"title":"Cql::Record(T, Pk)","description":"","frontmatter":{"title":"Cql::Record(T, Pk)"},"headers":[{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def attributes(attrs : Hash(Symbol, DB::Any))","slug":"def-attributes-attrs-hash-symbol-db-any","link":"#def-attributes-attrs-hash-symbol-db-any","children":[]},{"level":3,"title":"def attributes","slug":"def-attributes","link":"#def-attributes","children":[]},{"level":3,"title":"def delete","slug":"def-delete","link":"#def-delete","children":[]},{"level":3,"title":"def id","slug":"def-id","link":"#def-id","children":[]},{"level":3,"title":"def id=(id : Pk)","slug":"def-id-id-pk","link":"#def-id-id-pk","children":[]},{"level":3,"title":"def persisted?","slug":"def-persisted","link":"#def-persisted","children":[]},{"level":3,"title":"def reload!","slug":"def-reload","link":"#def-reload","children":[]},{"level":3,"title":"def save","slug":"def-save","link":"#def-save","children":[]},{"level":3,"title":"def update(fields : Hash(Symbol, DB::Any))","slug":"def-update-fields-hash-symbol-db-any","link":"#def-update-fields-hash-symbol-db-any","children":[]},{"level":3,"title":"def update","slug":"def-update","link":"#def-update","children":[]},{"level":3,"title":"def update","slug":"def-update-1","link":"#def-update-1","children":[]}]}],"relativePath":"main/Cql/Record.md","lastUpdated":1723931959000}'),o={name:"main/Cql/Record.md"},p=s("div",null,[s("h1",{id:"module-cql-record-t-pk",tabindex:"-1"},[l("module Cql::Record(T, Pk) "),s("a",{class:"header-anchor",href:"#module-cql-record-t-pk","aria-hidden":"true"},"#")]),s("p",null,"Write documentation for Record module"),s("p",null,[s("strong",null,"Example"),l(" Using the Record module")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#FFCB6B"}},"AcmeDB"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},"="),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Cql"),s("span",{style:{color:"#89DDFF"}},"::"),s("span",{style:{color:"#FFCB6B"}},"Schema"),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#82AAFF"}},"build"),s("span",{style:{color:"#89DDFF"}},"(:acme_db,"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},"adapter:"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Cql"),s("span",{style:{color:"#89DDFF"}},"::"),s("span",{style:{color:"#FFCB6B"}},"Adapter"),s("span",{style:{color:"#89DDFF"}},"::"),s("span",{style:{color:"#FFCB6B"}},"Postgres"),s("span",{style:{color:"#89DDFF"}},",")]),l(` +import{_ as e,o as a,c as n,x as s,a as l,S as t}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const f=JSON.parse('{"title":"Cql::Record(T, Pk)","description":"","frontmatter":{"title":"Cql::Record(T, Pk)"},"headers":[{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def attributes(attrs : Hash(Symbol, DB::Any))","slug":"def-attributes-attrs-hash-symbol-db-any","link":"#def-attributes-attrs-hash-symbol-db-any","children":[]},{"level":3,"title":"def attributes","slug":"def-attributes","link":"#def-attributes","children":[]},{"level":3,"title":"def delete","slug":"def-delete","link":"#def-delete","children":[]},{"level":3,"title":"def id","slug":"def-id","link":"#def-id","children":[]},{"level":3,"title":"def id=(id : Pk)","slug":"def-id-id-pk","link":"#def-id-id-pk","children":[]},{"level":3,"title":"def persisted?","slug":"def-persisted","link":"#def-persisted","children":[]},{"level":3,"title":"def reload!","slug":"def-reload","link":"#def-reload","children":[]},{"level":3,"title":"def save","slug":"def-save","link":"#def-save","children":[]},{"level":3,"title":"def update(fields : Hash(Symbol, DB::Any))","slug":"def-update-fields-hash-symbol-db-any","link":"#def-update-fields-hash-symbol-db-any","children":[]},{"level":3,"title":"def update","slug":"def-update","link":"#def-update","children":[]},{"level":3,"title":"def update","slug":"def-update-1","link":"#def-update-1","children":[]}]}],"relativePath":"main/Cql/Record.md","lastUpdated":1723931959000}'),o={name:"main/Cql/Record.md"},p=s("div",null,[s("h1",{id:"module-cql-record-t-pk",tabindex:"-1"},[l("module Cql::Record(T, Pk) "),s("a",{class:"header-anchor",href:"#module-cql-record-t-pk","aria-hidden":"true"},"#")]),s("p",null,"Write documentation for Record module"),s("p",null,[s("strong",null,"Example"),l(" Using the Record module")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#FFCB6B"}},"AcmeDB"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},"="),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Cql"),s("span",{style:{color:"#89DDFF"}},"::"),s("span",{style:{color:"#FFCB6B"}},"Schema"),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#82AAFF"}},"build"),s("span",{style:{color:"#89DDFF"}},"(:acme_db,"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},"adapter:"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Cql"),s("span",{style:{color:"#89DDFF"}},"::"),s("span",{style:{color:"#FFCB6B"}},"Adapter"),s("span",{style:{color:"#89DDFF"}},"::"),s("span",{style:{color:"#FFCB6B"}},"Postgres"),s("span",{style:{color:"#89DDFF"}},",")]),l(` `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},"uri:"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},'"'),s("span",{style:{color:"#C3E88D"}},"postgresql://example:example@localhost:5432/example"),s("span",{style:{color:"#89DDFF"}},'"'),s("span",{style:{color:"#89DDFF"}},")"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),l(` `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}}," table "),s("span",{style:{color:"#89DDFF"}},":posts"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),l(` `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}}," primary "),s("span",{style:{color:"#89DDFF"}},":id,"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Int64"),s("span",{style:{color:"#89DDFF"}},","),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},"auto_increment:"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FF9CAC"}},"true")]),l(` diff --git a/docs/assets/main_Cql_Relations.md.2c142ec3.js b/docs/assets/main_Cql_Relations.md.4ad49e17.js similarity index 83% rename from docs/assets/main_Cql_Relations.md.2c142ec3.js rename to docs/assets/main_Cql_Relations.md.4ad49e17.js index 937d4de..017da7e 100644 --- a/docs/assets/main_Cql_Relations.md.2c142ec3.js +++ b/docs/assets/main_Cql_Relations.md.4ad49e17.js @@ -1 +1 @@ -import{_ as t,o as a,c as s,x as e,a as o}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const x=JSON.parse('{"title":"Cql::Relations","description":"","frontmatter":{"title":"Cql::Relations"},"headers":[],"relativePath":"main/Cql/Relations.md","lastUpdated":1723931959000}'),l={name:"main/Cql/Relations.md"},n=e("div",null,[e("h1",{id:"module-cql-relations",tabindex:"-1"},[o("module Cql::Relations "),e("a",{class:"header-anchor",href:"#module-cql-relations","aria-hidden":"true"},"#")]),e("details",{class:"details custom-block"},[e("summary",null,"Table of Contents"),e("nav",{class:"table-of-contents"},[e("ul")])])],-1),i=e("p",null,":::",-1),c=[n,i];function r(d,m,_,u,p,h){return a(),s("div",null,c)}const C=t(l,[["render",r]]);export{x as __pageData,C as default}; +import{_ as t,o as a,c as s,x as e,a as o}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const x=JSON.parse('{"title":"Cql::Relations","description":"","frontmatter":{"title":"Cql::Relations"},"headers":[],"relativePath":"main/Cql/Relations.md","lastUpdated":1723931959000}'),l={name:"main/Cql/Relations.md"},n=e("div",null,[e("h1",{id:"module-cql-relations",tabindex:"-1"},[o("module Cql::Relations "),e("a",{class:"header-anchor",href:"#module-cql-relations","aria-hidden":"true"},"#")]),e("details",{class:"details custom-block"},[e("summary",null,"Table of Contents"),e("nav",{class:"table-of-contents"},[e("ul")])])],-1),i=e("p",null,":::",-1),c=[n,i];function r(d,m,_,u,p,h){return a(),s("div",null,c)}const C=t(l,[["render",r]]);export{x as __pageData,C as default}; diff --git a/docs/assets/main_Cql_Relations.md.2c142ec3.lean.js b/docs/assets/main_Cql_Relations.md.4ad49e17.lean.js similarity index 83% rename from docs/assets/main_Cql_Relations.md.2c142ec3.lean.js rename to docs/assets/main_Cql_Relations.md.4ad49e17.lean.js index 937d4de..017da7e 100644 --- a/docs/assets/main_Cql_Relations.md.2c142ec3.lean.js +++ b/docs/assets/main_Cql_Relations.md.4ad49e17.lean.js @@ -1 +1 @@ -import{_ as t,o as a,c as s,x as e,a as o}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const x=JSON.parse('{"title":"Cql::Relations","description":"","frontmatter":{"title":"Cql::Relations"},"headers":[],"relativePath":"main/Cql/Relations.md","lastUpdated":1723931959000}'),l={name:"main/Cql/Relations.md"},n=e("div",null,[e("h1",{id:"module-cql-relations",tabindex:"-1"},[o("module Cql::Relations "),e("a",{class:"header-anchor",href:"#module-cql-relations","aria-hidden":"true"},"#")]),e("details",{class:"details custom-block"},[e("summary",null,"Table of Contents"),e("nav",{class:"table-of-contents"},[e("ul")])])],-1),i=e("p",null,":::",-1),c=[n,i];function r(d,m,_,u,p,h){return a(),s("div",null,c)}const C=t(l,[["render",r]]);export{x as __pageData,C as default}; +import{_ as t,o as a,c as s,x as e,a as o}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const x=JSON.parse('{"title":"Cql::Relations","description":"","frontmatter":{"title":"Cql::Relations"},"headers":[],"relativePath":"main/Cql/Relations.md","lastUpdated":1723931959000}'),l={name:"main/Cql/Relations.md"},n=e("div",null,[e("h1",{id:"module-cql-relations",tabindex:"-1"},[o("module Cql::Relations "),e("a",{class:"header-anchor",href:"#module-cql-relations","aria-hidden":"true"},"#")]),e("details",{class:"details custom-block"},[e("summary",null,"Table of Contents"),e("nav",{class:"table-of-contents"},[e("ul")])])],-1),i=e("p",null,":::",-1),c=[n,i];function r(d,m,_,u,p,h){return a(),s("div",null,c)}const C=t(l,[["render",r]]);export{x as __pageData,C as default}; diff --git a/docs/assets/main_Cql_Relations_BelongsTo.md.89f434a5.js b/docs/assets/main_Cql_Relations_BelongsTo.md.21e1209a.js similarity index 91% rename from docs/assets/main_Cql_Relations_BelongsTo.md.89f434a5.js rename to docs/assets/main_Cql_Relations_BelongsTo.md.21e1209a.js index f82bd44..58d36c4 100644 --- a/docs/assets/main_Cql_Relations_BelongsTo.md.89f434a5.js +++ b/docs/assets/main_Cql_Relations_BelongsTo.md.21e1209a.js @@ -1 +1 @@ -import{_ as e,o,c as a,S as s}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const u=JSON.parse('{"title":"Cql::Relations::BelongsTo","description":"","frontmatter":{"title":"Cql::Relations::BelongsTo"},"headers":[{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro belongs_to(assoc, foreign_key)","slug":"macro-belongs-to-assoc-foreign-key","link":"#macro-belongs-to-assoc-foreign-key","children":[]}]}],"relativePath":"main/Cql/Relations/BelongsTo.md","lastUpdated":1723931959000}'),l={name:"main/Cql/Relations/BelongsTo.md"},t=s('

module Cql::Relations::BelongsTo

Table of Contents

Macros

macro belongs_to(assoc, foreign_key)

Define the belongs_to association

:::

',5),n=[t];function r(c,i,d,_,m,g){return o(),a("div",null,n)}const b=e(l,[["render",r]]);export{u as __pageData,b as default}; +import{_ as e,o,c as a,S as s}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const u=JSON.parse('{"title":"Cql::Relations::BelongsTo","description":"","frontmatter":{"title":"Cql::Relations::BelongsTo"},"headers":[{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro belongs_to(assoc, foreign_key)","slug":"macro-belongs-to-assoc-foreign-key","link":"#macro-belongs-to-assoc-foreign-key","children":[]}]}],"relativePath":"main/Cql/Relations/BelongsTo.md","lastUpdated":1723931959000}'),l={name:"main/Cql/Relations/BelongsTo.md"},t=s('

module Cql::Relations::BelongsTo

Table of Contents

Macros

macro belongs_to(assoc, foreign_key)

Define the belongs_to association

:::

',5),n=[t];function r(c,i,d,_,m,g){return o(),a("div",null,n)}const b=e(l,[["render",r]]);export{u as __pageData,b as default}; diff --git a/docs/assets/main_Cql_Relations_BelongsTo.md.89f434a5.lean.js b/docs/assets/main_Cql_Relations_BelongsTo.md.21e1209a.lean.js similarity index 82% rename from docs/assets/main_Cql_Relations_BelongsTo.md.89f434a5.lean.js rename to docs/assets/main_Cql_Relations_BelongsTo.md.21e1209a.lean.js index f839abf..80662d9 100644 --- a/docs/assets/main_Cql_Relations_BelongsTo.md.89f434a5.lean.js +++ b/docs/assets/main_Cql_Relations_BelongsTo.md.21e1209a.lean.js @@ -1 +1 @@ -import{_ as e,o,c as a,S as s}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const u=JSON.parse('{"title":"Cql::Relations::BelongsTo","description":"","frontmatter":{"title":"Cql::Relations::BelongsTo"},"headers":[{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro belongs_to(assoc, foreign_key)","slug":"macro-belongs-to-assoc-foreign-key","link":"#macro-belongs-to-assoc-foreign-key","children":[]}]}],"relativePath":"main/Cql/Relations/BelongsTo.md","lastUpdated":1723931959000}'),l={name:"main/Cql/Relations/BelongsTo.md"},t=s("",5),n=[t];function r(c,i,d,_,m,g){return o(),a("div",null,n)}const b=e(l,[["render",r]]);export{u as __pageData,b as default}; +import{_ as e,o,c as a,S as s}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const u=JSON.parse('{"title":"Cql::Relations::BelongsTo","description":"","frontmatter":{"title":"Cql::Relations::BelongsTo"},"headers":[{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro belongs_to(assoc, foreign_key)","slug":"macro-belongs-to-assoc-foreign-key","link":"#macro-belongs-to-assoc-foreign-key","children":[]}]}],"relativePath":"main/Cql/Relations/BelongsTo.md","lastUpdated":1723931959000}'),l={name:"main/Cql/Relations/BelongsTo.md"},t=s("",5),n=[t];function r(c,i,d,_,m,g){return o(),a("div",null,n)}const b=e(l,[["render",r]]);export{u as __pageData,b as default}; diff --git a/docs/assets/main_Cql_Relations_Collection.md.ad0d1706.js b/docs/assets/main_Cql_Relations_Collection.md.6aeb93ca.js similarity index 99% rename from docs/assets/main_Cql_Relations_Collection.md.ad0d1706.js rename to docs/assets/main_Cql_Relations_Collection.md.6aeb93ca.js index 62967d5..4cc72ff 100644 --- a/docs/assets/main_Cql_Relations_Collection.md.ad0d1706.js +++ b/docs/assets/main_Cql_Relations_Collection.md.6aeb93ca.js @@ -1,4 +1,4 @@ -import{_ as l,o as e,c as n,x as s,a,S as o}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const f=JSON.parse('{"title":"Cql::Relations::Collection(Target, Pk)","description":"","frontmatter":{"title":"Cql::Relations::Collection(Target, Pk)"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(key : Symbol, id : Pk, cascade : Bool = false, query : Cql::Query = (Cql::Query.new(Target.schema)).from(Target.table))","slug":"def-new-key-symbol-id-pk-cascade-bool-false-query-cql-query-cql-query-new-target-schema-from-target-table","link":"#def-new-key-symbol-id-pk-cascade-bool-false-query-cql-query-cql-query-new-target-schema-from-target-table","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def <<(record : Target)","slug":"def-record-target","link":"#def-record-target","children":[]},{"level":3,"title":"def all","slug":"def-all","link":"#def-all","children":[]},{"level":3,"title":"def clear","slug":"def-clear","link":"#def-clear","children":[]},{"level":3,"title":"def create(record : Target)","slug":"def-create-record-target","link":"#def-create-record-target","children":[]},{"level":3,"title":"def create","slug":"def-create","link":"#def-create","children":[]},{"level":3,"title":"def delete(record : Target)","slug":"def-delete-record-target","link":"#def-delete-record-target","children":[]},{"level":3,"title":"def delete(id : Pk)","slug":"def-delete-id-pk","link":"#def-delete-id-pk","children":[]},{"level":3,"title":"def empty?","slug":"def-empty","link":"#def-empty","children":[]},{"level":3,"title":"def exists?","slug":"def-exists","link":"#def-exists","children":[]},{"level":3,"title":"def find","slug":"def-find","link":"#def-find","children":[]},{"level":3,"title":"def ids","slug":"def-ids","link":"#def-ids","children":[]},{"level":3,"title":"def ids=(ids : Array(Pk))","slug":"def-ids-ids-array-pk","link":"#def-ids-ids-array-pk","children":[]},{"level":3,"title":"def reload","slug":"def-reload","link":"#def-reload","children":[]},{"level":3,"title":"def size","slug":"def-size","link":"#def-size","children":[]}]},{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro method_missing(call)","slug":"macro-method-missing-call","link":"#macro-method-missing-call","children":[]}]}],"relativePath":"main/Cql/Relations/Collection.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Relations/Collection.md"},r=s("div",null,[s("h1",{id:"class-cql-relations-collection-target-pk",tabindex:"-1"},[a("class Cql::Relations::Collection(Target, Pk) "),s("a",{class:"header-anchor",href:"#class-cql-relations-collection-target-pk","aria-hidden":"true"},"#")]),s("p",null,[s("code",null,"Reference"),a(" < "),s("code",null,"Object")]),s("p",null,"A collection of records for a one to many relationship This class is used to manage the relationship between two tables through a foreign key column in the target table and provide methods to manage the association between the two tables and query records in the associated table based on the foreign key value of the parent record."),s("ul",null,[s("li",null,[s("strong",null,"param"),a(" : Target (Cql::Model) - The target model")]),s("li",null,[s("strong",null,"param"),a(" : Pk (Int64) - The primary key type")]),s("li",null,[s("strong",null,"return"),a(" : Nil")])]),s("p",null,[s("strong",null,"Example")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#89DDFF","font-style":"italic"}},"class"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"User")]),a(` +import{_ as l,o as e,c as n,x as s,a,S as o}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const f=JSON.parse('{"title":"Cql::Relations::Collection(Target, Pk)","description":"","frontmatter":{"title":"Cql::Relations::Collection(Target, Pk)"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(key : Symbol, id : Pk, cascade : Bool = false, query : Cql::Query = (Cql::Query.new(Target.schema)).from(Target.table))","slug":"def-new-key-symbol-id-pk-cascade-bool-false-query-cql-query-cql-query-new-target-schema-from-target-table","link":"#def-new-key-symbol-id-pk-cascade-bool-false-query-cql-query-cql-query-new-target-schema-from-target-table","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def <<(record : Target)","slug":"def-record-target","link":"#def-record-target","children":[]},{"level":3,"title":"def all","slug":"def-all","link":"#def-all","children":[]},{"level":3,"title":"def clear","slug":"def-clear","link":"#def-clear","children":[]},{"level":3,"title":"def create(record : Target)","slug":"def-create-record-target","link":"#def-create-record-target","children":[]},{"level":3,"title":"def create","slug":"def-create","link":"#def-create","children":[]},{"level":3,"title":"def delete(record : Target)","slug":"def-delete-record-target","link":"#def-delete-record-target","children":[]},{"level":3,"title":"def delete(id : Pk)","slug":"def-delete-id-pk","link":"#def-delete-id-pk","children":[]},{"level":3,"title":"def empty?","slug":"def-empty","link":"#def-empty","children":[]},{"level":3,"title":"def exists?","slug":"def-exists","link":"#def-exists","children":[]},{"level":3,"title":"def find","slug":"def-find","link":"#def-find","children":[]},{"level":3,"title":"def ids","slug":"def-ids","link":"#def-ids","children":[]},{"level":3,"title":"def ids=(ids : Array(Pk))","slug":"def-ids-ids-array-pk","link":"#def-ids-ids-array-pk","children":[]},{"level":3,"title":"def reload","slug":"def-reload","link":"#def-reload","children":[]},{"level":3,"title":"def size","slug":"def-size","link":"#def-size","children":[]}]},{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro method_missing(call)","slug":"macro-method-missing-call","link":"#macro-method-missing-call","children":[]}]}],"relativePath":"main/Cql/Relations/Collection.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Relations/Collection.md"},r=s("div",null,[s("h1",{id:"class-cql-relations-collection-target-pk",tabindex:"-1"},[a("class Cql::Relations::Collection(Target, Pk) "),s("a",{class:"header-anchor",href:"#class-cql-relations-collection-target-pk","aria-hidden":"true"},"#")]),s("p",null,[s("code",null,"Reference"),a(" < "),s("code",null,"Object")]),s("p",null,"A collection of records for a one to many relationship This class is used to manage the relationship between two tables through a foreign key column in the target table and provide methods to manage the association between the two tables and query records in the associated table based on the foreign key value of the parent record."),s("ul",null,[s("li",null,[s("strong",null,"param"),a(" : Target (Cql::Model) - The target model")]),s("li",null,[s("strong",null,"param"),a(" : Pk (Int64) - The primary key type")]),s("li",null,[s("strong",null,"return"),a(" : Nil")])]),s("p",null,[s("strong",null,"Example")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#89DDFF","font-style":"italic"}},"class"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"User")]),a(` `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF","font-style":"italic"}},"include"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Cql"),s("span",{style:{color:"#89DDFF"}},"::"),s("span",{style:{color:"#FFCB6B"}},"Model"),s("span",{style:{color:"#89DDFF"}},"("),s("span",{style:{color:"#FFCB6B"}},"User"),s("span",{style:{color:"#89DDFF"}},","),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Int64"),s("span",{style:{color:"#89DDFF"}},")")]),a(` `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#82AAFF"}},"property"),s("span",{style:{color:"#BABED8"}}," id "),s("span",{style:{color:"#89DDFF"}},":"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Int64")]),a(` `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#82AAFF"}},"property"),s("span",{style:{color:"#BABED8"}}," name "),s("span",{style:{color:"#89DDFF"}},":"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"String")]),a(` diff --git a/docs/assets/main_Cql_Relations_Collection.md.ad0d1706.lean.js b/docs/assets/main_Cql_Relations_Collection.md.6aeb93ca.lean.js similarity index 98% rename from docs/assets/main_Cql_Relations_Collection.md.ad0d1706.lean.js rename to docs/assets/main_Cql_Relations_Collection.md.6aeb93ca.lean.js index 7f8c1ae..7b01a9f 100644 --- a/docs/assets/main_Cql_Relations_Collection.md.ad0d1706.lean.js +++ b/docs/assets/main_Cql_Relations_Collection.md.6aeb93ca.lean.js @@ -1,4 +1,4 @@ -import{_ as l,o as e,c as n,x as s,a,S as o}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const f=JSON.parse('{"title":"Cql::Relations::Collection(Target, Pk)","description":"","frontmatter":{"title":"Cql::Relations::Collection(Target, Pk)"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(key : Symbol, id : Pk, cascade : Bool = false, query : Cql::Query = (Cql::Query.new(Target.schema)).from(Target.table))","slug":"def-new-key-symbol-id-pk-cascade-bool-false-query-cql-query-cql-query-new-target-schema-from-target-table","link":"#def-new-key-symbol-id-pk-cascade-bool-false-query-cql-query-cql-query-new-target-schema-from-target-table","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def <<(record : Target)","slug":"def-record-target","link":"#def-record-target","children":[]},{"level":3,"title":"def all","slug":"def-all","link":"#def-all","children":[]},{"level":3,"title":"def clear","slug":"def-clear","link":"#def-clear","children":[]},{"level":3,"title":"def create(record : Target)","slug":"def-create-record-target","link":"#def-create-record-target","children":[]},{"level":3,"title":"def create","slug":"def-create","link":"#def-create","children":[]},{"level":3,"title":"def delete(record : Target)","slug":"def-delete-record-target","link":"#def-delete-record-target","children":[]},{"level":3,"title":"def delete(id : Pk)","slug":"def-delete-id-pk","link":"#def-delete-id-pk","children":[]},{"level":3,"title":"def empty?","slug":"def-empty","link":"#def-empty","children":[]},{"level":3,"title":"def exists?","slug":"def-exists","link":"#def-exists","children":[]},{"level":3,"title":"def find","slug":"def-find","link":"#def-find","children":[]},{"level":3,"title":"def ids","slug":"def-ids","link":"#def-ids","children":[]},{"level":3,"title":"def ids=(ids : Array(Pk))","slug":"def-ids-ids-array-pk","link":"#def-ids-ids-array-pk","children":[]},{"level":3,"title":"def reload","slug":"def-reload","link":"#def-reload","children":[]},{"level":3,"title":"def size","slug":"def-size","link":"#def-size","children":[]}]},{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro method_missing(call)","slug":"macro-method-missing-call","link":"#macro-method-missing-call","children":[]}]}],"relativePath":"main/Cql/Relations/Collection.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Relations/Collection.md"},r=s("div",null,[s("h1",{id:"class-cql-relations-collection-target-pk",tabindex:"-1"},[a("class Cql::Relations::Collection(Target, Pk) "),s("a",{class:"header-anchor",href:"#class-cql-relations-collection-target-pk","aria-hidden":"true"},"#")]),s("p",null,[s("code",null,"Reference"),a(" < "),s("code",null,"Object")]),s("p",null,"A collection of records for a one to many relationship This class is used to manage the relationship between two tables through a foreign key column in the target table and provide methods to manage the association between the two tables and query records in the associated table based on the foreign key value of the parent record."),s("ul",null,[s("li",null,[s("strong",null,"param"),a(" : Target (Cql::Model) - The target model")]),s("li",null,[s("strong",null,"param"),a(" : Pk (Int64) - The primary key type")]),s("li",null,[s("strong",null,"return"),a(" : Nil")])]),s("p",null,[s("strong",null,"Example")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#89DDFF","font-style":"italic"}},"class"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"User")]),a(` +import{_ as l,o as e,c as n,x as s,a,S as o}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const f=JSON.parse('{"title":"Cql::Relations::Collection(Target, Pk)","description":"","frontmatter":{"title":"Cql::Relations::Collection(Target, Pk)"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(key : Symbol, id : Pk, cascade : Bool = false, query : Cql::Query = (Cql::Query.new(Target.schema)).from(Target.table))","slug":"def-new-key-symbol-id-pk-cascade-bool-false-query-cql-query-cql-query-new-target-schema-from-target-table","link":"#def-new-key-symbol-id-pk-cascade-bool-false-query-cql-query-cql-query-new-target-schema-from-target-table","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def <<(record : Target)","slug":"def-record-target","link":"#def-record-target","children":[]},{"level":3,"title":"def all","slug":"def-all","link":"#def-all","children":[]},{"level":3,"title":"def clear","slug":"def-clear","link":"#def-clear","children":[]},{"level":3,"title":"def create(record : Target)","slug":"def-create-record-target","link":"#def-create-record-target","children":[]},{"level":3,"title":"def create","slug":"def-create","link":"#def-create","children":[]},{"level":3,"title":"def delete(record : Target)","slug":"def-delete-record-target","link":"#def-delete-record-target","children":[]},{"level":3,"title":"def delete(id : Pk)","slug":"def-delete-id-pk","link":"#def-delete-id-pk","children":[]},{"level":3,"title":"def empty?","slug":"def-empty","link":"#def-empty","children":[]},{"level":3,"title":"def exists?","slug":"def-exists","link":"#def-exists","children":[]},{"level":3,"title":"def find","slug":"def-find","link":"#def-find","children":[]},{"level":3,"title":"def ids","slug":"def-ids","link":"#def-ids","children":[]},{"level":3,"title":"def ids=(ids : Array(Pk))","slug":"def-ids-ids-array-pk","link":"#def-ids-ids-array-pk","children":[]},{"level":3,"title":"def reload","slug":"def-reload","link":"#def-reload","children":[]},{"level":3,"title":"def size","slug":"def-size","link":"#def-size","children":[]}]},{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro method_missing(call)","slug":"macro-method-missing-call","link":"#macro-method-missing-call","children":[]}]}],"relativePath":"main/Cql/Relations/Collection.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Relations/Collection.md"},r=s("div",null,[s("h1",{id:"class-cql-relations-collection-target-pk",tabindex:"-1"},[a("class Cql::Relations::Collection(Target, Pk) "),s("a",{class:"header-anchor",href:"#class-cql-relations-collection-target-pk","aria-hidden":"true"},"#")]),s("p",null,[s("code",null,"Reference"),a(" < "),s("code",null,"Object")]),s("p",null,"A collection of records for a one to many relationship This class is used to manage the relationship between two tables through a foreign key column in the target table and provide methods to manage the association between the two tables and query records in the associated table based on the foreign key value of the parent record."),s("ul",null,[s("li",null,[s("strong",null,"param"),a(" : Target (Cql::Model) - The target model")]),s("li",null,[s("strong",null,"param"),a(" : Pk (Int64) - The primary key type")]),s("li",null,[s("strong",null,"return"),a(" : Nil")])]),s("p",null,[s("strong",null,"Example")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#89DDFF","font-style":"italic"}},"class"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"User")]),a(` `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF","font-style":"italic"}},"include"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Cql"),s("span",{style:{color:"#89DDFF"}},"::"),s("span",{style:{color:"#FFCB6B"}},"Model"),s("span",{style:{color:"#89DDFF"}},"("),s("span",{style:{color:"#FFCB6B"}},"User"),s("span",{style:{color:"#89DDFF"}},","),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Int64"),s("span",{style:{color:"#89DDFF"}},")")]),a(` `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#82AAFF"}},"property"),s("span",{style:{color:"#BABED8"}}," id "),s("span",{style:{color:"#89DDFF"}},":"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Int64")]),a(` `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#82AAFF"}},"property"),s("span",{style:{color:"#BABED8"}}," name "),s("span",{style:{color:"#89DDFF"}},":"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"String")]),a(` diff --git a/docs/assets/main_Cql_Relations_HasMany.md.e6f16a94.lean.js b/docs/assets/main_Cql_Relations_HasMany.md.b1d57567.js similarity index 97% rename from docs/assets/main_Cql_Relations_HasMany.md.e6f16a94.lean.js rename to docs/assets/main_Cql_Relations_HasMany.md.b1d57567.js index a1a888d..c0f0797 100644 --- a/docs/assets/main_Cql_Relations_HasMany.md.e6f16a94.lean.js +++ b/docs/assets/main_Cql_Relations_HasMany.md.b1d57567.js @@ -1,4 +1,4 @@ -import{_ as l,o as s,c as n,x as e,a}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const _=JSON.parse('{"title":"Cql::Relations::HasMany","description":"","frontmatter":{"title":"Cql::Relations::HasMany"},"headers":[{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro has_many(name, type, foreign_key, cascade = false)","slug":"macro-has-many-name-type-foreign-key-cascade-false","link":"#macro-has-many-name-type-foreign-key-cascade-false","children":[]}]}],"relativePath":"main/Cql/Relations/HasMany.md","lastUpdated":1723931959000}'),o={name:"main/Cql/Relations/HasMany.md"},t=e("div",null,[e("h1",{id:"module-cql-relations-hasmany",tabindex:"-1"},[a("module Cql::Relations::HasMany "),e("a",{class:"header-anchor",href:"#module-cql-relations-hasmany","aria-hidden":"true"},"#")]),e("p",null,"Define the has_many association module that will be included in the model to define a one-to-many relationship between two tables in the database and provide methods to manage the association between the two tables and query records in the associated table based on the foreign key value of the parent record."),e("ul",null,[e("li",null,[e("strong",null,"param"),a(" : name (Symbol) - The name of the association")]),e("li",null,[e("strong",null,"param"),a(" : type (Cql::Model) - The target model")]),e("li",null,[e("strong",null,"param"),a(" : foreign_key (Symbol) - The foreign key column in the target table")]),e("li",null,[e("strong",null,"return"),a(" : Nil")])]),e("p",null,[e("strong",null,"Example")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#89DDFF","font-style":"italic"}},"class"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"User")]),a(` +import{_ as l,o as s,c as n,x as e,a}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const _=JSON.parse('{"title":"Cql::Relations::HasMany","description":"","frontmatter":{"title":"Cql::Relations::HasMany"},"headers":[{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro has_many(name, type, foreign_key, cascade = false)","slug":"macro-has-many-name-type-foreign-key-cascade-false","link":"#macro-has-many-name-type-foreign-key-cascade-false","children":[]}]}],"relativePath":"main/Cql/Relations/HasMany.md","lastUpdated":1723931959000}'),o={name:"main/Cql/Relations/HasMany.md"},t=e("div",null,[e("h1",{id:"module-cql-relations-hasmany",tabindex:"-1"},[a("module Cql::Relations::HasMany "),e("a",{class:"header-anchor",href:"#module-cql-relations-hasmany","aria-hidden":"true"},"#")]),e("p",null,"Define the has_many association module that will be included in the model to define a one-to-many relationship between two tables in the database and provide methods to manage the association between the two tables and query records in the associated table based on the foreign key value of the parent record."),e("ul",null,[e("li",null,[e("strong",null,"param"),a(" : name (Symbol) - The name of the association")]),e("li",null,[e("strong",null,"param"),a(" : type (Cql::Model) - The target model")]),e("li",null,[e("strong",null,"param"),a(" : foreign_key (Symbol) - The foreign key column in the target table")]),e("li",null,[e("strong",null,"return"),a(" : Nil")])]),e("p",null,[e("strong",null,"Example")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#89DDFF","font-style":"italic"}},"class"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"User")]),a(` `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF","font-style":"italic"}},"include"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"Cql"),e("span",{style:{color:"#89DDFF"}},"::"),e("span",{style:{color:"#FFCB6B"}},"Model"),e("span",{style:{color:"#89DDFF"}},"("),e("span",{style:{color:"#FFCB6B"}},"User"),e("span",{style:{color:"#89DDFF"}},","),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"Int64"),e("span",{style:{color:"#89DDFF"}},")")]),a(` `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#82AAFF"}},"property"),e("span",{style:{color:"#BABED8"}}," id "),e("span",{style:{color:"#89DDFF"}},":"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"Int64")]),a(` `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#82AAFF"}},"property"),e("span",{style:{color:"#BABED8"}}," name "),e("span",{style:{color:"#89DDFF"}},":"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"String")]),a(` diff --git a/docs/assets/main_Cql_Relations_HasMany.md.e6f16a94.js b/docs/assets/main_Cql_Relations_HasMany.md.b1d57567.lean.js similarity index 97% rename from docs/assets/main_Cql_Relations_HasMany.md.e6f16a94.js rename to docs/assets/main_Cql_Relations_HasMany.md.b1d57567.lean.js index a1a888d..c0f0797 100644 --- a/docs/assets/main_Cql_Relations_HasMany.md.e6f16a94.js +++ b/docs/assets/main_Cql_Relations_HasMany.md.b1d57567.lean.js @@ -1,4 +1,4 @@ -import{_ as l,o as s,c as n,x as e,a}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const _=JSON.parse('{"title":"Cql::Relations::HasMany","description":"","frontmatter":{"title":"Cql::Relations::HasMany"},"headers":[{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro has_many(name, type, foreign_key, cascade = false)","slug":"macro-has-many-name-type-foreign-key-cascade-false","link":"#macro-has-many-name-type-foreign-key-cascade-false","children":[]}]}],"relativePath":"main/Cql/Relations/HasMany.md","lastUpdated":1723931959000}'),o={name:"main/Cql/Relations/HasMany.md"},t=e("div",null,[e("h1",{id:"module-cql-relations-hasmany",tabindex:"-1"},[a("module Cql::Relations::HasMany "),e("a",{class:"header-anchor",href:"#module-cql-relations-hasmany","aria-hidden":"true"},"#")]),e("p",null,"Define the has_many association module that will be included in the model to define a one-to-many relationship between two tables in the database and provide methods to manage the association between the two tables and query records in the associated table based on the foreign key value of the parent record."),e("ul",null,[e("li",null,[e("strong",null,"param"),a(" : name (Symbol) - The name of the association")]),e("li",null,[e("strong",null,"param"),a(" : type (Cql::Model) - The target model")]),e("li",null,[e("strong",null,"param"),a(" : foreign_key (Symbol) - The foreign key column in the target table")]),e("li",null,[e("strong",null,"return"),a(" : Nil")])]),e("p",null,[e("strong",null,"Example")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#89DDFF","font-style":"italic"}},"class"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"User")]),a(` +import{_ as l,o as s,c as n,x as e,a}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const _=JSON.parse('{"title":"Cql::Relations::HasMany","description":"","frontmatter":{"title":"Cql::Relations::HasMany"},"headers":[{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro has_many(name, type, foreign_key, cascade = false)","slug":"macro-has-many-name-type-foreign-key-cascade-false","link":"#macro-has-many-name-type-foreign-key-cascade-false","children":[]}]}],"relativePath":"main/Cql/Relations/HasMany.md","lastUpdated":1723931959000}'),o={name:"main/Cql/Relations/HasMany.md"},t=e("div",null,[e("h1",{id:"module-cql-relations-hasmany",tabindex:"-1"},[a("module Cql::Relations::HasMany "),e("a",{class:"header-anchor",href:"#module-cql-relations-hasmany","aria-hidden":"true"},"#")]),e("p",null,"Define the has_many association module that will be included in the model to define a one-to-many relationship between two tables in the database and provide methods to manage the association between the two tables and query records in the associated table based on the foreign key value of the parent record."),e("ul",null,[e("li",null,[e("strong",null,"param"),a(" : name (Symbol) - The name of the association")]),e("li",null,[e("strong",null,"param"),a(" : type (Cql::Model) - The target model")]),e("li",null,[e("strong",null,"param"),a(" : foreign_key (Symbol) - The foreign key column in the target table")]),e("li",null,[e("strong",null,"return"),a(" : Nil")])]),e("p",null,[e("strong",null,"Example")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#89DDFF","font-style":"italic"}},"class"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"User")]),a(` `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF","font-style":"italic"}},"include"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"Cql"),e("span",{style:{color:"#89DDFF"}},"::"),e("span",{style:{color:"#FFCB6B"}},"Model"),e("span",{style:{color:"#89DDFF"}},"("),e("span",{style:{color:"#FFCB6B"}},"User"),e("span",{style:{color:"#89DDFF"}},","),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"Int64"),e("span",{style:{color:"#89DDFF"}},")")]),a(` `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#82AAFF"}},"property"),e("span",{style:{color:"#BABED8"}}," id "),e("span",{style:{color:"#89DDFF"}},":"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"Int64")]),a(` `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#82AAFF"}},"property"),e("span",{style:{color:"#BABED8"}}," name "),e("span",{style:{color:"#89DDFF"}},":"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"String")]),a(` diff --git a/docs/assets/main_Cql_Relations_HasOne.md.92a5bef9.js b/docs/assets/main_Cql_Relations_HasOne.md.3091b0a2.js similarity index 91% rename from docs/assets/main_Cql_Relations_HasOne.md.92a5bef9.js rename to docs/assets/main_Cql_Relations_HasOne.md.3091b0a2.js index 13cbf38..ab5f5a5 100644 --- a/docs/assets/main_Cql_Relations_HasOne.md.92a5bef9.js +++ b/docs/assets/main_Cql_Relations_HasOne.md.3091b0a2.js @@ -1 +1 @@ -import{_ as a,o as e,c as s,S as n}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const f=JSON.parse('{"title":"Cql::Relations::HasOne","description":"","frontmatter":{"title":"Cql::Relations::HasOne"},"headers":[{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro has_one(name, type)","slug":"macro-has-one-name-type","link":"#macro-has-one-name-type","children":[]}]}],"relativePath":"main/Cql/Relations/HasOne.md","lastUpdated":1723931959000}'),o={name:"main/Cql/Relations/HasOne.md"},t=n('

module Cql::Relations::HasOne

Define the has_one association

Table of Contents

Macros

macro has_one(name, type)

:::

',4),r=[t];function l(c,i,d,m,h,_){return e(),s("div",null,r)}const y=a(o,[["render",l]]);export{f as __pageData,y as default}; +import{_ as a,o as e,c as s,S as n}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const f=JSON.parse('{"title":"Cql::Relations::HasOne","description":"","frontmatter":{"title":"Cql::Relations::HasOne"},"headers":[{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro has_one(name, type)","slug":"macro-has-one-name-type","link":"#macro-has-one-name-type","children":[]}]}],"relativePath":"main/Cql/Relations/HasOne.md","lastUpdated":1723931959000}'),o={name:"main/Cql/Relations/HasOne.md"},t=n('

module Cql::Relations::HasOne

Define the has_one association

Table of Contents

Macros

macro has_one(name, type)

:::

',4),r=[t];function l(c,i,d,m,h,_){return e(),s("div",null,r)}const y=a(o,[["render",l]]);export{f as __pageData,y as default}; diff --git a/docs/assets/main_Cql_Relations_HasOne.md.92a5bef9.lean.js b/docs/assets/main_Cql_Relations_HasOne.md.3091b0a2.lean.js similarity index 81% rename from docs/assets/main_Cql_Relations_HasOne.md.92a5bef9.lean.js rename to docs/assets/main_Cql_Relations_HasOne.md.3091b0a2.lean.js index 3f638e6..32a399d 100644 --- a/docs/assets/main_Cql_Relations_HasOne.md.92a5bef9.lean.js +++ b/docs/assets/main_Cql_Relations_HasOne.md.3091b0a2.lean.js @@ -1 +1 @@ -import{_ as a,o as e,c as s,S as n}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const f=JSON.parse('{"title":"Cql::Relations::HasOne","description":"","frontmatter":{"title":"Cql::Relations::HasOne"},"headers":[{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro has_one(name, type)","slug":"macro-has-one-name-type","link":"#macro-has-one-name-type","children":[]}]}],"relativePath":"main/Cql/Relations/HasOne.md","lastUpdated":1723931959000}'),o={name:"main/Cql/Relations/HasOne.md"},t=n("",4),r=[t];function l(c,i,d,m,h,_){return e(),s("div",null,r)}const y=a(o,[["render",l]]);export{f as __pageData,y as default}; +import{_ as a,o as e,c as s,S as n}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const f=JSON.parse('{"title":"Cql::Relations::HasOne","description":"","frontmatter":{"title":"Cql::Relations::HasOne"},"headers":[{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro has_one(name, type)","slug":"macro-has-one-name-type","link":"#macro-has-one-name-type","children":[]}]}],"relativePath":"main/Cql/Relations/HasOne.md","lastUpdated":1723931959000}'),o={name:"main/Cql/Relations/HasOne.md"},t=n("",4),r=[t];function l(c,i,d,m,h,_){return e(),s("div",null,r)}const y=a(o,[["render",l]]);export{f as __pageData,y as default}; diff --git a/docs/assets/main_Cql_Relations_ManyCollection.md.b063b8e4.js b/docs/assets/main_Cql_Relations_ManyCollection.md.59e9d786.js similarity index 99% rename from docs/assets/main_Cql_Relations_ManyCollection.md.b063b8e4.js rename to docs/assets/main_Cql_Relations_ManyCollection.md.59e9d786.js index dda5019..6ec72f7 100644 --- a/docs/assets/main_Cql_Relations_ManyCollection.md.b063b8e4.js +++ b/docs/assets/main_Cql_Relations_ManyCollection.md.59e9d786.js @@ -1,4 +1,4 @@ -import{_ as l,o as e,c as n,x as s,a,S as o}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const h=JSON.parse('{"title":"Cql::Relations::ManyCollection(Target, Through, Pk)","description":"","frontmatter":{"title":"Cql::Relations::ManyCollection(Target, Through, Pk)"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(key : Symbol, id : Pk, target_key : Symbol, cascade : Bool = false, query : Cql::Query = (Cql::Query.new(Target.schema)).from(Target.table))","slug":"def-new-key-symbol-id-pk-target-key-symbol-cascade-bool-false-query-cql-query-cql-query-new-target-schema-from-target-table","link":"#def-new-key-symbol-id-pk-target-key-symbol-cascade-bool-false-query-cql-query-cql-query-new-target-schema-from-target-table","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def clear","slug":"def-clear","link":"#def-clear","children":[]},{"level":3,"title":"def create(record : Target)","slug":"def-create-record-target","link":"#def-create-record-target","children":[]},{"level":3,"title":"def create","slug":"def-create","link":"#def-create","children":[]},{"level":3,"title":"def delete(record : Target)","slug":"def-delete-record-target","link":"#def-delete-record-target","children":[]},{"level":3,"title":"def delete(id : Pk)","slug":"def-delete-id-pk","link":"#def-delete-id-pk","children":[]},{"level":3,"title":"def ids=(ids : Array(Int64))","slug":"def-ids-ids-array-int64","link":"#def-ids-ids-array-int64","children":[]}]}],"relativePath":"main/Cql/Relations/ManyCollection.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Relations/ManyCollection.md"},r=s("div",null,[s("h1",{id:"class-cql-relations-manycollection-target-through-pk",tabindex:"-1"},[a("class Cql::Relations::ManyCollection(Target, Through, Pk) "),s("a",{class:"header-anchor",href:"#class-cql-relations-manycollection-target-through-pk","aria-hidden":"true"},"#")]),s("p",null,[s("code",null,"Cql::Relations::Collection"),a(" < "),s("code",null,"Reference"),a(" < "),s("code",null,"Object")]),s("p",null,"A collection of records for a many to many relationship This class is used to manage the relationship between two tables through a join table (through)"),s("p",null,"A many-to-many association occurs when multiple records of one model can be associated with multiple records of another model, and vice versa. Typically, it requires a join table (or a junction table) to store the relationships between the records of the two models."),s("p",null,"Here’s how a many-to-many association is commonly implemented in CQL using Crystal."),s("p",null,[s("strong",null,"Example")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#89DDFF","font-style":"italic"}},"class"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Movie")]),a(` +import{_ as l,o as e,c as n,x as s,a,S as o}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const h=JSON.parse('{"title":"Cql::Relations::ManyCollection(Target, Through, Pk)","description":"","frontmatter":{"title":"Cql::Relations::ManyCollection(Target, Through, Pk)"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(key : Symbol, id : Pk, target_key : Symbol, cascade : Bool = false, query : Cql::Query = (Cql::Query.new(Target.schema)).from(Target.table))","slug":"def-new-key-symbol-id-pk-target-key-symbol-cascade-bool-false-query-cql-query-cql-query-new-target-schema-from-target-table","link":"#def-new-key-symbol-id-pk-target-key-symbol-cascade-bool-false-query-cql-query-cql-query-new-target-schema-from-target-table","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def clear","slug":"def-clear","link":"#def-clear","children":[]},{"level":3,"title":"def create(record : Target)","slug":"def-create-record-target","link":"#def-create-record-target","children":[]},{"level":3,"title":"def create","slug":"def-create","link":"#def-create","children":[]},{"level":3,"title":"def delete(record : Target)","slug":"def-delete-record-target","link":"#def-delete-record-target","children":[]},{"level":3,"title":"def delete(id : Pk)","slug":"def-delete-id-pk","link":"#def-delete-id-pk","children":[]},{"level":3,"title":"def ids=(ids : Array(Int64))","slug":"def-ids-ids-array-int64","link":"#def-ids-ids-array-int64","children":[]}]}],"relativePath":"main/Cql/Relations/ManyCollection.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Relations/ManyCollection.md"},r=s("div",null,[s("h1",{id:"class-cql-relations-manycollection-target-through-pk",tabindex:"-1"},[a("class Cql::Relations::ManyCollection(Target, Through, Pk) "),s("a",{class:"header-anchor",href:"#class-cql-relations-manycollection-target-through-pk","aria-hidden":"true"},"#")]),s("p",null,[s("code",null,"Cql::Relations::Collection"),a(" < "),s("code",null,"Reference"),a(" < "),s("code",null,"Object")]),s("p",null,"A collection of records for a many to many relationship This class is used to manage the relationship between two tables through a join table (through)"),s("p",null,"A many-to-many association occurs when multiple records of one model can be associated with multiple records of another model, and vice versa. Typically, it requires a join table (or a junction table) to store the relationships between the records of the two models."),s("p",null,"Here’s how a many-to-many association is commonly implemented in CQL using Crystal."),s("p",null,[s("strong",null,"Example")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#89DDFF","font-style":"italic"}},"class"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Movie")]),a(` `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF","font-style":"italic"}},"include"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Cql"),s("span",{style:{color:"#89DDFF"}},"::"),s("span",{style:{color:"#FFCB6B"}},"Model"),s("span",{style:{color:"#89DDFF"}},"("),s("span",{style:{color:"#FFCB6B"}},"Movie"),s("span",{style:{color:"#89DDFF"}},","),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Int64"),s("span",{style:{color:"#89DDFF"}},")")]),a(` `),s("span",{class:"line"}),a(` `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#82AAFF"}},"property"),s("span",{style:{color:"#BABED8"}}," id "),s("span",{style:{color:"#89DDFF"}},":"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Int64")]),a(` diff --git a/docs/assets/main_Cql_Relations_ManyCollection.md.b063b8e4.lean.js b/docs/assets/main_Cql_Relations_ManyCollection.md.59e9d786.lean.js similarity index 98% rename from docs/assets/main_Cql_Relations_ManyCollection.md.b063b8e4.lean.js rename to docs/assets/main_Cql_Relations_ManyCollection.md.59e9d786.lean.js index c2cb835..26c8932 100644 --- a/docs/assets/main_Cql_Relations_ManyCollection.md.b063b8e4.lean.js +++ b/docs/assets/main_Cql_Relations_ManyCollection.md.59e9d786.lean.js @@ -1,4 +1,4 @@ -import{_ as l,o as e,c as n,x as s,a,S as o}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const h=JSON.parse('{"title":"Cql::Relations::ManyCollection(Target, Through, Pk)","description":"","frontmatter":{"title":"Cql::Relations::ManyCollection(Target, Through, Pk)"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(key : Symbol, id : Pk, target_key : Symbol, cascade : Bool = false, query : Cql::Query = (Cql::Query.new(Target.schema)).from(Target.table))","slug":"def-new-key-symbol-id-pk-target-key-symbol-cascade-bool-false-query-cql-query-cql-query-new-target-schema-from-target-table","link":"#def-new-key-symbol-id-pk-target-key-symbol-cascade-bool-false-query-cql-query-cql-query-new-target-schema-from-target-table","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def clear","slug":"def-clear","link":"#def-clear","children":[]},{"level":3,"title":"def create(record : Target)","slug":"def-create-record-target","link":"#def-create-record-target","children":[]},{"level":3,"title":"def create","slug":"def-create","link":"#def-create","children":[]},{"level":3,"title":"def delete(record : Target)","slug":"def-delete-record-target","link":"#def-delete-record-target","children":[]},{"level":3,"title":"def delete(id : Pk)","slug":"def-delete-id-pk","link":"#def-delete-id-pk","children":[]},{"level":3,"title":"def ids=(ids : Array(Int64))","slug":"def-ids-ids-array-int64","link":"#def-ids-ids-array-int64","children":[]}]}],"relativePath":"main/Cql/Relations/ManyCollection.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Relations/ManyCollection.md"},r=s("div",null,[s("h1",{id:"class-cql-relations-manycollection-target-through-pk",tabindex:"-1"},[a("class Cql::Relations::ManyCollection(Target, Through, Pk) "),s("a",{class:"header-anchor",href:"#class-cql-relations-manycollection-target-through-pk","aria-hidden":"true"},"#")]),s("p",null,[s("code",null,"Cql::Relations::Collection"),a(" < "),s("code",null,"Reference"),a(" < "),s("code",null,"Object")]),s("p",null,"A collection of records for a many to many relationship This class is used to manage the relationship between two tables through a join table (through)"),s("p",null,"A many-to-many association occurs when multiple records of one model can be associated with multiple records of another model, and vice versa. Typically, it requires a join table (or a junction table) to store the relationships between the records of the two models."),s("p",null,"Here’s how a many-to-many association is commonly implemented in CQL using Crystal."),s("p",null,[s("strong",null,"Example")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#89DDFF","font-style":"italic"}},"class"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Movie")]),a(` +import{_ as l,o as e,c as n,x as s,a,S as o}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const h=JSON.parse('{"title":"Cql::Relations::ManyCollection(Target, Through, Pk)","description":"","frontmatter":{"title":"Cql::Relations::ManyCollection(Target, Through, Pk)"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(key : Symbol, id : Pk, target_key : Symbol, cascade : Bool = false, query : Cql::Query = (Cql::Query.new(Target.schema)).from(Target.table))","slug":"def-new-key-symbol-id-pk-target-key-symbol-cascade-bool-false-query-cql-query-cql-query-new-target-schema-from-target-table","link":"#def-new-key-symbol-id-pk-target-key-symbol-cascade-bool-false-query-cql-query-cql-query-new-target-schema-from-target-table","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def clear","slug":"def-clear","link":"#def-clear","children":[]},{"level":3,"title":"def create(record : Target)","slug":"def-create-record-target","link":"#def-create-record-target","children":[]},{"level":3,"title":"def create","slug":"def-create","link":"#def-create","children":[]},{"level":3,"title":"def delete(record : Target)","slug":"def-delete-record-target","link":"#def-delete-record-target","children":[]},{"level":3,"title":"def delete(id : Pk)","slug":"def-delete-id-pk","link":"#def-delete-id-pk","children":[]},{"level":3,"title":"def ids=(ids : Array(Int64))","slug":"def-ids-ids-array-int64","link":"#def-ids-ids-array-int64","children":[]}]}],"relativePath":"main/Cql/Relations/ManyCollection.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Relations/ManyCollection.md"},r=s("div",null,[s("h1",{id:"class-cql-relations-manycollection-target-through-pk",tabindex:"-1"},[a("class Cql::Relations::ManyCollection(Target, Through, Pk) "),s("a",{class:"header-anchor",href:"#class-cql-relations-manycollection-target-through-pk","aria-hidden":"true"},"#")]),s("p",null,[s("code",null,"Cql::Relations::Collection"),a(" < "),s("code",null,"Reference"),a(" < "),s("code",null,"Object")]),s("p",null,"A collection of records for a many to many relationship This class is used to manage the relationship between two tables through a join table (through)"),s("p",null,"A many-to-many association occurs when multiple records of one model can be associated with multiple records of another model, and vice versa. Typically, it requires a join table (or a junction table) to store the relationships between the records of the two models."),s("p",null,"Here’s how a many-to-many association is commonly implemented in CQL using Crystal."),s("p",null,[s("strong",null,"Example")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#89DDFF","font-style":"italic"}},"class"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Movie")]),a(` `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF","font-style":"italic"}},"include"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Cql"),s("span",{style:{color:"#89DDFF"}},"::"),s("span",{style:{color:"#FFCB6B"}},"Model"),s("span",{style:{color:"#89DDFF"}},"("),s("span",{style:{color:"#FFCB6B"}},"Movie"),s("span",{style:{color:"#89DDFF"}},","),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Int64"),s("span",{style:{color:"#89DDFF"}},")")]),a(` `),s("span",{class:"line"}),a(` `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#82AAFF"}},"property"),s("span",{style:{color:"#BABED8"}}," id "),s("span",{style:{color:"#89DDFF"}},":"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Int64")]),a(` diff --git a/docs/assets/main_Cql_Relations_ManyToMany.md.35eda857.js b/docs/assets/main_Cql_Relations_ManyToMany.md.d0457f86.js similarity index 98% rename from docs/assets/main_Cql_Relations_ManyToMany.md.35eda857.js rename to docs/assets/main_Cql_Relations_ManyToMany.md.d0457f86.js index 40d6f59..4813da3 100644 --- a/docs/assets/main_Cql_Relations_ManyToMany.md.35eda857.js +++ b/docs/assets/main_Cql_Relations_ManyToMany.md.d0457f86.js @@ -1,4 +1,4 @@ -import{_ as s,o as a,c as n,S as l}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const m=JSON.parse('{"title":"Cql::Relations::ManyToMany","description":"","frontmatter":{"title":"Cql::Relations::ManyToMany"},"headers":[{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro many_to_many(name, type, join_through, cascade = false)","slug":"macro-many-to-many-name-type-join-through-cascade-false","link":"#macro-many-to-many-name-type-join-through-cascade-false","children":[]}]}],"relativePath":"main/Cql/Relations/ManyToMany.md","lastUpdated":1723931959000}'),o={name:"main/Cql/Relations/ManyToMany.md"},e=l(`

module Cql::Relations::ManyToMany

Table of Contents

Macros

macro many_to_many(name, type, join_through, cascade = false)

Defines a many-to-many relationship between two models. This method will define a getter method that returns a ManyToMany::Collection. The collection can be used to add and remove records from the join table.

  • param : name (Symbol) - The name of the association
  • param : type (Cql::Model) - The target model
  • param : join_through (Cql::Model) - The join table model
  • param : cascade (Bool) - Delete associated records

Example

crystal
class Movie
+import{_ as s,o as a,c as n,S as l}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const m=JSON.parse('{"title":"Cql::Relations::ManyToMany","description":"","frontmatter":{"title":"Cql::Relations::ManyToMany"},"headers":[{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro many_to_many(name, type, join_through, cascade = false)","slug":"macro-many-to-many-name-type-join-through-cascade-false","link":"#macro-many-to-many-name-type-join-through-cascade-false","children":[]}]}],"relativePath":"main/Cql/Relations/ManyToMany.md","lastUpdated":1723931959000}'),o={name:"main/Cql/Relations/ManyToMany.md"},e=l(`

module Cql::Relations::ManyToMany

Table of Contents

Macros

macro many_to_many(name, type, join_through, cascade = false)

Defines a many-to-many relationship between two models. This method will define a getter method that returns a ManyToMany::Collection. The collection can be used to add and remove records from the join table.

  • param : name (Symbol) - The name of the association
  • param : type (Cql::Model) - The target model
  • param : join_through (Cql::Model) - The join table model
  • param : cascade (Bool) - Delete associated records

Example

crystal
class Movie
   include Cql::Model(Movie, Int64)
   property id : Int64
   property title : String
diff --git a/docs/assets/main_Cql_Relations_ManyToMany.md.35eda857.lean.js b/docs/assets/main_Cql_Relations_ManyToMany.md.d0457f86.lean.js
similarity index 83%
rename from docs/assets/main_Cql_Relations_ManyToMany.md.35eda857.lean.js
rename to docs/assets/main_Cql_Relations_ManyToMany.md.d0457f86.lean.js
index 40083c1..6b5470e 100644
--- a/docs/assets/main_Cql_Relations_ManyToMany.md.35eda857.lean.js
+++ b/docs/assets/main_Cql_Relations_ManyToMany.md.d0457f86.lean.js
@@ -1 +1 @@
-import{_ as s,o as a,c as n,S as l}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const m=JSON.parse('{"title":"Cql::Relations::ManyToMany","description":"","frontmatter":{"title":"Cql::Relations::ManyToMany"},"headers":[{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro many_to_many(name, type, join_through, cascade = false)","slug":"macro-many-to-many-name-type-join-through-cascade-false","link":"#macro-many-to-many-name-type-join-through-cascade-false","children":[]}]}],"relativePath":"main/Cql/Relations/ManyToMany.md","lastUpdated":1723931959000}'),o={name:"main/Cql/Relations/ManyToMany.md"},e=l("",8),p=[e];function t(c,r,y,i,F,B){return a(),n("div",null,p)}const h=s(o,[["render",t]]);export{m as __pageData,h as default};
+import{_ as s,o as a,c as n,S as l}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const m=JSON.parse('{"title":"Cql::Relations::ManyToMany","description":"","frontmatter":{"title":"Cql::Relations::ManyToMany"},"headers":[{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro many_to_many(name, type, join_through, cascade = false)","slug":"macro-many-to-many-name-type-join-through-cascade-false","link":"#macro-many-to-many-name-type-join-through-cascade-false","children":[]}]}],"relativePath":"main/Cql/Relations/ManyToMany.md","lastUpdated":1723931959000}'),o={name:"main/Cql/Relations/ManyToMany.md"},e=l("",8),p=[e];function t(c,r,y,i,F,B){return a(),n("div",null,p)}const h=s(o,[["render",t]]);export{m as __pageData,h as default};
diff --git a/docs/assets/main_Cql_Repository.md.a57121a0.js b/docs/assets/main_Cql_Repository.md.f6c7bdb4.js
similarity index 99%
rename from docs/assets/main_Cql_Repository.md.a57121a0.js
rename to docs/assets/main_Cql_Repository.md.f6c7bdb4.js
index ebddd68..9bbe399 100644
--- a/docs/assets/main_Cql_Repository.md.a57121a0.js
+++ b/docs/assets/main_Cql_Repository.md.f6c7bdb4.js
@@ -1,4 +1,4 @@
-import{_ as a,o as l,c as n,x as e,a as s,S as t}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const F=JSON.parse('{"title":"Cql::Repository(T, Pk)","description":"","frontmatter":{"title":"Cql::Repository(T, Pk)"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(schema : Schema, table : Symbol)","slug":"def-new-schema-schema-table-symbol","link":"#def-new-schema-schema-table-symbol","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def all","slug":"def-all","link":"#def-all","children":[]},{"level":3,"title":"def build(attrs : Hash(Symbol, DB::Any))","slug":"def-build-attrs-hash-symbol-db-any","link":"#def-build-attrs-hash-symbol-db-any","children":[]},{"level":3,"title":"def count","slug":"def-count","link":"#def-count","children":[]},{"level":3,"title":"def create(attrs : Hash(Symbol, DB::Any))","slug":"def-create-attrs-hash-symbol-db-any","link":"#def-create-attrs-hash-symbol-db-any","children":[]},{"level":3,"title":"def create","slug":"def-create","link":"#def-create","children":[]},{"level":3,"title":"def delete(id : Pk)","slug":"def-delete-id-pk","link":"#def-delete-id-pk","children":[]},{"level":3,"title":"def delete","slug":"def-delete","link":"#def-delete","children":[]},{"level":3,"title":"def delete_all","slug":"def-delete-all","link":"#def-delete-all","children":[]},{"level":3,"title":"def delete_by","slug":"def-delete-by","link":"#def-delete-by","children":[]},{"level":3,"title":"def exists?","slug":"def-exists","link":"#def-exists","children":[]},{"level":3,"title":"def find(id : Pk)","slug":"def-find-id-pk","link":"#def-find-id-pk","children":[]},{"level":3,"title":"def find!(id : Pk)","slug":"def-find-id-pk-1","link":"#def-find-id-pk-1","children":[]},{"level":3,"title":"def find_all_by","slug":"def-find-all-by","link":"#def-find-all-by","children":[]},{"level":3,"title":"def find_by","slug":"def-find-by","link":"#def-find-by","children":[]},{"level":3,"title":"def first","slug":"def-first","link":"#def-first","children":[]},{"level":3,"title":"def insert","slug":"def-insert","link":"#def-insert","children":[]},{"level":3,"title":"def last","slug":"def-last","link":"#def-last","children":[]},{"level":3,"title":"def page(page_number, per_page = 10)","slug":"def-page-page-number-per-page-10","link":"#def-page-page-number-per-page-10","children":[]},{"level":3,"title":"def per_page(per_page)","slug":"def-per-page-per-page","link":"#def-per-page-per-page","children":[]},{"level":3,"title":"def query","slug":"def-query","link":"#def-query","children":[]},{"level":3,"title":"def update(id : Pk, attrs : Hash(Symbol, DB::Any))","slug":"def-update-id-pk-attrs-hash-symbol-db-any","link":"#def-update-id-pk-attrs-hash-symbol-db-any","children":[]},{"level":3,"title":"def update(id : Pk, **fields)","slug":"def-update-id-pk-fields","link":"#def-update-id-pk-fields","children":[]},{"level":3,"title":"def update","slug":"def-update","link":"#def-update","children":[]},{"level":3,"title":"def update_all(attrs : Hash(Symbol, DB::Any))","slug":"def-update-all-attrs-hash-symbol-db-any","link":"#def-update-all-attrs-hash-symbol-db-any","children":[]},{"level":3,"title":"def update_by(where_attrs : Hash(Symbol, DB::Any), update_attrs : Hash(Symbol, DB::Any))","slug":"def-update-by-where-attrs-hash-symbol-db-any-update-attrs-hash-symbol-db-any","link":"#def-update-by-where-attrs-hash-symbol-db-any-update-attrs-hash-symbol-db-any","children":[]}]}],"relativePath":"main/Cql/Repository.md","lastUpdated":1723931959000}'),r={name:"main/Cql/Repository.md"},o=e("div",null,[e("h1",{id:"class-cql-repository-t-pk",tabindex:"-1"},[s("class Cql::Repository(T, Pk) "),e("a",{class:"header-anchor",href:"#class-cql-repository-t-pk","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"Reference"),s(" < "),e("code",null,"Object")]),e("p",null,"A repository for a specific table This class provides a high-level interface for interacting with a table It provides methods for querying, creating, updating, and deleting records It also provides methods for pagination and counting records"),e("p",null,[e("strong",null,"Example"),s(" Creating a new repository")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#89DDFF","font-style":"italic"}},"class"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"UserRepository "),e("span",{style:{color:"#89DDFF"}},"<"),e("span",{style:{color:"#FFCB6B"}}," Cql::Repository"),e("span",{style:{color:"#89DDFF"}},"("),e("span",{style:{color:"#FFCB6B"}},"User"),e("span",{style:{color:"#89DDFF"}},")")]),s(`
+import{_ as a,o as l,c as n,x as e,a as s,S as t}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const F=JSON.parse('{"title":"Cql::Repository(T, Pk)","description":"","frontmatter":{"title":"Cql::Repository(T, Pk)"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(schema : Schema, table : Symbol)","slug":"def-new-schema-schema-table-symbol","link":"#def-new-schema-schema-table-symbol","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def all","slug":"def-all","link":"#def-all","children":[]},{"level":3,"title":"def build(attrs : Hash(Symbol, DB::Any))","slug":"def-build-attrs-hash-symbol-db-any","link":"#def-build-attrs-hash-symbol-db-any","children":[]},{"level":3,"title":"def count","slug":"def-count","link":"#def-count","children":[]},{"level":3,"title":"def create(attrs : Hash(Symbol, DB::Any))","slug":"def-create-attrs-hash-symbol-db-any","link":"#def-create-attrs-hash-symbol-db-any","children":[]},{"level":3,"title":"def create","slug":"def-create","link":"#def-create","children":[]},{"level":3,"title":"def delete(id : Pk)","slug":"def-delete-id-pk","link":"#def-delete-id-pk","children":[]},{"level":3,"title":"def delete","slug":"def-delete","link":"#def-delete","children":[]},{"level":3,"title":"def delete_all","slug":"def-delete-all","link":"#def-delete-all","children":[]},{"level":3,"title":"def delete_by","slug":"def-delete-by","link":"#def-delete-by","children":[]},{"level":3,"title":"def exists?","slug":"def-exists","link":"#def-exists","children":[]},{"level":3,"title":"def find(id : Pk)","slug":"def-find-id-pk","link":"#def-find-id-pk","children":[]},{"level":3,"title":"def find!(id : Pk)","slug":"def-find-id-pk-1","link":"#def-find-id-pk-1","children":[]},{"level":3,"title":"def find_all_by","slug":"def-find-all-by","link":"#def-find-all-by","children":[]},{"level":3,"title":"def find_by","slug":"def-find-by","link":"#def-find-by","children":[]},{"level":3,"title":"def first","slug":"def-first","link":"#def-first","children":[]},{"level":3,"title":"def insert","slug":"def-insert","link":"#def-insert","children":[]},{"level":3,"title":"def last","slug":"def-last","link":"#def-last","children":[]},{"level":3,"title":"def page(page_number, per_page = 10)","slug":"def-page-page-number-per-page-10","link":"#def-page-page-number-per-page-10","children":[]},{"level":3,"title":"def per_page(per_page)","slug":"def-per-page-per-page","link":"#def-per-page-per-page","children":[]},{"level":3,"title":"def query","slug":"def-query","link":"#def-query","children":[]},{"level":3,"title":"def update(id : Pk, attrs : Hash(Symbol, DB::Any))","slug":"def-update-id-pk-attrs-hash-symbol-db-any","link":"#def-update-id-pk-attrs-hash-symbol-db-any","children":[]},{"level":3,"title":"def update(id : Pk, **fields)","slug":"def-update-id-pk-fields","link":"#def-update-id-pk-fields","children":[]},{"level":3,"title":"def update","slug":"def-update","link":"#def-update","children":[]},{"level":3,"title":"def update_all(attrs : Hash(Symbol, DB::Any))","slug":"def-update-all-attrs-hash-symbol-db-any","link":"#def-update-all-attrs-hash-symbol-db-any","children":[]},{"level":3,"title":"def update_by(where_attrs : Hash(Symbol, DB::Any), update_attrs : Hash(Symbol, DB::Any))","slug":"def-update-by-where-attrs-hash-symbol-db-any-update-attrs-hash-symbol-db-any","link":"#def-update-by-where-attrs-hash-symbol-db-any-update-attrs-hash-symbol-db-any","children":[]}]}],"relativePath":"main/Cql/Repository.md","lastUpdated":1723931959000}'),r={name:"main/Cql/Repository.md"},o=e("div",null,[e("h1",{id:"class-cql-repository-t-pk",tabindex:"-1"},[s("class Cql::Repository(T, Pk) "),e("a",{class:"header-anchor",href:"#class-cql-repository-t-pk","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"Reference"),s(" < "),e("code",null,"Object")]),e("p",null,"A repository for a specific table This class provides a high-level interface for interacting with a table It provides methods for querying, creating, updating, and deleting records It also provides methods for pagination and counting records"),e("p",null,[e("strong",null,"Example"),s(" Creating a new repository")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#89DDFF","font-style":"italic"}},"class"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"UserRepository "),e("span",{style:{color:"#89DDFF"}},"<"),e("span",{style:{color:"#FFCB6B"}}," Cql::Repository"),e("span",{style:{color:"#89DDFF"}},"("),e("span",{style:{color:"#FFCB6B"}},"User"),e("span",{style:{color:"#89DDFF"}},")")]),s(`
 `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF","font-style":"italic"}},"def"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#82AAFF"}},"initialize"),e("span",{style:{color:"#89DDFF"}},"(@"),e("span",{style:{color:"#BABED8"}},"schema "),e("span",{style:{color:"#89DDFF"}},":"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"Schema"),e("span",{style:{color:"#BABED8"}},", "),e("span",{style:{color:"#89DDFF"}},"@"),e("span",{style:{color:"#BABED8"}},"table "),e("span",{style:{color:"#89DDFF"}},":"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"Symbol"),e("span",{style:{color:"#89DDFF"}},")")]),s(`
 `),e("span",{class:"line"},[e("span",{style:{color:"#89DDFF","font-style":"italic"}},"end")]),s(`
 `),e("span",{class:"line"}),s(`
diff --git a/docs/assets/main_Cql_Repository.md.a57121a0.lean.js b/docs/assets/main_Cql_Repository.md.f6c7bdb4.lean.js
similarity index 98%
rename from docs/assets/main_Cql_Repository.md.a57121a0.lean.js
rename to docs/assets/main_Cql_Repository.md.f6c7bdb4.lean.js
index f94e894..5445498 100644
--- a/docs/assets/main_Cql_Repository.md.a57121a0.lean.js
+++ b/docs/assets/main_Cql_Repository.md.f6c7bdb4.lean.js
@@ -1,4 +1,4 @@
-import{_ as a,o as l,c as n,x as e,a as s,S as t}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const F=JSON.parse('{"title":"Cql::Repository(T, Pk)","description":"","frontmatter":{"title":"Cql::Repository(T, Pk)"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(schema : Schema, table : Symbol)","slug":"def-new-schema-schema-table-symbol","link":"#def-new-schema-schema-table-symbol","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def all","slug":"def-all","link":"#def-all","children":[]},{"level":3,"title":"def build(attrs : Hash(Symbol, DB::Any))","slug":"def-build-attrs-hash-symbol-db-any","link":"#def-build-attrs-hash-symbol-db-any","children":[]},{"level":3,"title":"def count","slug":"def-count","link":"#def-count","children":[]},{"level":3,"title":"def create(attrs : Hash(Symbol, DB::Any))","slug":"def-create-attrs-hash-symbol-db-any","link":"#def-create-attrs-hash-symbol-db-any","children":[]},{"level":3,"title":"def create","slug":"def-create","link":"#def-create","children":[]},{"level":3,"title":"def delete(id : Pk)","slug":"def-delete-id-pk","link":"#def-delete-id-pk","children":[]},{"level":3,"title":"def delete","slug":"def-delete","link":"#def-delete","children":[]},{"level":3,"title":"def delete_all","slug":"def-delete-all","link":"#def-delete-all","children":[]},{"level":3,"title":"def delete_by","slug":"def-delete-by","link":"#def-delete-by","children":[]},{"level":3,"title":"def exists?","slug":"def-exists","link":"#def-exists","children":[]},{"level":3,"title":"def find(id : Pk)","slug":"def-find-id-pk","link":"#def-find-id-pk","children":[]},{"level":3,"title":"def find!(id : Pk)","slug":"def-find-id-pk-1","link":"#def-find-id-pk-1","children":[]},{"level":3,"title":"def find_all_by","slug":"def-find-all-by","link":"#def-find-all-by","children":[]},{"level":3,"title":"def find_by","slug":"def-find-by","link":"#def-find-by","children":[]},{"level":3,"title":"def first","slug":"def-first","link":"#def-first","children":[]},{"level":3,"title":"def insert","slug":"def-insert","link":"#def-insert","children":[]},{"level":3,"title":"def last","slug":"def-last","link":"#def-last","children":[]},{"level":3,"title":"def page(page_number, per_page = 10)","slug":"def-page-page-number-per-page-10","link":"#def-page-page-number-per-page-10","children":[]},{"level":3,"title":"def per_page(per_page)","slug":"def-per-page-per-page","link":"#def-per-page-per-page","children":[]},{"level":3,"title":"def query","slug":"def-query","link":"#def-query","children":[]},{"level":3,"title":"def update(id : Pk, attrs : Hash(Symbol, DB::Any))","slug":"def-update-id-pk-attrs-hash-symbol-db-any","link":"#def-update-id-pk-attrs-hash-symbol-db-any","children":[]},{"level":3,"title":"def update(id : Pk, **fields)","slug":"def-update-id-pk-fields","link":"#def-update-id-pk-fields","children":[]},{"level":3,"title":"def update","slug":"def-update","link":"#def-update","children":[]},{"level":3,"title":"def update_all(attrs : Hash(Symbol, DB::Any))","slug":"def-update-all-attrs-hash-symbol-db-any","link":"#def-update-all-attrs-hash-symbol-db-any","children":[]},{"level":3,"title":"def update_by(where_attrs : Hash(Symbol, DB::Any), update_attrs : Hash(Symbol, DB::Any))","slug":"def-update-by-where-attrs-hash-symbol-db-any-update-attrs-hash-symbol-db-any","link":"#def-update-by-where-attrs-hash-symbol-db-any-update-attrs-hash-symbol-db-any","children":[]}]}],"relativePath":"main/Cql/Repository.md","lastUpdated":1723931959000}'),r={name:"main/Cql/Repository.md"},o=e("div",null,[e("h1",{id:"class-cql-repository-t-pk",tabindex:"-1"},[s("class Cql::Repository(T, Pk) "),e("a",{class:"header-anchor",href:"#class-cql-repository-t-pk","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"Reference"),s(" < "),e("code",null,"Object")]),e("p",null,"A repository for a specific table This class provides a high-level interface for interacting with a table It provides methods for querying, creating, updating, and deleting records It also provides methods for pagination and counting records"),e("p",null,[e("strong",null,"Example"),s(" Creating a new repository")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#89DDFF","font-style":"italic"}},"class"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"UserRepository "),e("span",{style:{color:"#89DDFF"}},"<"),e("span",{style:{color:"#FFCB6B"}}," Cql::Repository"),e("span",{style:{color:"#89DDFF"}},"("),e("span",{style:{color:"#FFCB6B"}},"User"),e("span",{style:{color:"#89DDFF"}},")")]),s(`
+import{_ as a,o as l,c as n,x as e,a as s,S as t}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const F=JSON.parse('{"title":"Cql::Repository(T, Pk)","description":"","frontmatter":{"title":"Cql::Repository(T, Pk)"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(schema : Schema, table : Symbol)","slug":"def-new-schema-schema-table-symbol","link":"#def-new-schema-schema-table-symbol","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def all","slug":"def-all","link":"#def-all","children":[]},{"level":3,"title":"def build(attrs : Hash(Symbol, DB::Any))","slug":"def-build-attrs-hash-symbol-db-any","link":"#def-build-attrs-hash-symbol-db-any","children":[]},{"level":3,"title":"def count","slug":"def-count","link":"#def-count","children":[]},{"level":3,"title":"def create(attrs : Hash(Symbol, DB::Any))","slug":"def-create-attrs-hash-symbol-db-any","link":"#def-create-attrs-hash-symbol-db-any","children":[]},{"level":3,"title":"def create","slug":"def-create","link":"#def-create","children":[]},{"level":3,"title":"def delete(id : Pk)","slug":"def-delete-id-pk","link":"#def-delete-id-pk","children":[]},{"level":3,"title":"def delete","slug":"def-delete","link":"#def-delete","children":[]},{"level":3,"title":"def delete_all","slug":"def-delete-all","link":"#def-delete-all","children":[]},{"level":3,"title":"def delete_by","slug":"def-delete-by","link":"#def-delete-by","children":[]},{"level":3,"title":"def exists?","slug":"def-exists","link":"#def-exists","children":[]},{"level":3,"title":"def find(id : Pk)","slug":"def-find-id-pk","link":"#def-find-id-pk","children":[]},{"level":3,"title":"def find!(id : Pk)","slug":"def-find-id-pk-1","link":"#def-find-id-pk-1","children":[]},{"level":3,"title":"def find_all_by","slug":"def-find-all-by","link":"#def-find-all-by","children":[]},{"level":3,"title":"def find_by","slug":"def-find-by","link":"#def-find-by","children":[]},{"level":3,"title":"def first","slug":"def-first","link":"#def-first","children":[]},{"level":3,"title":"def insert","slug":"def-insert","link":"#def-insert","children":[]},{"level":3,"title":"def last","slug":"def-last","link":"#def-last","children":[]},{"level":3,"title":"def page(page_number, per_page = 10)","slug":"def-page-page-number-per-page-10","link":"#def-page-page-number-per-page-10","children":[]},{"level":3,"title":"def per_page(per_page)","slug":"def-per-page-per-page","link":"#def-per-page-per-page","children":[]},{"level":3,"title":"def query","slug":"def-query","link":"#def-query","children":[]},{"level":3,"title":"def update(id : Pk, attrs : Hash(Symbol, DB::Any))","slug":"def-update-id-pk-attrs-hash-symbol-db-any","link":"#def-update-id-pk-attrs-hash-symbol-db-any","children":[]},{"level":3,"title":"def update(id : Pk, **fields)","slug":"def-update-id-pk-fields","link":"#def-update-id-pk-fields","children":[]},{"level":3,"title":"def update","slug":"def-update","link":"#def-update","children":[]},{"level":3,"title":"def update_all(attrs : Hash(Symbol, DB::Any))","slug":"def-update-all-attrs-hash-symbol-db-any","link":"#def-update-all-attrs-hash-symbol-db-any","children":[]},{"level":3,"title":"def update_by(where_attrs : Hash(Symbol, DB::Any), update_attrs : Hash(Symbol, DB::Any))","slug":"def-update-by-where-attrs-hash-symbol-db-any-update-attrs-hash-symbol-db-any","link":"#def-update-by-where-attrs-hash-symbol-db-any-update-attrs-hash-symbol-db-any","children":[]}]}],"relativePath":"main/Cql/Repository.md","lastUpdated":1723931959000}'),r={name:"main/Cql/Repository.md"},o=e("div",null,[e("h1",{id:"class-cql-repository-t-pk",tabindex:"-1"},[s("class Cql::Repository(T, Pk) "),e("a",{class:"header-anchor",href:"#class-cql-repository-t-pk","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"Reference"),s(" < "),e("code",null,"Object")]),e("p",null,"A repository for a specific table This class provides a high-level interface for interacting with a table It provides methods for querying, creating, updating, and deleting records It also provides methods for pagination and counting records"),e("p",null,[e("strong",null,"Example"),s(" Creating a new repository")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#89DDFF","font-style":"italic"}},"class"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"UserRepository "),e("span",{style:{color:"#89DDFF"}},"<"),e("span",{style:{color:"#FFCB6B"}}," Cql::Repository"),e("span",{style:{color:"#89DDFF"}},"("),e("span",{style:{color:"#FFCB6B"}},"User"),e("span",{style:{color:"#89DDFF"}},")")]),s(`
 `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF","font-style":"italic"}},"def"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#82AAFF"}},"initialize"),e("span",{style:{color:"#89DDFF"}},"(@"),e("span",{style:{color:"#BABED8"}},"schema "),e("span",{style:{color:"#89DDFF"}},":"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"Schema"),e("span",{style:{color:"#BABED8"}},", "),e("span",{style:{color:"#89DDFF"}},"@"),e("span",{style:{color:"#BABED8"}},"table "),e("span",{style:{color:"#89DDFF"}},":"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"Symbol"),e("span",{style:{color:"#89DDFF"}},")")]),s(`
 `),e("span",{class:"line"},[e("span",{style:{color:"#89DDFF","font-style":"italic"}},"end")]),s(`
 `),e("span",{class:"line"}),s(`
diff --git a/docs/assets/main_Cql_Schema.md.47d48e43.js b/docs/assets/main_Cql_Schema.md.c7bffc60.js
similarity index 99%
rename from docs/assets/main_Cql_Schema.md.47d48e43.js
rename to docs/assets/main_Cql_Schema.md.c7bffc60.js
index 83b619a..6b3d4b3 100644
--- a/docs/assets/main_Cql_Schema.md.47d48e43.js
+++ b/docs/assets/main_Cql_Schema.md.c7bffc60.js
@@ -1,4 +1,4 @@
-import{_ as s,o as l,c as n,x as e,a,S as t}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const f=JSON.parse('{"title":"Cql::Schema","description":"","frontmatter":{"title":"Cql::Schema"},"headers":[{"level":2,"title":"Constants","slug":"constants","link":"#constants","children":[{"level":3,"title":"Log","slug":"log","link":"#log","children":[]}]},{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(name : Symbol, uri : String, adapter : Adapter = Adapter::Sqlite, version : String = \\"1.0\\")","slug":"def-new-name-symbol-uri-string-adapter-adapter-adapter-sqlite-version-string-1-0","link":"#def-new-name-symbol-uri-string-adapter-adapter-adapter-sqlite-version-string-1-0","children":[]}]},{"level":2,"title":"Class Methods","slug":"class-methods","link":"#class-methods","children":[{"level":3,"title":"def build(name : Symbol, uri : String, adapter : Adapter = Adapter::Sqlite, version : String = \\"1.0\\", &)","slug":"def-build-name-symbol-uri-string-adapter-adapter-adapter-sqlite-version-string-1-0","link":"#def-build-name-symbol-uri-string-adapter-adapter-adapter-sqlite-version-string-1-0","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def adapter","slug":"def-adapter","link":"#def-adapter","children":[]},{"level":3,"title":"def alter(table_name : Symbol, &)","slug":"def-alter-table-name-symbol","link":"#def-alter-table-name-symbol","children":[]},{"level":3,"title":"def db","slug":"def-db","link":"#def-db","children":[]},{"level":3,"title":"def delete","slug":"def-delete","link":"#def-delete","children":[]},{"level":3,"title":"def exec(sql : String)","slug":"def-exec-sql-string","link":"#def-exec-sql-string","children":[]},{"level":3,"title":"def gen","slug":"def-gen","link":"#def-gen","children":[]},{"level":3,"title":"def insert","slug":"def-insert","link":"#def-insert","children":[]},{"level":3,"title":"def migrator","slug":"def-migrator","link":"#def-migrator","children":[]},{"level":3,"title":"def name","slug":"def-name","link":"#def-name","children":[]},{"level":3,"title":"def query","slug":"def-query","link":"#def-query","children":[]},{"level":3,"title":"def table(name : Symbol, as as_name = nil, &)","slug":"def-table-name-symbol-as-as-name-nil","link":"#def-table-name-symbol-as-as-name-nil","children":[]},{"level":3,"title":"def tables","slug":"def-tables","link":"#def-tables","children":[]},{"level":3,"title":"def update","slug":"def-update","link":"#def-update","children":[]},{"level":3,"title":"def uri","slug":"def-uri","link":"#def-uri","children":[]},{"level":3,"title":"def version","slug":"def-version","link":"#def-version","children":[]}]},{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro method_missing(call)","slug":"macro-method-missing-call","link":"#macro-method-missing-call","children":[]}]}],"relativePath":"main/Cql/Schema.md","lastUpdated":1723931959000}'),r={name:"main/Cql/Schema.md"},o=e("div",null,[e("h1",{id:"class-cql-schema",tabindex:"-1"},[a("class Cql::Schema "),e("a",{class:"header-anchor",href:"#class-cql-schema","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"Reference"),a(" < "),e("code",null,"Object")]),e("p",null,[a("The "),e("code",null,"Schema"),a(" class represents a database schema.")]),e("p",null,"This class provides methods to build and manage a database schema, including creating tables, executing SQL statements, and generating queries."),e("p",null,[e("strong",null,"Example"),a(" Creating a new schema")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"schema "),e("span",{style:{color:"#89DDFF"}},"="),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"Cql"),e("span",{style:{color:"#89DDFF"}},"::"),e("span",{style:{color:"#FFCB6B"}},"Schema"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#82AAFF"}},"build"),e("span",{style:{color:"#89DDFF"}},"(:northwind,"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF"}},'"'),e("span",{style:{color:"#C3E88D"}},"sqlite3://db.sqlite3"),e("span",{style:{color:"#89DDFF"}},'"'),e("span",{style:{color:"#89DDFF"}},")"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),a(`
+import{_ as s,o as l,c as n,x as e,a,S as t}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const f=JSON.parse('{"title":"Cql::Schema","description":"","frontmatter":{"title":"Cql::Schema"},"headers":[{"level":2,"title":"Constants","slug":"constants","link":"#constants","children":[{"level":3,"title":"Log","slug":"log","link":"#log","children":[]}]},{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(name : Symbol, uri : String, adapter : Adapter = Adapter::Sqlite, version : String = \\"1.0\\")","slug":"def-new-name-symbol-uri-string-adapter-adapter-adapter-sqlite-version-string-1-0","link":"#def-new-name-symbol-uri-string-adapter-adapter-adapter-sqlite-version-string-1-0","children":[]}]},{"level":2,"title":"Class Methods","slug":"class-methods","link":"#class-methods","children":[{"level":3,"title":"def build(name : Symbol, uri : String, adapter : Adapter = Adapter::Sqlite, version : String = \\"1.0\\", &)","slug":"def-build-name-symbol-uri-string-adapter-adapter-adapter-sqlite-version-string-1-0","link":"#def-build-name-symbol-uri-string-adapter-adapter-adapter-sqlite-version-string-1-0","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def adapter","slug":"def-adapter","link":"#def-adapter","children":[]},{"level":3,"title":"def alter(table_name : Symbol, &)","slug":"def-alter-table-name-symbol","link":"#def-alter-table-name-symbol","children":[]},{"level":3,"title":"def db","slug":"def-db","link":"#def-db","children":[]},{"level":3,"title":"def delete","slug":"def-delete","link":"#def-delete","children":[]},{"level":3,"title":"def exec(sql : String)","slug":"def-exec-sql-string","link":"#def-exec-sql-string","children":[]},{"level":3,"title":"def gen","slug":"def-gen","link":"#def-gen","children":[]},{"level":3,"title":"def insert","slug":"def-insert","link":"#def-insert","children":[]},{"level":3,"title":"def migrator","slug":"def-migrator","link":"#def-migrator","children":[]},{"level":3,"title":"def name","slug":"def-name","link":"#def-name","children":[]},{"level":3,"title":"def query","slug":"def-query","link":"#def-query","children":[]},{"level":3,"title":"def table(name : Symbol, as as_name = nil, &)","slug":"def-table-name-symbol-as-as-name-nil","link":"#def-table-name-symbol-as-as-name-nil","children":[]},{"level":3,"title":"def tables","slug":"def-tables","link":"#def-tables","children":[]},{"level":3,"title":"def update","slug":"def-update","link":"#def-update","children":[]},{"level":3,"title":"def uri","slug":"def-uri","link":"#def-uri","children":[]},{"level":3,"title":"def version","slug":"def-version","link":"#def-version","children":[]}]},{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro method_missing(call)","slug":"macro-method-missing-call","link":"#macro-method-missing-call","children":[]}]}],"relativePath":"main/Cql/Schema.md","lastUpdated":1723931959000}'),r={name:"main/Cql/Schema.md"},o=e("div",null,[e("h1",{id:"class-cql-schema",tabindex:"-1"},[a("class Cql::Schema "),e("a",{class:"header-anchor",href:"#class-cql-schema","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"Reference"),a(" < "),e("code",null,"Object")]),e("p",null,[a("The "),e("code",null,"Schema"),a(" class represents a database schema.")]),e("p",null,"This class provides methods to build and manage a database schema, including creating tables, executing SQL statements, and generating queries."),e("p",null,[e("strong",null,"Example"),a(" Creating a new schema")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"schema "),e("span",{style:{color:"#89DDFF"}},"="),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"Cql"),e("span",{style:{color:"#89DDFF"}},"::"),e("span",{style:{color:"#FFCB6B"}},"Schema"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#82AAFF"}},"build"),e("span",{style:{color:"#89DDFF"}},"(:northwind,"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF"}},'"'),e("span",{style:{color:"#C3E88D"}},"sqlite3://db.sqlite3"),e("span",{style:{color:"#89DDFF"}},'"'),e("span",{style:{color:"#89DDFF"}},")"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),a(`
 `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"  table "),e("span",{style:{color:"#89DDFF"}},":users"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),a(`
 `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"    primary "),e("span",{style:{color:"#89DDFF"}},":id,"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"Int64"),e("span",{style:{color:"#89DDFF"}},","),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF"}},"auto_increment:"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FF9CAC"}},"true")]),a(`
 `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"    column "),e("span",{style:{color:"#89DDFF"}},":name,"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"String")]),a(`
diff --git a/docs/assets/main_Cql_Schema.md.47d48e43.lean.js b/docs/assets/main_Cql_Schema.md.c7bffc60.lean.js
similarity index 98%
rename from docs/assets/main_Cql_Schema.md.47d48e43.lean.js
rename to docs/assets/main_Cql_Schema.md.c7bffc60.lean.js
index 753b889..3bc8148 100644
--- a/docs/assets/main_Cql_Schema.md.47d48e43.lean.js
+++ b/docs/assets/main_Cql_Schema.md.c7bffc60.lean.js
@@ -1,4 +1,4 @@
-import{_ as s,o as l,c as n,x as e,a,S as t}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const f=JSON.parse('{"title":"Cql::Schema","description":"","frontmatter":{"title":"Cql::Schema"},"headers":[{"level":2,"title":"Constants","slug":"constants","link":"#constants","children":[{"level":3,"title":"Log","slug":"log","link":"#log","children":[]}]},{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(name : Symbol, uri : String, adapter : Adapter = Adapter::Sqlite, version : String = \\"1.0\\")","slug":"def-new-name-symbol-uri-string-adapter-adapter-adapter-sqlite-version-string-1-0","link":"#def-new-name-symbol-uri-string-adapter-adapter-adapter-sqlite-version-string-1-0","children":[]}]},{"level":2,"title":"Class Methods","slug":"class-methods","link":"#class-methods","children":[{"level":3,"title":"def build(name : Symbol, uri : String, adapter : Adapter = Adapter::Sqlite, version : String = \\"1.0\\", &)","slug":"def-build-name-symbol-uri-string-adapter-adapter-adapter-sqlite-version-string-1-0","link":"#def-build-name-symbol-uri-string-adapter-adapter-adapter-sqlite-version-string-1-0","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def adapter","slug":"def-adapter","link":"#def-adapter","children":[]},{"level":3,"title":"def alter(table_name : Symbol, &)","slug":"def-alter-table-name-symbol","link":"#def-alter-table-name-symbol","children":[]},{"level":3,"title":"def db","slug":"def-db","link":"#def-db","children":[]},{"level":3,"title":"def delete","slug":"def-delete","link":"#def-delete","children":[]},{"level":3,"title":"def exec(sql : String)","slug":"def-exec-sql-string","link":"#def-exec-sql-string","children":[]},{"level":3,"title":"def gen","slug":"def-gen","link":"#def-gen","children":[]},{"level":3,"title":"def insert","slug":"def-insert","link":"#def-insert","children":[]},{"level":3,"title":"def migrator","slug":"def-migrator","link":"#def-migrator","children":[]},{"level":3,"title":"def name","slug":"def-name","link":"#def-name","children":[]},{"level":3,"title":"def query","slug":"def-query","link":"#def-query","children":[]},{"level":3,"title":"def table(name : Symbol, as as_name = nil, &)","slug":"def-table-name-symbol-as-as-name-nil","link":"#def-table-name-symbol-as-as-name-nil","children":[]},{"level":3,"title":"def tables","slug":"def-tables","link":"#def-tables","children":[]},{"level":3,"title":"def update","slug":"def-update","link":"#def-update","children":[]},{"level":3,"title":"def uri","slug":"def-uri","link":"#def-uri","children":[]},{"level":3,"title":"def version","slug":"def-version","link":"#def-version","children":[]}]},{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro method_missing(call)","slug":"macro-method-missing-call","link":"#macro-method-missing-call","children":[]}]}],"relativePath":"main/Cql/Schema.md","lastUpdated":1723931959000}'),r={name:"main/Cql/Schema.md"},o=e("div",null,[e("h1",{id:"class-cql-schema",tabindex:"-1"},[a("class Cql::Schema "),e("a",{class:"header-anchor",href:"#class-cql-schema","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"Reference"),a(" < "),e("code",null,"Object")]),e("p",null,[a("The "),e("code",null,"Schema"),a(" class represents a database schema.")]),e("p",null,"This class provides methods to build and manage a database schema, including creating tables, executing SQL statements, and generating queries."),e("p",null,[e("strong",null,"Example"),a(" Creating a new schema")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"schema "),e("span",{style:{color:"#89DDFF"}},"="),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"Cql"),e("span",{style:{color:"#89DDFF"}},"::"),e("span",{style:{color:"#FFCB6B"}},"Schema"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#82AAFF"}},"build"),e("span",{style:{color:"#89DDFF"}},"(:northwind,"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF"}},'"'),e("span",{style:{color:"#C3E88D"}},"sqlite3://db.sqlite3"),e("span",{style:{color:"#89DDFF"}},'"'),e("span",{style:{color:"#89DDFF"}},")"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),a(`
+import{_ as s,o as l,c as n,x as e,a,S as t}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const f=JSON.parse('{"title":"Cql::Schema","description":"","frontmatter":{"title":"Cql::Schema"},"headers":[{"level":2,"title":"Constants","slug":"constants","link":"#constants","children":[{"level":3,"title":"Log","slug":"log","link":"#log","children":[]}]},{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(name : Symbol, uri : String, adapter : Adapter = Adapter::Sqlite, version : String = \\"1.0\\")","slug":"def-new-name-symbol-uri-string-adapter-adapter-adapter-sqlite-version-string-1-0","link":"#def-new-name-symbol-uri-string-adapter-adapter-adapter-sqlite-version-string-1-0","children":[]}]},{"level":2,"title":"Class Methods","slug":"class-methods","link":"#class-methods","children":[{"level":3,"title":"def build(name : Symbol, uri : String, adapter : Adapter = Adapter::Sqlite, version : String = \\"1.0\\", &)","slug":"def-build-name-symbol-uri-string-adapter-adapter-adapter-sqlite-version-string-1-0","link":"#def-build-name-symbol-uri-string-adapter-adapter-adapter-sqlite-version-string-1-0","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def adapter","slug":"def-adapter","link":"#def-adapter","children":[]},{"level":3,"title":"def alter(table_name : Symbol, &)","slug":"def-alter-table-name-symbol","link":"#def-alter-table-name-symbol","children":[]},{"level":3,"title":"def db","slug":"def-db","link":"#def-db","children":[]},{"level":3,"title":"def delete","slug":"def-delete","link":"#def-delete","children":[]},{"level":3,"title":"def exec(sql : String)","slug":"def-exec-sql-string","link":"#def-exec-sql-string","children":[]},{"level":3,"title":"def gen","slug":"def-gen","link":"#def-gen","children":[]},{"level":3,"title":"def insert","slug":"def-insert","link":"#def-insert","children":[]},{"level":3,"title":"def migrator","slug":"def-migrator","link":"#def-migrator","children":[]},{"level":3,"title":"def name","slug":"def-name","link":"#def-name","children":[]},{"level":3,"title":"def query","slug":"def-query","link":"#def-query","children":[]},{"level":3,"title":"def table(name : Symbol, as as_name = nil, &)","slug":"def-table-name-symbol-as-as-name-nil","link":"#def-table-name-symbol-as-as-name-nil","children":[]},{"level":3,"title":"def tables","slug":"def-tables","link":"#def-tables","children":[]},{"level":3,"title":"def update","slug":"def-update","link":"#def-update","children":[]},{"level":3,"title":"def uri","slug":"def-uri","link":"#def-uri","children":[]},{"level":3,"title":"def version","slug":"def-version","link":"#def-version","children":[]}]},{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro method_missing(call)","slug":"macro-method-missing-call","link":"#macro-method-missing-call","children":[]}]}],"relativePath":"main/Cql/Schema.md","lastUpdated":1723931959000}'),r={name:"main/Cql/Schema.md"},o=e("div",null,[e("h1",{id:"class-cql-schema",tabindex:"-1"},[a("class Cql::Schema "),e("a",{class:"header-anchor",href:"#class-cql-schema","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"Reference"),a(" < "),e("code",null,"Object")]),e("p",null,[a("The "),e("code",null,"Schema"),a(" class represents a database schema.")]),e("p",null,"This class provides methods to build and manage a database schema, including creating tables, executing SQL statements, and generating queries."),e("p",null,[e("strong",null,"Example"),a(" Creating a new schema")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"schema "),e("span",{style:{color:"#89DDFF"}},"="),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"Cql"),e("span",{style:{color:"#89DDFF"}},"::"),e("span",{style:{color:"#FFCB6B"}},"Schema"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#82AAFF"}},"build"),e("span",{style:{color:"#89DDFF"}},"(:northwind,"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF"}},'"'),e("span",{style:{color:"#C3E88D"}},"sqlite3://db.sqlite3"),e("span",{style:{color:"#89DDFF"}},'"'),e("span",{style:{color:"#89DDFF"}},")"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),a(`
 `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"  table "),e("span",{style:{color:"#89DDFF"}},":users"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),a(`
 `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"    primary "),e("span",{style:{color:"#89DDFF"}},":id,"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"Int64"),e("span",{style:{color:"#89DDFF"}},","),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF"}},"auto_increment:"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FF9CAC"}},"true")]),a(`
 `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"    column "),e("span",{style:{color:"#89DDFF"}},":name,"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"String")]),a(`
diff --git a/docs/assets/main_Cql_Table.md.0c401476.js b/docs/assets/main_Cql_Table.md.e3cf3370.js
similarity index 99%
rename from docs/assets/main_Cql_Table.md.0c401476.js
rename to docs/assets/main_Cql_Table.md.e3cf3370.js
index 3758c35..a4758b0 100644
--- a/docs/assets/main_Cql_Table.md.0c401476.js
+++ b/docs/assets/main_Cql_Table.md.e3cf3370.js
@@ -1,4 +1,4 @@
-import{_ as s,o as n,c as e,x as l,a,S as o}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const b=JSON.parse('{"title":"Cql::Table","description":"","frontmatter":{"title":"Cql::Table"},"headers":[{"level":2,"title":"Constants","slug":"constants","link":"#constants","children":[{"level":3,"title":"Log","slug":"log","link":"#log","children":[]}]},{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(table_name : Symbol, schema : Schema, as_name : String | Nil = nil)","slug":"def-new-table-name-symbol-schema-schema-as-name-string-nil-nil","link":"#def-new-table-name-symbol-schema-schema-as-name-string-nil-nil","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def add_index(columns : Array(Symbol), unique : Bool = false, table : Table = self)","slug":"def-add-index-columns-array-symbol-unique-bool-false-table-table-self","link":"#def-add-index-columns-array-symbol-unique-bool-false-table-table-self","children":[]},{"level":3,"title":"def as_name","slug":"def-as-name","link":"#def-as-name","children":[]},{"level":3,"title":"def bigint(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-bigint-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-bigint-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def blob(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, size : Int32 | Nil = nil, index : Bool = false)","slug":"def-blob-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false","link":"#def-blob-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false","children":[]},{"level":3,"title":"def boolean(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-boolean-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-boolean-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def column(name : Symbol, type : T.class, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, size : Int32 | Nil = nil, index : Bool = false) forall T","slug":"def-column-name-symbol-type-t-class-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false-forall-t","link":"#def-column-name-symbol-type-t-class-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false-forall-t","children":[]},{"level":3,"title":"def columns","slug":"def-columns","link":"#def-columns","children":[]},{"level":3,"title":"def create!","slug":"def-create","link":"#def-create","children":[]},{"level":3,"title":"def create_sql","slug":"def-create-sql","link":"#def-create-sql","children":[]},{"level":3,"title":"def date(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-date-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-date-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def double(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-double-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-double-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def drop!","slug":"def-drop","link":"#def-drop","children":[]},{"level":3,"title":"def drop_sql","slug":"def-drop-sql","link":"#def-drop-sql","children":[]},{"level":3,"title":"def expression","slug":"def-expression","link":"#def-expression","children":[]},{"level":3,"title":"def float(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-float-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-float-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def integer(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-integer-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-integer-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def interval(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-interval-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-interval-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def primary(name : Symbol = :id, type : T.class = Int64, auto_increment : Bool = true, as as_name = nil, unique : Bool = true) forall T","slug":"def-primary-name-symbol-id-type-t-class-int64-auto-increment-bool-true-as-as-name-nil-unique-bool-true-forall-t","link":"#def-primary-name-symbol-id-type-t-class-int64-auto-increment-bool-true-as-as-name-nil-unique-bool-true-forall-t","children":[]},{"level":3,"title":"def table_name","slug":"def-table-name","link":"#def-table-name","children":[]},{"level":3,"title":"def table_name=(table_name : Symbol)","slug":"def-table-name-table-name-symbol","link":"#def-table-name-table-name-symbol","children":[]},{"level":3,"title":"def text(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, size : Int32 | Nil = nil, index : Bool = false)","slug":"def-text-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false","link":"#def-text-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false","children":[]},{"level":3,"title":"def timestamp(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-timestamp-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-timestamp-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def timestamps","slug":"def-timestamps","link":"#def-timestamps","children":[]},{"level":3,"title":"def truncate!","slug":"def-truncate","link":"#def-truncate","children":[]},{"level":3,"title":"def truncate_sql","slug":"def-truncate-sql","link":"#def-truncate-sql","children":[]}]},{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro method_missing(call)","slug":"macro-method-missing-call","link":"#macro-method-missing-call","children":[]}]}],"relativePath":"main/Cql/Table.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Table.md"},i=l("div",null,[l("h1",{id:"class-cql-table",tabindex:"-1"},[a("class Cql::Table "),l("a",{class:"header-anchor",href:"#class-cql-table","aria-hidden":"true"},"#")]),l("p",null,[l("code",null,"Reference"),a(" < "),l("code",null,"Object")]),l("p",null,"Represents a table in the database. This class is responsible for handling table creation, modification, and deletion."),l("h2",{id:"usage",tabindex:"-1"},[a("Usage "),l("a",{class:"header-anchor",href:"#usage","aria-hidden":"true"},"#")]),l("div",{class:"language-crystal"},[l("button",{title:"Copy Code",class:"copy"}),l("span",{class:"lang"},"crystal"),l("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[l("code",null,[l("span",{class:"line"},[l("span",{style:{color:"#BABED8"}},"table "),l("span",{style:{color:"#89DDFF"}},"="),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#FFCB6B"}},"Table"),l("span",{style:{color:"#89DDFF"}},"."),l("span",{style:{color:"#82AAFF"}},"new"),l("span",{style:{color:"#89DDFF"}},"(:users,"),l("span",{style:{color:"#BABED8"}}," schema"),l("span",{style:{color:"#89DDFF"}},")")]),a(`
+import{_ as s,o as n,c as e,x as l,a,S as o}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const b=JSON.parse('{"title":"Cql::Table","description":"","frontmatter":{"title":"Cql::Table"},"headers":[{"level":2,"title":"Constants","slug":"constants","link":"#constants","children":[{"level":3,"title":"Log","slug":"log","link":"#log","children":[]}]},{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(table_name : Symbol, schema : Schema, as_name : String | Nil = nil)","slug":"def-new-table-name-symbol-schema-schema-as-name-string-nil-nil","link":"#def-new-table-name-symbol-schema-schema-as-name-string-nil-nil","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def add_index(columns : Array(Symbol), unique : Bool = false, table : Table = self)","slug":"def-add-index-columns-array-symbol-unique-bool-false-table-table-self","link":"#def-add-index-columns-array-symbol-unique-bool-false-table-table-self","children":[]},{"level":3,"title":"def as_name","slug":"def-as-name","link":"#def-as-name","children":[]},{"level":3,"title":"def bigint(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-bigint-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-bigint-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def blob(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, size : Int32 | Nil = nil, index : Bool = false)","slug":"def-blob-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false","link":"#def-blob-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false","children":[]},{"level":3,"title":"def boolean(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-boolean-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-boolean-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def column(name : Symbol, type : T.class, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, size : Int32 | Nil = nil, index : Bool = false) forall T","slug":"def-column-name-symbol-type-t-class-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false-forall-t","link":"#def-column-name-symbol-type-t-class-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false-forall-t","children":[]},{"level":3,"title":"def columns","slug":"def-columns","link":"#def-columns","children":[]},{"level":3,"title":"def create!","slug":"def-create","link":"#def-create","children":[]},{"level":3,"title":"def create_sql","slug":"def-create-sql","link":"#def-create-sql","children":[]},{"level":3,"title":"def date(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-date-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-date-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def double(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-double-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-double-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def drop!","slug":"def-drop","link":"#def-drop","children":[]},{"level":3,"title":"def drop_sql","slug":"def-drop-sql","link":"#def-drop-sql","children":[]},{"level":3,"title":"def expression","slug":"def-expression","link":"#def-expression","children":[]},{"level":3,"title":"def float(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-float-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-float-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def integer(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-integer-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-integer-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def interval(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-interval-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-interval-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def primary(name : Symbol = :id, type : T.class = Int64, auto_increment : Bool = true, as as_name = nil, unique : Bool = true) forall T","slug":"def-primary-name-symbol-id-type-t-class-int64-auto-increment-bool-true-as-as-name-nil-unique-bool-true-forall-t","link":"#def-primary-name-symbol-id-type-t-class-int64-auto-increment-bool-true-as-as-name-nil-unique-bool-true-forall-t","children":[]},{"level":3,"title":"def table_name","slug":"def-table-name","link":"#def-table-name","children":[]},{"level":3,"title":"def table_name=(table_name : Symbol)","slug":"def-table-name-table-name-symbol","link":"#def-table-name-table-name-symbol","children":[]},{"level":3,"title":"def text(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, size : Int32 | Nil = nil, index : Bool = false)","slug":"def-text-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false","link":"#def-text-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false","children":[]},{"level":3,"title":"def timestamp(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-timestamp-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-timestamp-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def timestamps","slug":"def-timestamps","link":"#def-timestamps","children":[]},{"level":3,"title":"def truncate!","slug":"def-truncate","link":"#def-truncate","children":[]},{"level":3,"title":"def truncate_sql","slug":"def-truncate-sql","link":"#def-truncate-sql","children":[]}]},{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro method_missing(call)","slug":"macro-method-missing-call","link":"#macro-method-missing-call","children":[]}]}],"relativePath":"main/Cql/Table.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Table.md"},i=l("div",null,[l("h1",{id:"class-cql-table",tabindex:"-1"},[a("class Cql::Table "),l("a",{class:"header-anchor",href:"#class-cql-table","aria-hidden":"true"},"#")]),l("p",null,[l("code",null,"Reference"),a(" < "),l("code",null,"Object")]),l("p",null,"Represents a table in the database. This class is responsible for handling table creation, modification, and deletion."),l("h2",{id:"usage",tabindex:"-1"},[a("Usage "),l("a",{class:"header-anchor",href:"#usage","aria-hidden":"true"},"#")]),l("div",{class:"language-crystal"},[l("button",{title:"Copy Code",class:"copy"}),l("span",{class:"lang"},"crystal"),l("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[l("code",null,[l("span",{class:"line"},[l("span",{style:{color:"#BABED8"}},"table "),l("span",{style:{color:"#89DDFF"}},"="),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#FFCB6B"}},"Table"),l("span",{style:{color:"#89DDFF"}},"."),l("span",{style:{color:"#82AAFF"}},"new"),l("span",{style:{color:"#89DDFF"}},"(:users,"),l("span",{style:{color:"#BABED8"}}," schema"),l("span",{style:{color:"#89DDFF"}},")")]),a(`
 `),l("span",{class:"line"},[l("span",{style:{color:"#89DDFF"}},"=>"),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#676E95","font-style":"italic"}},"#")]),a(`
 `),l("span",{class:"line"})])])]),l("div",{class:"language-crystal"},[l("button",{title:"Copy Code",class:"copy"}),l("span",{class:"lang"},"crystal"),l("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[l("code",null,[l("span",{class:"line"},[l("span",{style:{color:"#BABED8"}},"table"),l("span",{style:{color:"#89DDFF"}},"."),l("span",{style:{color:"#82AAFF"}},"column"),l("span",{style:{color:"#89DDFF"}},"(:id,"),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#FFCB6B"}},"Int64"),l("span",{style:{color:"#89DDFF"}},","),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#89DDFF"}},"primary:"),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#FF9CAC"}},"true"),l("span",{style:{color:"#89DDFF"}},")")]),a(`
 `),l("span",{class:"line"},[l("span",{style:{color:"#BABED8"}},"table"),l("span",{style:{color:"#89DDFF"}},"."),l("span",{style:{color:"#82AAFF"}},"column"),l("span",{style:{color:"#89DDFF"}},"(:name,"),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#FFCB6B"}},"String"),l("span",{style:{color:"#89DDFF"}},")")]),a(`
diff --git a/docs/assets/main_Cql_Table.md.0c401476.lean.js b/docs/assets/main_Cql_Table.md.e3cf3370.lean.js
similarity index 99%
rename from docs/assets/main_Cql_Table.md.0c401476.lean.js
rename to docs/assets/main_Cql_Table.md.e3cf3370.lean.js
index 4d9d2b1..57f04fa 100644
--- a/docs/assets/main_Cql_Table.md.0c401476.lean.js
+++ b/docs/assets/main_Cql_Table.md.e3cf3370.lean.js
@@ -1,4 +1,4 @@
-import{_ as s,o as n,c as e,x as l,a,S as o}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const b=JSON.parse('{"title":"Cql::Table","description":"","frontmatter":{"title":"Cql::Table"},"headers":[{"level":2,"title":"Constants","slug":"constants","link":"#constants","children":[{"level":3,"title":"Log","slug":"log","link":"#log","children":[]}]},{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(table_name : Symbol, schema : Schema, as_name : String | Nil = nil)","slug":"def-new-table-name-symbol-schema-schema-as-name-string-nil-nil","link":"#def-new-table-name-symbol-schema-schema-as-name-string-nil-nil","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def add_index(columns : Array(Symbol), unique : Bool = false, table : Table = self)","slug":"def-add-index-columns-array-symbol-unique-bool-false-table-table-self","link":"#def-add-index-columns-array-symbol-unique-bool-false-table-table-self","children":[]},{"level":3,"title":"def as_name","slug":"def-as-name","link":"#def-as-name","children":[]},{"level":3,"title":"def bigint(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-bigint-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-bigint-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def blob(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, size : Int32 | Nil = nil, index : Bool = false)","slug":"def-blob-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false","link":"#def-blob-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false","children":[]},{"level":3,"title":"def boolean(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-boolean-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-boolean-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def column(name : Symbol, type : T.class, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, size : Int32 | Nil = nil, index : Bool = false) forall T","slug":"def-column-name-symbol-type-t-class-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false-forall-t","link":"#def-column-name-symbol-type-t-class-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false-forall-t","children":[]},{"level":3,"title":"def columns","slug":"def-columns","link":"#def-columns","children":[]},{"level":3,"title":"def create!","slug":"def-create","link":"#def-create","children":[]},{"level":3,"title":"def create_sql","slug":"def-create-sql","link":"#def-create-sql","children":[]},{"level":3,"title":"def date(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-date-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-date-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def double(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-double-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-double-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def drop!","slug":"def-drop","link":"#def-drop","children":[]},{"level":3,"title":"def drop_sql","slug":"def-drop-sql","link":"#def-drop-sql","children":[]},{"level":3,"title":"def expression","slug":"def-expression","link":"#def-expression","children":[]},{"level":3,"title":"def float(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-float-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-float-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def integer(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-integer-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-integer-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def interval(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-interval-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-interval-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def primary(name : Symbol = :id, type : T.class = Int64, auto_increment : Bool = true, as as_name = nil, unique : Bool = true) forall T","slug":"def-primary-name-symbol-id-type-t-class-int64-auto-increment-bool-true-as-as-name-nil-unique-bool-true-forall-t","link":"#def-primary-name-symbol-id-type-t-class-int64-auto-increment-bool-true-as-as-name-nil-unique-bool-true-forall-t","children":[]},{"level":3,"title":"def table_name","slug":"def-table-name","link":"#def-table-name","children":[]},{"level":3,"title":"def table_name=(table_name : Symbol)","slug":"def-table-name-table-name-symbol","link":"#def-table-name-table-name-symbol","children":[]},{"level":3,"title":"def text(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, size : Int32 | Nil = nil, index : Bool = false)","slug":"def-text-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false","link":"#def-text-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false","children":[]},{"level":3,"title":"def timestamp(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-timestamp-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-timestamp-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def timestamps","slug":"def-timestamps","link":"#def-timestamps","children":[]},{"level":3,"title":"def truncate!","slug":"def-truncate","link":"#def-truncate","children":[]},{"level":3,"title":"def truncate_sql","slug":"def-truncate-sql","link":"#def-truncate-sql","children":[]}]},{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro method_missing(call)","slug":"macro-method-missing-call","link":"#macro-method-missing-call","children":[]}]}],"relativePath":"main/Cql/Table.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Table.md"},i=l("div",null,[l("h1",{id:"class-cql-table",tabindex:"-1"},[a("class Cql::Table "),l("a",{class:"header-anchor",href:"#class-cql-table","aria-hidden":"true"},"#")]),l("p",null,[l("code",null,"Reference"),a(" < "),l("code",null,"Object")]),l("p",null,"Represents a table in the database. This class is responsible for handling table creation, modification, and deletion."),l("h2",{id:"usage",tabindex:"-1"},[a("Usage "),l("a",{class:"header-anchor",href:"#usage","aria-hidden":"true"},"#")]),l("div",{class:"language-crystal"},[l("button",{title:"Copy Code",class:"copy"}),l("span",{class:"lang"},"crystal"),l("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[l("code",null,[l("span",{class:"line"},[l("span",{style:{color:"#BABED8"}},"table "),l("span",{style:{color:"#89DDFF"}},"="),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#FFCB6B"}},"Table"),l("span",{style:{color:"#89DDFF"}},"."),l("span",{style:{color:"#82AAFF"}},"new"),l("span",{style:{color:"#89DDFF"}},"(:users,"),l("span",{style:{color:"#BABED8"}}," schema"),l("span",{style:{color:"#89DDFF"}},")")]),a(`
+import{_ as s,o as n,c as e,x as l,a,S as o}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const b=JSON.parse('{"title":"Cql::Table","description":"","frontmatter":{"title":"Cql::Table"},"headers":[{"level":2,"title":"Constants","slug":"constants","link":"#constants","children":[{"level":3,"title":"Log","slug":"log","link":"#log","children":[]}]},{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(table_name : Symbol, schema : Schema, as_name : String | Nil = nil)","slug":"def-new-table-name-symbol-schema-schema-as-name-string-nil-nil","link":"#def-new-table-name-symbol-schema-schema-as-name-string-nil-nil","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def add_index(columns : Array(Symbol), unique : Bool = false, table : Table = self)","slug":"def-add-index-columns-array-symbol-unique-bool-false-table-table-self","link":"#def-add-index-columns-array-symbol-unique-bool-false-table-table-self","children":[]},{"level":3,"title":"def as_name","slug":"def-as-name","link":"#def-as-name","children":[]},{"level":3,"title":"def bigint(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-bigint-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-bigint-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def blob(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, size : Int32 | Nil = nil, index : Bool = false)","slug":"def-blob-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false","link":"#def-blob-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false","children":[]},{"level":3,"title":"def boolean(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-boolean-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-boolean-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def column(name : Symbol, type : T.class, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, size : Int32 | Nil = nil, index : Bool = false) forall T","slug":"def-column-name-symbol-type-t-class-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false-forall-t","link":"#def-column-name-symbol-type-t-class-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false-forall-t","children":[]},{"level":3,"title":"def columns","slug":"def-columns","link":"#def-columns","children":[]},{"level":3,"title":"def create!","slug":"def-create","link":"#def-create","children":[]},{"level":3,"title":"def create_sql","slug":"def-create-sql","link":"#def-create-sql","children":[]},{"level":3,"title":"def date(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-date-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-date-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def double(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-double-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-double-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def drop!","slug":"def-drop","link":"#def-drop","children":[]},{"level":3,"title":"def drop_sql","slug":"def-drop-sql","link":"#def-drop-sql","children":[]},{"level":3,"title":"def expression","slug":"def-expression","link":"#def-expression","children":[]},{"level":3,"title":"def float(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-float-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-float-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def integer(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-integer-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-integer-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def interval(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-interval-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-interval-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def primary(name : Symbol = :id, type : T.class = Int64, auto_increment : Bool = true, as as_name = nil, unique : Bool = true) forall T","slug":"def-primary-name-symbol-id-type-t-class-int64-auto-increment-bool-true-as-as-name-nil-unique-bool-true-forall-t","link":"#def-primary-name-symbol-id-type-t-class-int64-auto-increment-bool-true-as-as-name-nil-unique-bool-true-forall-t","children":[]},{"level":3,"title":"def table_name","slug":"def-table-name","link":"#def-table-name","children":[]},{"level":3,"title":"def table_name=(table_name : Symbol)","slug":"def-table-name-table-name-symbol","link":"#def-table-name-table-name-symbol","children":[]},{"level":3,"title":"def text(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, size : Int32 | Nil = nil, index : Bool = false)","slug":"def-text-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false","link":"#def-text-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-size-int32-nil-nil-index-bool-false","children":[]},{"level":3,"title":"def timestamp(name : Symbol, as as_name : String | Nil = nil, null : Bool = false, default : DB::Any = nil, unique : Bool = false, index : Bool = false)","slug":"def-timestamp-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","link":"#def-timestamp-name-symbol-as-as-name-string-nil-nil-null-bool-false-default-db-any-nil-unique-bool-false-index-bool-false","children":[]},{"level":3,"title":"def timestamps","slug":"def-timestamps","link":"#def-timestamps","children":[]},{"level":3,"title":"def truncate!","slug":"def-truncate","link":"#def-truncate","children":[]},{"level":3,"title":"def truncate_sql","slug":"def-truncate-sql","link":"#def-truncate-sql","children":[]}]},{"level":2,"title":"Macros","slug":"macros","link":"#macros","children":[{"level":3,"title":"macro method_missing(call)","slug":"macro-method-missing-call","link":"#macro-method-missing-call","children":[]}]}],"relativePath":"main/Cql/Table.md","lastUpdated":1723931959000}'),t={name:"main/Cql/Table.md"},i=l("div",null,[l("h1",{id:"class-cql-table",tabindex:"-1"},[a("class Cql::Table "),l("a",{class:"header-anchor",href:"#class-cql-table","aria-hidden":"true"},"#")]),l("p",null,[l("code",null,"Reference"),a(" < "),l("code",null,"Object")]),l("p",null,"Represents a table in the database. This class is responsible for handling table creation, modification, and deletion."),l("h2",{id:"usage",tabindex:"-1"},[a("Usage "),l("a",{class:"header-anchor",href:"#usage","aria-hidden":"true"},"#")]),l("div",{class:"language-crystal"},[l("button",{title:"Copy Code",class:"copy"}),l("span",{class:"lang"},"crystal"),l("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[l("code",null,[l("span",{class:"line"},[l("span",{style:{color:"#BABED8"}},"table "),l("span",{style:{color:"#89DDFF"}},"="),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#FFCB6B"}},"Table"),l("span",{style:{color:"#89DDFF"}},"."),l("span",{style:{color:"#82AAFF"}},"new"),l("span",{style:{color:"#89DDFF"}},"(:users,"),l("span",{style:{color:"#BABED8"}}," schema"),l("span",{style:{color:"#89DDFF"}},")")]),a(`
 `),l("span",{class:"line"},[l("span",{style:{color:"#89DDFF"}},"=>"),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#676E95","font-style":"italic"}},"#")]),a(`
 `),l("span",{class:"line"})])])]),l("div",{class:"language-crystal"},[l("button",{title:"Copy Code",class:"copy"}),l("span",{class:"lang"},"crystal"),l("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[l("code",null,[l("span",{class:"line"},[l("span",{style:{color:"#BABED8"}},"table"),l("span",{style:{color:"#89DDFF"}},"."),l("span",{style:{color:"#82AAFF"}},"column"),l("span",{style:{color:"#89DDFF"}},"(:id,"),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#FFCB6B"}},"Int64"),l("span",{style:{color:"#89DDFF"}},","),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#89DDFF"}},"primary:"),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#FF9CAC"}},"true"),l("span",{style:{color:"#89DDFF"}},")")]),a(`
 `),l("span",{class:"line"},[l("span",{style:{color:"#BABED8"}},"table"),l("span",{style:{color:"#89DDFF"}},"."),l("span",{style:{color:"#82AAFF"}},"column"),l("span",{style:{color:"#89DDFF"}},"(:name,"),l("span",{style:{color:"#BABED8"}}," "),l("span",{style:{color:"#FFCB6B"}},"String"),l("span",{style:{color:"#89DDFF"}},")")]),a(`
diff --git a/docs/assets/main_Cql_Update.md.6a2e093e.js b/docs/assets/main_Cql_Update.md.06ebbdf5.js
similarity index 99%
rename from docs/assets/main_Cql_Update.md.6a2e093e.js
rename to docs/assets/main_Cql_Update.md.06ebbdf5.js
index 09bc3e7..b617f6c 100644
--- a/docs/assets/main_Cql_Update.md.6a2e093e.js
+++ b/docs/assets/main_Cql_Update.md.06ebbdf5.js
@@ -1,4 +1,4 @@
-import{_ as n,o as l,c as o,x as s,a,S as e}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const A=JSON.parse('{"title":"Cql::Update","description":"","frontmatter":{"title":"Cql::Update"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(schema : Schema)","slug":"def-new-schema-schema","link":"#def-new-schema-schema","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def back(*columns : Symbol)","slug":"def-back-columns-symbol","link":"#def-back-columns-symbol","children":[]},{"level":3,"title":"def build","slug":"def-build","link":"#def-build","children":[]},{"level":3,"title":"def commit","slug":"def-commit","link":"#def-commit","children":[]},{"level":3,"title":"def set(setters : Hash(Symbol, DB::Any))","slug":"def-set-setters-hash-symbol-db-any","link":"#def-set-setters-hash-symbol-db-any","children":[]},{"level":3,"title":"def set","slug":"def-set","link":"#def-set","children":[]},{"level":3,"title":"def table(table : Symbol)","slug":"def-table-table-symbol","link":"#def-table-table-symbol","children":[]},{"level":3,"title":"def to_sql(gen = @schema.gen)","slug":"def-to-sql-gen-schema-gen","link":"#def-to-sql-gen-schema-gen","children":[]},{"level":3,"title":"def where","slug":"def-where","link":"#def-where","children":[]},{"level":3,"title":"def where(attr : Hash(Symbol, DB::Any))","slug":"def-where-attr-hash-symbol-db-any","link":"#def-where-attr-hash-symbol-db-any","children":[]},{"level":3,"title":"def where","slug":"def-where-1","link":"#def-where-1","children":[]}]}],"relativePath":"main/Cql/Update.md","lastUpdated":1723931959000}'),p={name:"main/Cql/Update.md"},t=s("div",null,[s("h1",{id:"class-cql-update",tabindex:"-1"},[a("class Cql::Update "),s("a",{class:"header-anchor",href:"#class-cql-update","aria-hidden":"true"},"#")]),s("p",null,[s("code",null,"Reference"),a(" < "),s("code",null,"Object")]),s("p",null,[a("The "),s("code",null,"Cql::Update"),a(" class represents an SQL UPDATE statement.")]),s("p",null,[s("strong",null,"Example")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"update "),s("span",{style:{color:"#89DDFF"}},"="),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Cql"),s("span",{style:{color:"#89DDFF"}},"::"),s("span",{style:{color:"#FFCB6B"}},"Update"),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#82AAFF"}},"new"),s("span",{style:{color:"#89DDFF"}},"("),s("span",{style:{color:"#BABED8"}},"schema"),s("span",{style:{color:"#89DDFF"}},")")]),a(`
+import{_ as n,o as l,c as o,x as s,a,S as e}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const A=JSON.parse('{"title":"Cql::Update","description":"","frontmatter":{"title":"Cql::Update"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(schema : Schema)","slug":"def-new-schema-schema","link":"#def-new-schema-schema","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def back(*columns : Symbol)","slug":"def-back-columns-symbol","link":"#def-back-columns-symbol","children":[]},{"level":3,"title":"def build","slug":"def-build","link":"#def-build","children":[]},{"level":3,"title":"def commit","slug":"def-commit","link":"#def-commit","children":[]},{"level":3,"title":"def set(setters : Hash(Symbol, DB::Any))","slug":"def-set-setters-hash-symbol-db-any","link":"#def-set-setters-hash-symbol-db-any","children":[]},{"level":3,"title":"def set","slug":"def-set","link":"#def-set","children":[]},{"level":3,"title":"def table(table : Symbol)","slug":"def-table-table-symbol","link":"#def-table-table-symbol","children":[]},{"level":3,"title":"def to_sql(gen = @schema.gen)","slug":"def-to-sql-gen-schema-gen","link":"#def-to-sql-gen-schema-gen","children":[]},{"level":3,"title":"def where","slug":"def-where","link":"#def-where","children":[]},{"level":3,"title":"def where(attr : Hash(Symbol, DB::Any))","slug":"def-where-attr-hash-symbol-db-any","link":"#def-where-attr-hash-symbol-db-any","children":[]},{"level":3,"title":"def where","slug":"def-where-1","link":"#def-where-1","children":[]}]}],"relativePath":"main/Cql/Update.md","lastUpdated":1723931959000}'),p={name:"main/Cql/Update.md"},t=s("div",null,[s("h1",{id:"class-cql-update",tabindex:"-1"},[a("class Cql::Update "),s("a",{class:"header-anchor",href:"#class-cql-update","aria-hidden":"true"},"#")]),s("p",null,[s("code",null,"Reference"),a(" < "),s("code",null,"Object")]),s("p",null,[a("The "),s("code",null,"Cql::Update"),a(" class represents an SQL UPDATE statement.")]),s("p",null,[s("strong",null,"Example")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"update "),s("span",{style:{color:"#89DDFF"}},"="),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Cql"),s("span",{style:{color:"#89DDFF"}},"::"),s("span",{style:{color:"#FFCB6B"}},"Update"),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#82AAFF"}},"new"),s("span",{style:{color:"#89DDFF"}},"("),s("span",{style:{color:"#BABED8"}},"schema"),s("span",{style:{color:"#89DDFF"}},")")]),a(`
 `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"  "),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#82AAFF"}},"table"),s("span",{style:{color:"#89DDFF"}},"(:users)")]),a(`
 `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"  "),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#82AAFF"}},"set"),s("span",{style:{color:"#89DDFF"}},"(name:"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},'"'),s("span",{style:{color:"#C3E88D"}},"John"),s("span",{style:{color:"#89DDFF"}},'"'),s("span",{style:{color:"#89DDFF"}},","),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},"age:"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#F78C6C"}},"30"),s("span",{style:{color:"#89DDFF"}},")")]),a(`
 `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"  "),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#BABED8"}},"where "),s("span",{style:{color:"#89DDFF"}},"{"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},"|"),s("span",{style:{color:"#BABED8"}},"w"),s("span",{style:{color:"#89DDFF"}},"|"),s("span",{style:{color:"#BABED8"}}," w"),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#BABED8"}},"id "),s("span",{style:{color:"#89DDFF"}},"=="),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#F78C6C"}},"1"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},"}")]),a(`
diff --git a/docs/assets/main_Cql_Update.md.6a2e093e.lean.js b/docs/assets/main_Cql_Update.md.06ebbdf5.lean.js
similarity index 98%
rename from docs/assets/main_Cql_Update.md.6a2e093e.lean.js
rename to docs/assets/main_Cql_Update.md.06ebbdf5.lean.js
index dc0bcbc..36bda53 100644
--- a/docs/assets/main_Cql_Update.md.6a2e093e.lean.js
+++ b/docs/assets/main_Cql_Update.md.06ebbdf5.lean.js
@@ -1,4 +1,4 @@
-import{_ as n,o as l,c as o,x as s,a,S as e}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const A=JSON.parse('{"title":"Cql::Update","description":"","frontmatter":{"title":"Cql::Update"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(schema : Schema)","slug":"def-new-schema-schema","link":"#def-new-schema-schema","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def back(*columns : Symbol)","slug":"def-back-columns-symbol","link":"#def-back-columns-symbol","children":[]},{"level":3,"title":"def build","slug":"def-build","link":"#def-build","children":[]},{"level":3,"title":"def commit","slug":"def-commit","link":"#def-commit","children":[]},{"level":3,"title":"def set(setters : Hash(Symbol, DB::Any))","slug":"def-set-setters-hash-symbol-db-any","link":"#def-set-setters-hash-symbol-db-any","children":[]},{"level":3,"title":"def set","slug":"def-set","link":"#def-set","children":[]},{"level":3,"title":"def table(table : Symbol)","slug":"def-table-table-symbol","link":"#def-table-table-symbol","children":[]},{"level":3,"title":"def to_sql(gen = @schema.gen)","slug":"def-to-sql-gen-schema-gen","link":"#def-to-sql-gen-schema-gen","children":[]},{"level":3,"title":"def where","slug":"def-where","link":"#def-where","children":[]},{"level":3,"title":"def where(attr : Hash(Symbol, DB::Any))","slug":"def-where-attr-hash-symbol-db-any","link":"#def-where-attr-hash-symbol-db-any","children":[]},{"level":3,"title":"def where","slug":"def-where-1","link":"#def-where-1","children":[]}]}],"relativePath":"main/Cql/Update.md","lastUpdated":1723931959000}'),p={name:"main/Cql/Update.md"},t=s("div",null,[s("h1",{id:"class-cql-update",tabindex:"-1"},[a("class Cql::Update "),s("a",{class:"header-anchor",href:"#class-cql-update","aria-hidden":"true"},"#")]),s("p",null,[s("code",null,"Reference"),a(" < "),s("code",null,"Object")]),s("p",null,[a("The "),s("code",null,"Cql::Update"),a(" class represents an SQL UPDATE statement.")]),s("p",null,[s("strong",null,"Example")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"update "),s("span",{style:{color:"#89DDFF"}},"="),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Cql"),s("span",{style:{color:"#89DDFF"}},"::"),s("span",{style:{color:"#FFCB6B"}},"Update"),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#82AAFF"}},"new"),s("span",{style:{color:"#89DDFF"}},"("),s("span",{style:{color:"#BABED8"}},"schema"),s("span",{style:{color:"#89DDFF"}},")")]),a(`
+import{_ as n,o as l,c as o,x as s,a,S as e}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const A=JSON.parse('{"title":"Cql::Update","description":"","frontmatter":{"title":"Cql::Update"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(schema : Schema)","slug":"def-new-schema-schema","link":"#def-new-schema-schema","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def back(*columns : Symbol)","slug":"def-back-columns-symbol","link":"#def-back-columns-symbol","children":[]},{"level":3,"title":"def build","slug":"def-build","link":"#def-build","children":[]},{"level":3,"title":"def commit","slug":"def-commit","link":"#def-commit","children":[]},{"level":3,"title":"def set(setters : Hash(Symbol, DB::Any))","slug":"def-set-setters-hash-symbol-db-any","link":"#def-set-setters-hash-symbol-db-any","children":[]},{"level":3,"title":"def set","slug":"def-set","link":"#def-set","children":[]},{"level":3,"title":"def table(table : Symbol)","slug":"def-table-table-symbol","link":"#def-table-table-symbol","children":[]},{"level":3,"title":"def to_sql(gen = @schema.gen)","slug":"def-to-sql-gen-schema-gen","link":"#def-to-sql-gen-schema-gen","children":[]},{"level":3,"title":"def where","slug":"def-where","link":"#def-where","children":[]},{"level":3,"title":"def where(attr : Hash(Symbol, DB::Any))","slug":"def-where-attr-hash-symbol-db-any","link":"#def-where-attr-hash-symbol-db-any","children":[]},{"level":3,"title":"def where","slug":"def-where-1","link":"#def-where-1","children":[]}]}],"relativePath":"main/Cql/Update.md","lastUpdated":1723931959000}'),p={name:"main/Cql/Update.md"},t=s("div",null,[s("h1",{id:"class-cql-update",tabindex:"-1"},[a("class Cql::Update "),s("a",{class:"header-anchor",href:"#class-cql-update","aria-hidden":"true"},"#")]),s("p",null,[s("code",null,"Reference"),a(" < "),s("code",null,"Object")]),s("p",null,[a("The "),s("code",null,"Cql::Update"),a(" class represents an SQL UPDATE statement.")]),s("p",null,[s("strong",null,"Example")]),s("div",{class:"language-crystal"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"crystal"),s("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"update "),s("span",{style:{color:"#89DDFF"}},"="),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#FFCB6B"}},"Cql"),s("span",{style:{color:"#89DDFF"}},"::"),s("span",{style:{color:"#FFCB6B"}},"Update"),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#82AAFF"}},"new"),s("span",{style:{color:"#89DDFF"}},"("),s("span",{style:{color:"#BABED8"}},"schema"),s("span",{style:{color:"#89DDFF"}},")")]),a(`
 `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"  "),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#82AAFF"}},"table"),s("span",{style:{color:"#89DDFF"}},"(:users)")]),a(`
 `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"  "),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#82AAFF"}},"set"),s("span",{style:{color:"#89DDFF"}},"(name:"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},'"'),s("span",{style:{color:"#C3E88D"}},"John"),s("span",{style:{color:"#89DDFF"}},'"'),s("span",{style:{color:"#89DDFF"}},","),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},"age:"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#F78C6C"}},"30"),s("span",{style:{color:"#89DDFF"}},")")]),a(`
 `),s("span",{class:"line"},[s("span",{style:{color:"#BABED8"}},"  "),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#BABED8"}},"where "),s("span",{style:{color:"#89DDFF"}},"{"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},"|"),s("span",{style:{color:"#BABED8"}},"w"),s("span",{style:{color:"#89DDFF"}},"|"),s("span",{style:{color:"#BABED8"}}," w"),s("span",{style:{color:"#89DDFF"}},"."),s("span",{style:{color:"#BABED8"}},"id "),s("span",{style:{color:"#89DDFF"}},"=="),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#F78C6C"}},"1"),s("span",{style:{color:"#BABED8"}}," "),s("span",{style:{color:"#89DDFF"}},"}")]),a(`
diff --git a/docs/assets/main_Cql__index.md.e62d8c9a.js b/docs/assets/main_Cql__index.md.a4a8b6b3.js
similarity index 98%
rename from docs/assets/main_Cql__index.md.e62d8c9a.js
rename to docs/assets/main_Cql__index.md.a4a8b6b3.js
index c2ff2cc..10f6553 100644
--- a/docs/assets/main_Cql__index.md.e62d8c9a.js
+++ b/docs/assets/main_Cql__index.md.a4a8b6b3.js
@@ -1,4 +1,4 @@
-import{_ as l,o as a,c as s,x as e,a as n,S as t}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const D=JSON.parse('{"title":"Cql::Index","description":"","frontmatter":{"title":"Cql::Index"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(table : Table, columns : Array(Symbol), unique : Bool = false, name : String | Nil = nil)","slug":"def-new-table-table-columns-array-symbol-unique-bool-false-name-string-nil-nil","link":"#def-new-table-table-columns-array-symbol-unique-bool-false-name-string-nil-nil","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def columns","slug":"def-columns","link":"#def-columns","children":[]},{"level":3,"title":"def index_name","slug":"def-index-name","link":"#def-index-name","children":[]},{"level":3,"title":"def name","slug":"def-name","link":"#def-name","children":[]},{"level":3,"title":"def name=(name : String | Nil)","slug":"def-name-name-string-nil","link":"#def-name-name-string-nil","children":[]},{"level":3,"title":"def table","slug":"def-table","link":"#def-table","children":[]},{"level":3,"title":"def unique?","slug":"def-unique","link":"#def-unique","children":[]}]}],"relativePath":"main/Cql/_index.md","lastUpdated":1723931959000}'),o={name:"main/Cql/_index.md"},i=e("div",null,[e("h1",{id:"class-cql-index",tabindex:"-1"},[n("class Cql::Index "),e("a",{class:"header-anchor",href:"#class-cql-index","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"Reference"),n(" < "),e("code",null,"Object")]),e("p",null,"An index on a table This class represents an index on a table It provides methods for setting the columns and unique constraint It also provides methods for generating the index name"),e("p",null,[e("strong",null,"Example"),n(" Creating a new index")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"schema"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#BABED8"}},"build "),e("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),n(`
+import{_ as l,o as a,c as s,x as e,a as n,S as t}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const D=JSON.parse('{"title":"Cql::Index","description":"","frontmatter":{"title":"Cql::Index"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(table : Table, columns : Array(Symbol), unique : Bool = false, name : String | Nil = nil)","slug":"def-new-table-table-columns-array-symbol-unique-bool-false-name-string-nil-nil","link":"#def-new-table-table-columns-array-symbol-unique-bool-false-name-string-nil-nil","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def columns","slug":"def-columns","link":"#def-columns","children":[]},{"level":3,"title":"def index_name","slug":"def-index-name","link":"#def-index-name","children":[]},{"level":3,"title":"def name","slug":"def-name","link":"#def-name","children":[]},{"level":3,"title":"def name=(name : String | Nil)","slug":"def-name-name-string-nil","link":"#def-name-name-string-nil","children":[]},{"level":3,"title":"def table","slug":"def-table","link":"#def-table","children":[]},{"level":3,"title":"def unique?","slug":"def-unique","link":"#def-unique","children":[]}]}],"relativePath":"main/Cql/_index.md","lastUpdated":1723931959000}'),o={name:"main/Cql/_index.md"},i=e("div",null,[e("h1",{id:"class-cql-index",tabindex:"-1"},[n("class Cql::Index "),e("a",{class:"header-anchor",href:"#class-cql-index","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"Reference"),n(" < "),e("code",null,"Object")]),e("p",null,"An index on a table This class represents an index on a table It provides methods for setting the columns and unique constraint It also provides methods for generating the index name"),e("p",null,[e("strong",null,"Example"),n(" Creating a new index")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"schema"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#BABED8"}},"build "),e("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),n(`
 `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"  table "),e("span",{style:{color:"#89DDFF"}},":users"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),n(`
 `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"    column "),e("span",{style:{color:"#89DDFF"}},":name,"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"String")]),n(`
 `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"    column "),e("span",{style:{color:"#89DDFF"}},":email,"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"String")]),n(`
diff --git a/docs/assets/main_Cql__index.md.e62d8c9a.lean.js b/docs/assets/main_Cql__index.md.a4a8b6b3.lean.js
similarity index 97%
rename from docs/assets/main_Cql__index.md.e62d8c9a.lean.js
rename to docs/assets/main_Cql__index.md.a4a8b6b3.lean.js
index a40a519..fef42b7 100644
--- a/docs/assets/main_Cql__index.md.e62d8c9a.lean.js
+++ b/docs/assets/main_Cql__index.md.a4a8b6b3.lean.js
@@ -1,4 +1,4 @@
-import{_ as l,o as a,c as s,x as e,a as n,S as t}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const D=JSON.parse('{"title":"Cql::Index","description":"","frontmatter":{"title":"Cql::Index"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(table : Table, columns : Array(Symbol), unique : Bool = false, name : String | Nil = nil)","slug":"def-new-table-table-columns-array-symbol-unique-bool-false-name-string-nil-nil","link":"#def-new-table-table-columns-array-symbol-unique-bool-false-name-string-nil-nil","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def columns","slug":"def-columns","link":"#def-columns","children":[]},{"level":3,"title":"def index_name","slug":"def-index-name","link":"#def-index-name","children":[]},{"level":3,"title":"def name","slug":"def-name","link":"#def-name","children":[]},{"level":3,"title":"def name=(name : String | Nil)","slug":"def-name-name-string-nil","link":"#def-name-name-string-nil","children":[]},{"level":3,"title":"def table","slug":"def-table","link":"#def-table","children":[]},{"level":3,"title":"def unique?","slug":"def-unique","link":"#def-unique","children":[]}]}],"relativePath":"main/Cql/_index.md","lastUpdated":1723931959000}'),o={name:"main/Cql/_index.md"},i=e("div",null,[e("h1",{id:"class-cql-index",tabindex:"-1"},[n("class Cql::Index "),e("a",{class:"header-anchor",href:"#class-cql-index","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"Reference"),n(" < "),e("code",null,"Object")]),e("p",null,"An index on a table This class represents an index on a table It provides methods for setting the columns and unique constraint It also provides methods for generating the index name"),e("p",null,[e("strong",null,"Example"),n(" Creating a new index")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"schema"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#BABED8"}},"build "),e("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),n(`
+import{_ as l,o as a,c as s,x as e,a as n,S as t}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const D=JSON.parse('{"title":"Cql::Index","description":"","frontmatter":{"title":"Cql::Index"},"headers":[{"level":2,"title":"Constructors","slug":"constructors","link":"#constructors","children":[{"level":3,"title":"def new(table : Table, columns : Array(Symbol), unique : Bool = false, name : String | Nil = nil)","slug":"def-new-table-table-columns-array-symbol-unique-bool-false-name-string-nil-nil","link":"#def-new-table-table-columns-array-symbol-unique-bool-false-name-string-nil-nil","children":[]}]},{"level":2,"title":"Instance Methods","slug":"instance-methods","link":"#instance-methods","children":[{"level":3,"title":"def columns","slug":"def-columns","link":"#def-columns","children":[]},{"level":3,"title":"def index_name","slug":"def-index-name","link":"#def-index-name","children":[]},{"level":3,"title":"def name","slug":"def-name","link":"#def-name","children":[]},{"level":3,"title":"def name=(name : String | Nil)","slug":"def-name-name-string-nil","link":"#def-name-name-string-nil","children":[]},{"level":3,"title":"def table","slug":"def-table","link":"#def-table","children":[]},{"level":3,"title":"def unique?","slug":"def-unique","link":"#def-unique","children":[]}]}],"relativePath":"main/Cql/_index.md","lastUpdated":1723931959000}'),o={name:"main/Cql/_index.md"},i=e("div",null,[e("h1",{id:"class-cql-index",tabindex:"-1"},[n("class Cql::Index "),e("a",{class:"header-anchor",href:"#class-cql-index","aria-hidden":"true"},"#")]),e("p",null,[e("code",null,"Reference"),n(" < "),e("code",null,"Object")]),e("p",null,"An index on a table This class represents an index on a table It provides methods for setting the columns and unique constraint It also provides methods for generating the index name"),e("p",null,[e("strong",null,"Example"),n(" Creating a new index")]),e("div",{class:"language-crystal"},[e("button",{title:"Copy Code",class:"copy"}),e("span",{class:"lang"},"crystal"),e("pre",{"v-pre":"",class:"shiki material-theme-palenight",tabindex:"0"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"schema"),e("span",{style:{color:"#89DDFF"}},"."),e("span",{style:{color:"#BABED8"}},"build "),e("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),n(`
 `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"  table "),e("span",{style:{color:"#89DDFF"}},":users"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#89DDFF","font-style":"italic"}},"do")]),n(`
 `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"    column "),e("span",{style:{color:"#89DDFF"}},":name,"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"String")]),n(`
 `),e("span",{class:"line"},[e("span",{style:{color:"#BABED8"}},"    column "),e("span",{style:{color:"#89DDFF"}},":email,"),e("span",{style:{color:"#BABED8"}}," "),e("span",{style:{color:"#FFCB6B"}},"String")]),n(`
diff --git a/docs/assets/main_Guides.md.bc486650.js b/docs/assets/main_Guides.md.bc486650.js
deleted file mode 100644
index ab314ea..0000000
--- a/docs/assets/main_Guides.md.bc486650.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as t,o as a,c as s,x as e,a as i}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const x=JSON.parse('{"title":"Guides","description":"","frontmatter":{"title":"Guides"},"headers":[],"relativePath":"main/Guides.md","lastUpdated":null}'),n={name:"main/Guides.md"},o=e("h1",{id:"guides",tabindex:"-1"},[i("Guides "),e("a",{class:"header-anchor",href:"#guides","aria-hidden":"true"},"#")],-1),d=e("p",null,"The CQL (Crystal Query Language) Toolkit simplifies the management and execution of SQL queries in Crystal. It supports CRUD operations, complex query building, and uses patterns like Active Record and Repository for efficient data management. CQL is compatible with multiple databases, including PostgreSQL. Features include schema definition, query execution, data insertion, updating, and deletion. It also provides support for associations like has_many, belongs_to, and many_to_many.",-1),r=[o,d];function c(u,l,p,m,_,h){return a(),s("div",null,r)}const y=t(n,[["render",c]]);export{x as __pageData,y as default};
diff --git a/docs/assets/main_Guides.md.bc486650.lean.js b/docs/assets/main_Guides.md.bc486650.lean.js
deleted file mode 100644
index ab314ea..0000000
--- a/docs/assets/main_Guides.md.bc486650.lean.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as t,o as a,c as s,x as e,a as i}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const x=JSON.parse('{"title":"Guides","description":"","frontmatter":{"title":"Guides"},"headers":[],"relativePath":"main/Guides.md","lastUpdated":null}'),n={name:"main/Guides.md"},o=e("h1",{id:"guides",tabindex:"-1"},[i("Guides "),e("a",{class:"header-anchor",href:"#guides","aria-hidden":"true"},"#")],-1),d=e("p",null,"The CQL (Crystal Query Language) Toolkit simplifies the management and execution of SQL queries in Crystal. It supports CRUD operations, complex query building, and uses patterns like Active Record and Repository for efficient data management. CQL is compatible with multiple databases, including PostgreSQL. Features include schema definition, query execution, data insertion, updating, and deletion. It also provides support for associations like has_many, belongs_to, and many_to_many.",-1),r=[o,d];function c(u,l,p,m,_,h){return a(),s("div",null,r)}const y=t(n,[["render",c]]);export{x as __pageData,y as default};
diff --git a/docs/assets/main_Guides.md.cd4b918a.js b/docs/assets/main_Guides.md.cd4b918a.js
new file mode 100644
index 0000000..4427b3e
--- /dev/null
+++ b/docs/assets/main_Guides.md.cd4b918a.js
@@ -0,0 +1 @@
+import{_ as t,o as a,c as s,x as e,a as i}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const x=JSON.parse('{"title":"Guides","description":"","frontmatter":{"title":"Guides"},"headers":[],"relativePath":"main/Guides.md","lastUpdated":1723940574000}'),n={name:"main/Guides.md"},o=e("h1",{id:"guides",tabindex:"-1"},[i("Guides "),e("a",{class:"header-anchor",href:"#guides","aria-hidden":"true"},"#")],-1),d=e("p",null,"The CQL (Crystal Query Language) Toolkit simplifies the management and execution of SQL queries in Crystal. It supports CRUD operations, complex query building, and uses patterns like Active Record and Repository for efficient data management. CQL is compatible with multiple databases, including PostgreSQL. Features include schema definition, query execution, data insertion, updating, and deletion. It also provides support for associations like has_many, belongs_to, and many_to_many.",-1),r=[o,d];function c(u,l,p,m,_,h){return a(),s("div",null,r)}const y=t(n,[["render",c]]);export{x as __pageData,y as default};
diff --git a/docs/assets/main_Guides.md.cd4b918a.lean.js b/docs/assets/main_Guides.md.cd4b918a.lean.js
new file mode 100644
index 0000000..4427b3e
--- /dev/null
+++ b/docs/assets/main_Guides.md.cd4b918a.lean.js
@@ -0,0 +1 @@
+import{_ as t,o as a,c as s,x as e,a as i}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const x=JSON.parse('{"title":"Guides","description":"","frontmatter":{"title":"Guides"},"headers":[],"relativePath":"main/Guides.md","lastUpdated":1723940574000}'),n={name:"main/Guides.md"},o=e("h1",{id:"guides",tabindex:"-1"},[i("Guides "),e("a",{class:"header-anchor",href:"#guides","aria-hidden":"true"},"#")],-1),d=e("p",null,"The CQL (Crystal Query Language) Toolkit simplifies the management and execution of SQL queries in Crystal. It supports CRUD operations, complex query building, and uses patterns like Active Record and Repository for efficient data management. CQL is compatible with multiple databases, including PostgreSQL. Features include schema definition, query execution, data insertion, updating, and deletion. It also provides support for associations like has_many, belongs_to, and many_to_many.",-1),r=[o,d];function c(u,l,p,m,_,h){return a(),s("div",null,r)}const y=t(n,[["render",c]]);export{x as __pageData,y as default};
diff --git a/docs/assets/main_Guides_CoreConcepts.md.19020713.js b/docs/assets/main_Guides_CoreConcepts.md.19020713.js
deleted file mode 100644
index 690dc22..0000000
--- a/docs/assets/main_Guides_CoreConcepts.md.19020713.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as e,o as t,c as a,S as n}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const m=JSON.parse('{"title":"Core Concepts","description":"","frontmatter":{"title":"Core Concepts"},"headers":[],"relativePath":"main/Guides/CoreConcepts.md","lastUpdated":null}'),s={name:"main/Guides/CoreConcepts.md"},o=n('

3. Core Concepts

CQL’s core concepts revolve around providing developers with tools to efficiently interact with databases through well-structured APIs. These concepts are fundamental to building and manipulating data models, performing queries, and managing transactions. Here's a high-level overview:

  • Schemas: Define the structure of the database, including tables, columns, and data types.
  • CRUD Operations: Simplify creating, reading, updating, and deleting records in the database.
  • Query Builder: Enables constructing SQL queries using Crystal code with features like joins and subqueries.
  • Transactions: Ensure safe and atomic execution of multiple database operations.
',3),r=[o];function i(c,d,l,p,u,_){return t(),a("div",null,r)}const f=e(s,[["render",i]]);export{m as __pageData,f as default}; diff --git a/docs/assets/main_Guides_CoreConcepts.md.19020713.lean.js b/docs/assets/main_Guides_CoreConcepts.md.19020713.lean.js deleted file mode 100644 index b7d63bf..0000000 --- a/docs/assets/main_Guides_CoreConcepts.md.19020713.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,o as t,c as a,S as n}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const m=JSON.parse('{"title":"Core Concepts","description":"","frontmatter":{"title":"Core Concepts"},"headers":[],"relativePath":"main/Guides/CoreConcepts.md","lastUpdated":null}'),s={name:"main/Guides/CoreConcepts.md"},o=n("",3),r=[o];function i(c,d,l,p,u,_){return t(),a("div",null,r)}const f=e(s,[["render",i]]);export{m as __pageData,f as default}; diff --git a/docs/assets/main_Guides_CoreConcepts.md.70ee820a.js b/docs/assets/main_Guides_CoreConcepts.md.70ee820a.js new file mode 100644 index 0000000..71d70b3 --- /dev/null +++ b/docs/assets/main_Guides_CoreConcepts.md.70ee820a.js @@ -0,0 +1 @@ +import{_ as e,o as t,c as a,S as n}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const m=JSON.parse('{"title":"Core Concepts","description":"","frontmatter":{"title":"Core Concepts"},"headers":[],"relativePath":"main/Guides/CoreConcepts.md","lastUpdated":1723940574000}'),s={name:"main/Guides/CoreConcepts.md"},o=n('

3. Core Concepts

CQL’s core concepts revolve around providing developers with tools to efficiently interact with databases through well-structured APIs. These concepts are fundamental to building and manipulating data models, performing queries, and managing transactions. Here's a high-level overview:

  • Schemas: Define the structure of the database, including tables, columns, and data types.
  • CRUD Operations: Simplify creating, reading, updating, and deleting records in the database.
  • Query Builder: Enables constructing SQL queries using Crystal code with features like joins and subqueries.
  • Transactions: Ensure safe and atomic execution of multiple database operations.
',3),r=[o];function i(c,d,l,p,u,_){return t(),a("div",null,r)}const f=e(s,[["render",i]]);export{m as __pageData,f as default}; diff --git a/docs/assets/main_Guides_CoreConcepts.md.70ee820a.lean.js b/docs/assets/main_Guides_CoreConcepts.md.70ee820a.lean.js new file mode 100644 index 0000000..ed1f8ad --- /dev/null +++ b/docs/assets/main_Guides_CoreConcepts.md.70ee820a.lean.js @@ -0,0 +1 @@ +import{_ as e,o as t,c as a,S as n}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const m=JSON.parse('{"title":"Core Concepts","description":"","frontmatter":{"title":"Core Concepts"},"headers":[],"relativePath":"main/Guides/CoreConcepts.md","lastUpdated":1723940574000}'),s={name:"main/Guides/CoreConcepts.md"},o=n("",3),r=[o];function i(c,d,l,p,u,_){return t(),a("div",null,r)}const f=e(s,[["render",i]]);export{m as __pageData,f as default}; diff --git a/docs/assets/main_Guides_CoreConcepts_Schemas.md.068c4d1d.js b/docs/assets/main_Guides_CoreConcepts_Schemas.md.1a629e7b.js similarity index 77% rename from docs/assets/main_Guides_CoreConcepts_Schemas.md.068c4d1d.js rename to docs/assets/main_Guides_CoreConcepts_Schemas.md.1a629e7b.js index 3f18a28..d5f33b2 100644 --- a/docs/assets/main_Guides_CoreConcepts_Schemas.md.068c4d1d.js +++ b/docs/assets/main_Guides_CoreConcepts_Schemas.md.1a629e7b.js @@ -1,4 +1,4 @@ -import{_ as s,o as a,c as e,S as n}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const m=JSON.parse('{"title":"Schema Definition","description":"","frontmatter":{"title":"Schema Definition"},"headers":[{"level":2,"title":"Accelerating Database Iteration","slug":"accelerating-database-iteration","link":"#accelerating-database-iteration","children":[]},{"level":2,"title":"Benefits of Defining the Schema First","slug":"benefits-of-defining-the-schema-first","link":"#benefits-of-defining-the-schema-first","children":[]},{"level":2,"title":"Difference from Other ORM Libraries","slug":"difference-from-other-orm-libraries","link":"#difference-from-other-orm-libraries","children":[]},{"level":2,"title":"Example Schema Definition","slug":"example-schema-definition","link":"#example-schema-definition","children":[]},{"level":2,"title":"Explanation of Schema Definition","slug":"explanation-of-schema-definition","link":"#explanation-of-schema-definition","children":[{"level":4,"title":"Multiple Schemas: Flexibility and Easy Switching","slug":"multiple-schemas-flexibility-and-easy-switching","link":"#multiple-schemas-flexibility-and-easy-switching","children":[]},{"level":4,"title":"Example: Managing Multiple Schemas","slug":"example-managing-multiple-schemas","link":"#example-managing-multiple-schemas","children":[]},{"level":4,"title":"Benefits of Multiple Schemas","slug":"benefits-of-multiple-schemas","link":"#benefits-of-multiple-schemas","children":[]}]}],"relativePath":"main/Guides/CoreConcepts/Schemas.md","lastUpdated":null}'),t={name:"main/Guides/CoreConcepts/Schemas.md"},l=n(`

Schema Definition in CQL

Accelerating Database Iteration

Defining the schema first is a fundamental approach in CQL, helping developers quickly structure their database while keeping their application’s data model in sync with real-world entities. By defining your schema upfront, you can rapidly iterate over your database tables, making it easy to adjust data structures as your application evolves. This method ensures that your schema is the single source of truth, giving you a clear view of how your data is organized and how relationships between different tables are modeled.

Benefits of Defining the Schema First

  1. Faster Prototyping: With schemas defined at the outset, you can rapidly experiment with different table structures and relationships, making it easier to adjust your application’s data model without writing complex migrations from scratch.
  2. Clear Data Structure: When your schema is predefined, the application’s data structure becomes clearer, allowing developers to conceptualize how data is organized and interact with tables more easily.
  3. Consistency: Ensuring the schema matches the database at all times removes ambiguity when writing queries, handling relationships, or performing migrations.
  4. Automatic Data Validation: CQL schemas enforce data types and constraints, such as primary, auto_increment, and text, ensuring data integrity.
  5. Simplified Query Building: Since the schema is explicit, writing queries becomes easier as you can reference schema objects directly in queries, avoiding mistakes or typos in table or column names.

Difference from Other ORM Libraries

Unlike traditional ORM libraries (e.g., Active Record in Rails or Ecto in Elixir), which often allow defining database models alongside the code and handling schema evolution through migrations, CQL encourages defining the database schema as the first step.

This "schema-first" approach differs from the "code-first" or "migration-based" methodologies in that it avoids relying on automatic migrations or conventions to infer the structure of the database. CQL enforces an explicit and structured approach to schema creation, ensuring the database schema reflects the actual architecture of your application.

Example Schema Definition

Here’s a basic example of how to define a schema in CQL for a movie-related database:

crystal
AcmeDB2 = Cql::Schema.build(
+import{_ as s,o as a,c as e,S as n}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const m=JSON.parse('{"title":"Schema Definition","description":"","frontmatter":{"title":"Schema Definition"},"headers":[{"level":2,"title":"Accelerating Database Iteration","slug":"accelerating-database-iteration","link":"#accelerating-database-iteration","children":[]},{"level":2,"title":"Benefits of Defining the Schema First","slug":"benefits-of-defining-the-schema-first","link":"#benefits-of-defining-the-schema-first","children":[]},{"level":2,"title":"Difference from Other ORM Libraries","slug":"difference-from-other-orm-libraries","link":"#difference-from-other-orm-libraries","children":[]},{"level":2,"title":"Example Schema Definition","slug":"example-schema-definition","link":"#example-schema-definition","children":[]},{"level":2,"title":"Explanation of Schema Definition","slug":"explanation-of-schema-definition","link":"#explanation-of-schema-definition","children":[{"level":4,"title":"Multiple Schemas: Flexibility and Easy Switching","slug":"multiple-schemas-flexibility-and-easy-switching","link":"#multiple-schemas-flexibility-and-easy-switching","children":[]},{"level":4,"title":"Example: Managing Multiple Schemas","slug":"example-managing-multiple-schemas","link":"#example-managing-multiple-schemas","children":[]},{"level":4,"title":"Benefits of Multiple Schemas","slug":"benefits-of-multiple-schemas","link":"#benefits-of-multiple-schemas","children":[]}]}],"relativePath":"main/Guides/CoreConcepts/Schemas.md","lastUpdated":1723940574000}'),t={name:"main/Guides/CoreConcepts/Schemas.md"},l=n(`

Schema Definition in CQL

Accelerating Database Iteration

Defining the schema first is a fundamental approach in CQL, helping developers quickly structure their database while keeping their application’s data model in sync with real-world entities. By defining your schema upfront, you can rapidly iterate over your database tables, making it easy to adjust data structures as your application evolves. This method ensures that your schema is the single source of truth, giving you a clear view of how your data is organized and how relationships between different tables are modeled.

Benefits of Defining the Schema First

  1. Faster Prototyping: With schemas defined at the outset, you can rapidly experiment with different table structures and relationships, making it easier to adjust your application’s data model without writing complex migrations from scratch.
  2. Clear Data Structure: When your schema is predefined, the application’s data structure becomes clearer, allowing developers to conceptualize how data is organized and interact with tables more easily.
  3. Consistency: Ensuring the schema matches the database at all times removes ambiguity when writing queries, handling relationships, or performing migrations.
  4. Automatic Data Validation: CQL schemas enforce data types and constraints, such as primary, auto_increment, and text, ensuring data integrity.
  5. Simplified Query Building: Since the schema is explicit, writing queries becomes easier as you can reference schema objects directly in queries, avoiding mistakes or typos in table or column names.

Difference from Other ORM Libraries

Unlike traditional ORM libraries (e.g., Active Record in Rails or Ecto in Elixir), which often allow defining database models alongside the code and handling schema evolution through migrations, CQL encourages defining the database schema as the first step.

This "schema-first" approach differs from the "code-first" or "migration-based" methodologies in that it avoids relying on automatic migrations or conventions to infer the structure of the database. CQL enforces an explicit and structured approach to schema creation, ensuring the database schema reflects the actual architecture of your application.

Example Schema Definition

Here’s a basic example of how to define a schema in CQL for a movie-related database:

crystal
AcmeDB2 = Cql::Schema.build(
   :acme_db,
   adapter: Cql::Adapter::Postgres,
   uri: ENV["DATABASE_URL"]) do
diff --git a/docs/assets/main_Guides_CoreConcepts_Schemas.md.068c4d1d.lean.js b/docs/assets/main_Guides_CoreConcepts_Schemas.md.1a629e7b.lean.js
similarity index 80%
rename from docs/assets/main_Guides_CoreConcepts_Schemas.md.068c4d1d.lean.js
rename to docs/assets/main_Guides_CoreConcepts_Schemas.md.1a629e7b.lean.js
index 2cb8934..00e672d 100644
--- a/docs/assets/main_Guides_CoreConcepts_Schemas.md.068c4d1d.lean.js
+++ b/docs/assets/main_Guides_CoreConcepts_Schemas.md.1a629e7b.lean.js
@@ -1 +1 @@
-import{_ as s,o as a,c as e,S as n}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const m=JSON.parse('{"title":"Schema Definition","description":"","frontmatter":{"title":"Schema Definition"},"headers":[{"level":2,"title":"Accelerating Database Iteration","slug":"accelerating-database-iteration","link":"#accelerating-database-iteration","children":[]},{"level":2,"title":"Benefits of Defining the Schema First","slug":"benefits-of-defining-the-schema-first","link":"#benefits-of-defining-the-schema-first","children":[]},{"level":2,"title":"Difference from Other ORM Libraries","slug":"difference-from-other-orm-libraries","link":"#difference-from-other-orm-libraries","children":[]},{"level":2,"title":"Example Schema Definition","slug":"example-schema-definition","link":"#example-schema-definition","children":[]},{"level":2,"title":"Explanation of Schema Definition","slug":"explanation-of-schema-definition","link":"#explanation-of-schema-definition","children":[{"level":4,"title":"Multiple Schemas: Flexibility and Easy Switching","slug":"multiple-schemas-flexibility-and-easy-switching","link":"#multiple-schemas-flexibility-and-easy-switching","children":[]},{"level":4,"title":"Example: Managing Multiple Schemas","slug":"example-managing-multiple-schemas","link":"#example-managing-multiple-schemas","children":[]},{"level":4,"title":"Benefits of Multiple Schemas","slug":"benefits-of-multiple-schemas","link":"#benefits-of-multiple-schemas","children":[]}]}],"relativePath":"main/Guides/CoreConcepts/Schemas.md","lastUpdated":null}'),t={name:"main/Guides/CoreConcepts/Schemas.md"},l=n("",26),o=[l];function i(p,c,r,d,y,h){return a(),e("div",null,o)}const B=s(t,[["render",i]]);export{m as __pageData,B as default};
+import{_ as s,o as a,c as e,S as n}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const m=JSON.parse('{"title":"Schema Definition","description":"","frontmatter":{"title":"Schema Definition"},"headers":[{"level":2,"title":"Accelerating Database Iteration","slug":"accelerating-database-iteration","link":"#accelerating-database-iteration","children":[]},{"level":2,"title":"Benefits of Defining the Schema First","slug":"benefits-of-defining-the-schema-first","link":"#benefits-of-defining-the-schema-first","children":[]},{"level":2,"title":"Difference from Other ORM Libraries","slug":"difference-from-other-orm-libraries","link":"#difference-from-other-orm-libraries","children":[]},{"level":2,"title":"Example Schema Definition","slug":"example-schema-definition","link":"#example-schema-definition","children":[]},{"level":2,"title":"Explanation of Schema Definition","slug":"explanation-of-schema-definition","link":"#explanation-of-schema-definition","children":[{"level":4,"title":"Multiple Schemas: Flexibility and Easy Switching","slug":"multiple-schemas-flexibility-and-easy-switching","link":"#multiple-schemas-flexibility-and-easy-switching","children":[]},{"level":4,"title":"Example: Managing Multiple Schemas","slug":"example-managing-multiple-schemas","link":"#example-managing-multiple-schemas","children":[]},{"level":4,"title":"Benefits of Multiple Schemas","slug":"benefits-of-multiple-schemas","link":"#benefits-of-multiple-schemas","children":[]}]}],"relativePath":"main/Guides/CoreConcepts/Schemas.md","lastUpdated":1723940574000}'),t={name:"main/Guides/CoreConcepts/Schemas.md"},l=n("",26),o=[l];function i(p,c,r,d,y,h){return a(),e("div",null,o)}const B=s(t,[["render",i]]);export{m as __pageData,B as default};
diff --git a/docs/assets/main_Guides_Installation.md.46d7f52b.js b/docs/assets/main_Guides_Installation.md.52de62ac.js
similarity index 77%
rename from docs/assets/main_Guides_Installation.md.46d7f52b.js
rename to docs/assets/main_Guides_Installation.md.52de62ac.js
index 41d255f..9aede21 100644
--- a/docs/assets/main_Guides_Installation.md.46d7f52b.js
+++ b/docs/assets/main_Guides_Installation.md.52de62ac.js
@@ -1,4 +1,4 @@
-import{_ as a,o as e,c as s,S as n}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const m=JSON.parse('{"title":"Installation","description":"","frontmatter":{"title":"Installation"},"headers":[{"level":2,"title":"Step 1: Add Dependency","slug":"step-1-add-dependency","link":"#step-1-add-dependency","children":[]},{"level":2,"title":"Step 2: Install Shards","slug":"step-2-install-shards","link":"#step-2-install-shards","children":[]},{"level":2,"title":"Step 3: Configure Database","slug":"step-3-configure-database","link":"#step-3-configure-database","children":[]},{"level":2,"title":"Step 4: Create the Schema","slug":"step-4-create-the-schema","link":"#step-4-create-the-schema","children":[]}],"relativePath":"main/Guides/Installation.md","lastUpdated":null}'),t={name:"main/Guides/Installation.md"},l=n(`

2. Installation Guide

To get started with CQL in your Crystal project, follow these steps:

Step 1: Add Dependency

First, add CQL to your project by including it in the shard.yml file:

yaml
dependencies:
+import{_ as a,o as e,c as s,S as n}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const m=JSON.parse('{"title":"Installation","description":"","frontmatter":{"title":"Installation"},"headers":[{"level":2,"title":"Step 1: Add Dependency","slug":"step-1-add-dependency","link":"#step-1-add-dependency","children":[]},{"level":2,"title":"Step 2: Install Shards","slug":"step-2-install-shards","link":"#step-2-install-shards","children":[]},{"level":2,"title":"Step 3: Configure Database","slug":"step-3-configure-database","link":"#step-3-configure-database","children":[]},{"level":2,"title":"Step 4: Create the Schema","slug":"step-4-create-the-schema","link":"#step-4-create-the-schema","children":[]}],"relativePath":"main/Guides/Installation.md","lastUpdated":1723940574000}'),t={name:"main/Guides/Installation.md"},l=n(`

2. Installation Guide

To get started with CQL in your Crystal project, follow these steps:

Step 1: Add Dependency

First, add CQL to your project by including it in the shard.yml file:

yaml
dependencies:
   cql:
     github: azutoolkit/cql
     version: "~> 0.1.0"
diff --git a/docs/assets/main_Guides_Installation.md.46d7f52b.lean.js b/docs/assets/main_Guides_Installation.md.52de62ac.lean.js
similarity index 66%
rename from docs/assets/main_Guides_Installation.md.46d7f52b.lean.js
rename to docs/assets/main_Guides_Installation.md.52de62ac.lean.js
index 3501298..3881f54 100644
--- a/docs/assets/main_Guides_Installation.md.46d7f52b.lean.js
+++ b/docs/assets/main_Guides_Installation.md.52de62ac.lean.js
@@ -1 +1 @@
-import{_ as a,o as e,c as s,S as n}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const m=JSON.parse('{"title":"Installation","description":"","frontmatter":{"title":"Installation"},"headers":[{"level":2,"title":"Step 1: Add Dependency","slug":"step-1-add-dependency","link":"#step-1-add-dependency","children":[]},{"level":2,"title":"Step 2: Install Shards","slug":"step-2-install-shards","link":"#step-2-install-shards","children":[]},{"level":2,"title":"Step 3: Configure Database","slug":"step-3-configure-database","link":"#step-3-configure-database","children":[]},{"level":2,"title":"Step 4: Create the Schema","slug":"step-4-create-the-schema","link":"#step-4-create-the-schema","children":[]}],"relativePath":"main/Guides/Installation.md","lastUpdated":null}'),t={name:"main/Guides/Installation.md"},l=n("",14),o=[l];function p(i,c,r,d,h,u){return e(),s("div",null,o)}const D=a(t,[["render",p]]);export{m as __pageData,D as default};
+import{_ as a,o as e,c as s,S as n}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const m=JSON.parse('{"title":"Installation","description":"","frontmatter":{"title":"Installation"},"headers":[{"level":2,"title":"Step 1: Add Dependency","slug":"step-1-add-dependency","link":"#step-1-add-dependency","children":[]},{"level":2,"title":"Step 2: Install Shards","slug":"step-2-install-shards","link":"#step-2-install-shards","children":[]},{"level":2,"title":"Step 3: Configure Database","slug":"step-3-configure-database","link":"#step-3-configure-database","children":[]},{"level":2,"title":"Step 4: Create the Schema","slug":"step-4-create-the-schema","link":"#step-4-create-the-schema","children":[]}],"relativePath":"main/Guides/Installation.md","lastUpdated":1723940574000}'),t={name:"main/Guides/Installation.md"},l=n("",14),o=[l];function p(i,c,r,d,h,u){return e(),s("div",null,o)}const D=a(t,[["render",p]]);export{m as __pageData,D as default};
diff --git a/docs/assets/main_Guides_Introduction.md.16a7a8bb.js b/docs/assets/main_Guides_Introduction.md.16a7a8bb.js
new file mode 100644
index 0000000..435fb6a
--- /dev/null
+++ b/docs/assets/main_Guides_Introduction.md.16a7a8bb.js
@@ -0,0 +1 @@
+import{_ as e,o as a,c as t,S as s}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const m=JSON.parse('{"title":"Introduction & Overview","description":"","frontmatter":{"title":"Introduction & Overview"},"headers":[{"level":2,"title":"Purpose of CQL","slug":"purpose-of-cql","link":"#purpose-of-cql","children":[{"level":3,"title":"Key Features","slug":"key-features","link":"#key-features","children":[]},{"level":3,"title":"Supported Databases","slug":"supported-databases","link":"#supported-databases","children":[]},{"level":3,"title":"Use Cases","slug":"use-cases","link":"#use-cases","children":[]}]}],"relativePath":"main/Guides/Introduction.md","lastUpdated":1723940574000}'),i={name:"main/Guides/Introduction.md"},r=s('

Introduction & Overview

Purpose of CQL

CQL (Crystal Query Language) is a powerful tool designed for developers working with the Crystal programming language. It provides a streamlined interface for interacting with SQL databases, combining the flexibility of raw SQL with the safety and clarity of Crystal’s type system. CQL simplifies complex database operations, making it easier to perform CRUD (Create, Read, Update, Delete) operations, manage database schemas, and execute advanced queries.

Key Features

  • Database-agnostic: CQL supports multiple databases, ensuring flexibility in project development.
  • Active Record Pattern: Integrates seamlessly with Crystal structs, allowing developers to work with database records as native Crystal objects.
  • Query Builder: Provides an intuitive API for constructing complex SQL queries, including joins, subqueries, and transactions.
  • Associations: CQL supports defining relationships between tables (has_many, belongs_to, many_to_many), making it easy to navigate related data.
  • Migrations: Facilitates schema evolution by allowing developers to create and manage database migrations.

Supported Databases

CQL is designed to work with a range of SQL databases, including:

  • PostgreSQL: Full support with advanced features like JSONB, arrays, and full-text search.
  • MySQL: Support for common MySQL operations, though more advanced features may be limited.
  • SQLite: Lightweight database support for development and testing environments.

Use Cases

CQL is ideal for developers looking to integrate Crystal with SQL databases, providing a robust toolset for building data-driven applications. Whether you are developing a small-scale application or a large enterprise system, CQL offers the performance and scalability needed to manage your database operations efficiently.

',10),o=[r];function n(l,d,c,u,p,g){return a(),t("div",null,o)}const v=e(i,[["render",n]]);export{m as __pageData,v as default}; diff --git a/docs/assets/main_Guides_Introduction.md.d3bbe032.lean.js b/docs/assets/main_Guides_Introduction.md.16a7a8bb.lean.js similarity index 58% rename from docs/assets/main_Guides_Introduction.md.d3bbe032.lean.js rename to docs/assets/main_Guides_Introduction.md.16a7a8bb.lean.js index 3c6e44a..e4c139b 100644 --- a/docs/assets/main_Guides_Introduction.md.d3bbe032.lean.js +++ b/docs/assets/main_Guides_Introduction.md.16a7a8bb.lean.js @@ -1 +1 @@ -import{_ as e,o as a,c as t,S as s}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const m=JSON.parse('{"title":"Introduction & Overview","description":"","frontmatter":{"title":"Introduction & Overview"},"headers":[{"level":2,"title":"Purpose of CQL","slug":"purpose-of-cql","link":"#purpose-of-cql","children":[{"level":3,"title":"Key Features","slug":"key-features","link":"#key-features","children":[]},{"level":3,"title":"Supported Databases","slug":"supported-databases","link":"#supported-databases","children":[]},{"level":3,"title":"Use Cases","slug":"use-cases","link":"#use-cases","children":[]}]}],"relativePath":"main/Guides/Introduction.md","lastUpdated":null}'),i={name:"main/Guides/Introduction.md"},r=s("",10),o=[r];function n(l,d,c,u,p,g){return a(),t("div",null,o)}const v=e(i,[["render",n]]);export{m as __pageData,v as default}; +import{_ as e,o as a,c as t,S as s}from"./app.70057064.js";import"./chunks/theme.88596d17.js";const m=JSON.parse('{"title":"Introduction & Overview","description":"","frontmatter":{"title":"Introduction & Overview"},"headers":[{"level":2,"title":"Purpose of CQL","slug":"purpose-of-cql","link":"#purpose-of-cql","children":[{"level":3,"title":"Key Features","slug":"key-features","link":"#key-features","children":[]},{"level":3,"title":"Supported Databases","slug":"supported-databases","link":"#supported-databases","children":[]},{"level":3,"title":"Use Cases","slug":"use-cases","link":"#use-cases","children":[]}]}],"relativePath":"main/Guides/Introduction.md","lastUpdated":1723940574000}'),i={name:"main/Guides/Introduction.md"},r=s("",10),o=[r];function n(l,d,c,u,p,g){return a(),t("div",null,o)}const v=e(i,[["render",n]]);export{m as __pageData,v as default}; diff --git a/docs/assets/main_Guides_Introduction.md.d3bbe032.js b/docs/assets/main_Guides_Introduction.md.d3bbe032.js deleted file mode 100644 index c242d93..0000000 --- a/docs/assets/main_Guides_Introduction.md.d3bbe032.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,o as a,c as t,S as s}from"./app.19d9338b.js";import"./chunks/theme.a19b6002.js";const m=JSON.parse('{"title":"Introduction & Overview","description":"","frontmatter":{"title":"Introduction & Overview"},"headers":[{"level":2,"title":"Purpose of CQL","slug":"purpose-of-cql","link":"#purpose-of-cql","children":[{"level":3,"title":"Key Features","slug":"key-features","link":"#key-features","children":[]},{"level":3,"title":"Supported Databases","slug":"supported-databases","link":"#supported-databases","children":[]},{"level":3,"title":"Use Cases","slug":"use-cases","link":"#use-cases","children":[]}]}],"relativePath":"main/Guides/Introduction.md","lastUpdated":null}'),i={name:"main/Guides/Introduction.md"},r=s('

Introduction & Overview

Purpose of CQL

CQL (Crystal Query Language) is a powerful tool designed for developers working with the Crystal programming language. It provides a streamlined interface for interacting with SQL databases, combining the flexibility of raw SQL with the safety and clarity of Crystal’s type system. CQL simplifies complex database operations, making it easier to perform CRUD (Create, Read, Update, Delete) operations, manage database schemas, and execute advanced queries.

Key Features

  • Database-agnostic: CQL supports multiple databases, ensuring flexibility in project development.
  • Active Record Pattern: Integrates seamlessly with Crystal structs, allowing developers to work with database records as native Crystal objects.
  • Query Builder: Provides an intuitive API for constructing complex SQL queries, including joins, subqueries, and transactions.
  • Associations: CQL supports defining relationships between tables (has_many, belongs_to, many_to_many), making it easy to navigate related data.
  • Migrations: Facilitates schema evolution by allowing developers to create and manage database migrations.

Supported Databases

CQL is designed to work with a range of SQL databases, including:

  • PostgreSQL: Full support with advanced features like JSONB, arrays, and full-text search.
  • MySQL: Support for common MySQL operations, though more advanced features may be limited.
  • SQLite: Lightweight database support for development and testing environments.

Use Cases

CQL is ideal for developers looking to integrate Crystal with SQL databases, providing a robust toolset for building data-driven applications. Whether you are developing a small-scale application or a large enterprise system, CQL offers the performance and scalability needed to manage your database operations efficiently.

',10),o=[r];function n(l,d,c,u,p,g){return a(),t("div",null,o)}const v=e(i,[["render",n]]);export{m as __pageData,v as default}; diff --git a/docs/hashmap.json b/docs/hashmap.json index d5a6619..c1e20c5 100644 --- a/docs/hashmap.json +++ b/docs/hashmap.json @@ -1 +1 @@ -{"main_cql_adapter.md":"64761c36","index.md":"01ab8dea","main_cql_column.md":"33eb3586","main_cql_error.md":"bce74228","main_cql_foreignkey.md":"419e170a","main_cql_altertable.md":"ef31cf58","main_cql.md":"0fb10718","main_cql_delete.md":"bf02e9a6","main_cql_insert.md":"daf9a018","main_cql_migrator_migrationrecord.md":"83ba86ec","main_cql_primarykeytype.md":"a3984ab5","main_cql_migrator.md":"5a68f1e4","main_cql_relations_belongsto.md":"89f434a5","main_cql_primarykey.md":"124148d7","main_cql_migration.md":"8b1eb018","main_cql_relations.md":"2c142ec3","main_cql_relations_manytomany.md":"35eda857","main_cql_relations_hasone.md":"92a5bef9","main_cql_relations_hasmany.md":"e6f16a94","main_cql_relations_collection.md":"ad0d1706","main_cql_relations_manycollection.md":"b063b8e4","main_cql_schema.md":"47d48e43","main_cql_record.md":"66c3399d","main_cql_repository.md":"a57121a0","main_cql_query.md":"d4182774","main_guides.md":"bc486650","main_cql__index.md":"e62d8c9a","main_guides_coreconcepts_schemas.md":"068c4d1d","main_guides_coreconcepts.md":"19020713","main_guides_installation.md":"46d7f52b","main_guides_introduction.md":"d3bbe032","main_cql_update.md":"6a2e093e","main_cql_table.md":"0c401476"} +{"main_cql_relations_belongsto.md":"21e1209a","main_cql_relations_manytomany.md":"d0457f86","main_cql_relations_hasone.md":"3091b0a2","main_cql_migration.md":"2dc49fe1","main_cql_relations.md":"4ad49e17","main_cql_migrator_migrationrecord.md":"fa74ed80","main_cql_foreignkey.md":"40555aa1","main_cql_column.md":"f756a2ee","main_cql_altertable.md":"bafd4126","main_cql.md":"654b6a18","main_cql_relations_hasmany.md":"b1d57567","main_cql_migrator.md":"a62219bc","main_guides_coreconcepts.md":"70ee820a","main_cql_error.md":"6a11b4b7","main_cql__index.md":"a4a8b6b3","main_guides.md":"cd4b918a","main_cql_primarykey.md":"ae64f81d","main_cql_relations_manycollection.md":"59e9d786","main_cql_insert.md":"9423888f","main_cql_primarykeytype.md":"a6dc8024","main_cql_adapter.md":"9766ee18","main_cql_repository.md":"f6c7bdb4","main_cql_relations_collection.md":"6aeb93ca","main_cql_schema.md":"c7bffc60","main_cql_delete.md":"18a0bc7d","index.md":"a4e2d95b","main_guides_introduction.md":"16a7a8bb","main_cql_record.md":"e2316d6b","main_cql_update.md":"06ebbdf5","main_guides_installation.md":"52de62ac","main_guides_coreconcepts_schemas.md":"1a629e7b","main_cql_table.md":"e3cf3370","main_cql_query.md":"a0f5a31f"} diff --git a/docs/index.html b/docs/index.html index 7794021..f6bf6de 100644 --- a/docs/index.html +++ b/docs/index.html @@ -6,9 +6,9 @@ Home | Cql Documentation - - - + + + @@ -154,8 +154,8 @@ end end

Documentation

Detailed API documentation is available at CQL Documentation.

Contributing

Contributions are welcome! To contribute:

  1. Fork this repository.
  2. Create your feature branch: git checkout -b my-new-feature.
  3. Commit your changes: git commit -am 'Add some feature'.
  4. Push to the branch: git push origin my-new-feature.
  5. Create a new Pull Request.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Acknowledgments

Thanks to all the contributors who helped in the development of this project.

Last updated:

- - + + \ No newline at end of file diff --git a/docs/main/Cql.html b/docs/main/Cql.html index 548087f..08d3104 100644 --- a/docs/main/Cql.html +++ b/docs/main/Cql.html @@ -6,9 +6,9 @@ Cql | Cql Documentation - - - + + + @@ -153,9 +153,9 @@ def initialize(@movie_id : Int64, @actor_id : Int64) end end -
- - + + + \ No newline at end of file diff --git a/docs/main/Cql/Adapter.html b/docs/main/Cql/Adapter.html index 8b49209..9e06640 100644 --- a/docs/main/Cql/Adapter.html +++ b/docs/main/Cql/Adapter.html @@ -6,9 +6,9 @@ Cql::Adapter | Cql Documentation - - - + + + @@ -18,8 +18,8 @@

Postgres

crystal
2
 

Instance Methods

def my_sql?

def postgres?

def sql_type(type) : String

Returns the SQL type for the given type. @param type [Type] the type @return [String] the SQL type Example Getting the SQL type

crystal
Cql::Adapter::Sqlite.sql_type(Int32) # => "INTEGER"
 

def sqlite?

:::

- - + + \ No newline at end of file diff --git a/docs/main/Cql/AlterTable.html b/docs/main/Cql/AlterTable.html index 098fbf0..c23eeb1 100644 --- a/docs/main/Cql/AlterTable.html +++ b/docs/main/Cql/AlterTable.html @@ -6,9 +6,9 @@ Cql::AlterTable | Cql Documentation - - - + + + @@ -32,8 +32,8 @@

def rename_table(new_name : Symbol)

Renames the table.

  • @param new_name [Symbol] the new name for the table

Example Renaming the table

crystal
rename_table(:new_table_name)
 

def to_sql(visitor : Expression::Visitor)

Converts the alter table actions to SQL.

  • @param visitor [Expression::Visitor] the visitor to generate SQL
  • @return [String] the generated SQL

Example Generating SQL for alter table actions

crystal
sql = to_sql(visitor)
 

:::

- - + + \ No newline at end of file diff --git a/docs/main/Cql/Column.html b/docs/main/Cql/Column.html index d9b5554..3981c7a 100644 --- a/docs/main/Cql/Column.html +++ b/docs/main/Cql/Column.html @@ -6,9 +6,9 @@ Cql::Column(T) | Cql Documentation - - - + + + @@ -25,8 +25,8 @@

def validate!(value)

Validate the value

  • @param value [DB::Any] The value to validate

Example

crystal
column = Cql::Column.new(:name, String)
 column.validate!("John")
 

:::

- - + + \ No newline at end of file diff --git a/docs/main/Cql/Delete.html b/docs/main/Cql/Delete.html index 216e1a1..0cb78f5 100644 --- a/docs/main/Cql/Delete.html +++ b/docs/main/Cql/Delete.html @@ -6,9 +6,9 @@ Cql::Delete | Cql Documentation - - - + + + @@ -48,8 +48,8 @@ .from(:users) .back(:name, :age)

:::

- - + + \ No newline at end of file diff --git a/docs/main/Cql/Error.html b/docs/main/Cql/Error.html index 5105555..6b35886 100644 --- a/docs/main/Cql/Error.html +++ b/docs/main/Cql/Error.html @@ -6,17 +6,17 @@ Cql::Error | Cql Documentation - - - + + +
Skip to content
On this page

class Cql::Error

Exception < Reference < Object

Error class This class represents an error in the Cql library It provides a message describing the error

Example Raising an error

crystal
raise Cql::Error.new("Something went wrong")
 
Table of Contents

Constructors

def new(message : String)

:::

- - + + \ No newline at end of file diff --git a/docs/main/Cql/ForeignKey.html b/docs/main/Cql/ForeignKey.html index df5fe33..abbad28 100644 --- a/docs/main/Cql/ForeignKey.html +++ b/docs/main/Cql/ForeignKey.html @@ -6,9 +6,9 @@ Cql::ForeignKey | Cql Documentation - - - + + + @@ -26,8 +26,8 @@ foreign_key [:user_id], :users, [:id] end
Table of Contents

Constructors

def new(name : Symbol, columns : Array(Symbol), table : Symbol, references : Array(Symbol), on_delete : String = "NO ACTION", on_update : String = "NO ACTION")

:::

- - + + \ No newline at end of file diff --git a/docs/main/Cql/Insert.html b/docs/main/Cql/Insert.html index a979a2f..e3a8820 100644 --- a/docs/main/Cql/Insert.html +++ b/docs/main/Cql/Insert.html @@ -6,9 +6,9 @@ Cql::Insert | Cql Documentation - - - + + + @@ -54,8 +54,8 @@

def values(hash : Hash(Symbol, DB::Any))

Set the values to insert

  • @param hash [Hash(Symbol, DB::Any)] The values to insert
  • @return [Insert] The insert object

Example Inserting a record

crystal
insert.into(:users).values(name: "John", age: 30).commit
 

def values

Set the values to insert

  • @param fields [Hash(Symbol, DB::Any)] The values to insert
  • @return [Insert] The insert object

Example Inserting a record

crystal
insert.into(:users).values(name: "John", age: 30).commit
 

:::

- - + + \ No newline at end of file diff --git a/docs/main/Cql/Migration.html b/docs/main/Cql/Migration.html index 9b1055a..4ddffa4 100644 --- a/docs/main/Cql/Migration.html +++ b/docs/main/Cql/Migration.html @@ -6,9 +6,9 @@ Cql::Migration | Cql Documentation - - - + + + @@ -49,8 +49,8 @@

Example Listing rolled back migrations

crystal
migrator.print_rolled_back_migrations
 

Example Listing the last migration

crystal
migrator.last
 
Table of Contents

Constructors

def new(schema : Schema)

Instance Methods

def down

def schema

def up

:::

- - + + \ No newline at end of file diff --git a/docs/main/Cql/Migrator.html b/docs/main/Cql/Migrator.html index 0cdcd36..ee30a4f 100644 --- a/docs/main/Cql/Migrator.html +++ b/docs/main/Cql/Migrator.html @@ -6,9 +6,9 @@ Cql::Migrator | Cql Documentation - - - + + + @@ -37,8 +37,8 @@

def schema

def up(steps : Int32 = Migrator.migrations.size)

Applies the pending migrations.

  • @param steps [Int32] the number of migrations to apply (default: all) Example Applying migrations
crystal
migrator.up
 

def up_to(version : Int64)

Applies migrations up to a specific version.

  • @param version [Int64] the version to apply up to Example Applying to a specific version
crystal
migrator.up_to(1_i64)
 

:::

- - + + \ No newline at end of file diff --git a/docs/main/Cql/Migrator/MigrationRecord.html b/docs/main/Cql/Migrator/MigrationRecord.html index 0032928..513dcd4 100644 --- a/docs/main/Cql/Migrator/MigrationRecord.html +++ b/docs/main/Cql/Migrator/MigrationRecord.html @@ -6,17 +6,17 @@ Cql::Migrator::MigrationRecord | Cql Documentation - - - + + +
Skip to content
On this page

class Cql::Migrator::MigrationRecord

DB::Mappable < DB::Serializable < Reference < Object

Represents a migration record. @field id [Int64] the migration record id @field name [String] the migration name @field version [Int64] the migration version @field created_at [Time] the creation time @field updated_at [Time] the update time Example Creating a migration record

crystal
record = Cql::MigrationRecord.new(0_i64, "CreateUsersTable", 1_i64)
 
Table of Contents

Included Modules

DB::Mappable, DB::Serializable

Constructors

def new(id : Int64, name : String, version : Int64, created_at : Time = Time.local, updated_at : Time = Time.local)

def new(rs : DB::ResultSet)

Class Methods

def from_rs(rs : DB::ResultSet)

Instance Methods

def created_at

def id

def name

def updated_at

def version

:::

- - + + \ No newline at end of file diff --git a/docs/main/Cql/PrimaryKey.html b/docs/main/Cql/PrimaryKey.html index 0f009d7..78067fa 100644 --- a/docs/main/Cql/PrimaryKey.html +++ b/docs/main/Cql/PrimaryKey.html @@ -6,9 +6,9 @@ Cql::PrimaryKey(T) | Cql Documentation - - - + + + @@ -18,8 +18,8 @@ column :name, String end
Table of Contents

Constructors

def new(name : Symbol = :id, type : PrimaryKeyType = Int64.class, as_name : String | Nil = nil, auto_increment : Bool = true, unique : Bool = true, default : DB::Any = nil)

Instance Methods

def as_name

def auto_increment?

def unique?

:nodoc:

:::

- - + + \ No newline at end of file diff --git a/docs/main/Cql/PrimaryKeyType.html b/docs/main/Cql/PrimaryKeyType.html index 0ac01d1..566235e 100644 --- a/docs/main/Cql/PrimaryKeyType.html +++ b/docs/main/Cql/PrimaryKeyType.html @@ -6,16 +6,16 @@ Cql::PrimaryKeyType | Cql Documentation - - - + + + - - + + \ No newline at end of file diff --git a/docs/main/Cql/Query.html b/docs/main/Cql/Query.html index c5bdcf4..abf3f2e 100644 --- a/docs/main/Cql/Query.html +++ b/docs/main/Cql/Query.html @@ -6,9 +6,9 @@ Cql::Query | Cql Documentation - - - + + + @@ -112,8 +112,8 @@

def where

Adds WHERE conditions using a block.

  • @yield [FilterBuilder] The block to build the conditions
  • @return [Query] The query object
  • @raise [Exception] if the block is not provided
  • @raise [Exception] if the block does not return an expression
  • @raise [Exception] if the column does not exist

Example

crystal
query.from(:users).where { |w| w.name == "John" }
 => "SELECT * FROM users WHERE name = 'John'"
 

Macros

macro method_missing(call)

:::

- - + + \ No newline at end of file diff --git a/docs/main/Cql/Record.html b/docs/main/Cql/Record.html index 09bee34..02007c4 100644 --- a/docs/main/Cql/Record.html +++ b/docs/main/Cql/Record.html @@ -6,9 +6,9 @@ Cql::Record(T, Pk) | Cql Documentation - - - + + + @@ -73,8 +73,8 @@ bob.update

def update

Update the record with the given fields

  • @param fields [Hash(Symbol, DB::Any)] The fields to update
  • @return [Nil]

Example Updating the record

crystal
user.update(name: "Alice", email: " [email protected]")
 

:::

- - + + \ No newline at end of file diff --git a/docs/main/Cql/Relations.html b/docs/main/Cql/Relations.html index e5eb26a..8967d4e 100644 --- a/docs/main/Cql/Relations.html +++ b/docs/main/Cql/Relations.html @@ -6,16 +6,16 @@ Cql::Relations | Cql Documentation - - - + + + - - + + \ No newline at end of file diff --git a/docs/main/Cql/Relations/BelongsTo.html b/docs/main/Cql/Relations/BelongsTo.html index f75f37c..1cd1cfb 100644 --- a/docs/main/Cql/Relations/BelongsTo.html +++ b/docs/main/Cql/Relations/BelongsTo.html @@ -6,16 +6,16 @@ Cql::Relations::BelongsTo | Cql Documentation - - - + + + - - + + \ No newline at end of file diff --git a/docs/main/Cql/Relations/Collection.html b/docs/main/Cql/Relations/Collection.html index e46c310..feb7df1 100644 --- a/docs/main/Cql/Relations/Collection.html +++ b/docs/main/Cql/Relations/Collection.html @@ -6,9 +6,9 @@ Cql::Relations::Collection(Target, Pk) | Cql Documentation - - - + + + @@ -83,8 +83,8 @@

def size

Returns the number of associated records for the parent record

  • return : Int64

Example

crystal
movie.actors.size
 => 1
 

Macros

macro method_missing(call)

:::

- - + + \ No newline at end of file diff --git a/docs/main/Cql/Relations/HasMany.html b/docs/main/Cql/Relations/HasMany.html index d26f0a2..4737340 100644 --- a/docs/main/Cql/Relations/HasMany.html +++ b/docs/main/Cql/Relations/HasMany.html @@ -6,9 +6,9 @@ Cql::Relations::HasMany | Cql Documentation - - - + + + @@ -20,8 +20,8 @@ has_many :posts, Post, foreign_key: :user_id end
Table of Contents

Macros

macro has_many(name, type, foreign_key, cascade = false)

:::

- - + + \ No newline at end of file diff --git a/docs/main/Cql/Relations/HasOne.html b/docs/main/Cql/Relations/HasOne.html index e8d6eec..4645e10 100644 --- a/docs/main/Cql/Relations/HasOne.html +++ b/docs/main/Cql/Relations/HasOne.html @@ -6,16 +6,16 @@ Cql::Relations::HasOne | Cql Documentation - - - + + + - - + + \ No newline at end of file diff --git a/docs/main/Cql/Relations/ManyCollection.html b/docs/main/Cql/Relations/ManyCollection.html index c333902..63dea9e 100644 --- a/docs/main/Cql/Relations/ManyCollection.html +++ b/docs/main/Cql/Relations/ManyCollection.html @@ -6,9 +6,9 @@ Cql::Relations::ManyCollection(Target, Through, Pk) | Cql Documentation - - - + + + @@ -80,8 +80,8 @@ #<Actor:0x00007f8b3b1b3f00 @id=2, @name="Hugo Weaving">, #<Actor:0x00007f8b3b1b3f00 @id=3, @name="Laurence Fishburne">]

:::

- - + + \ No newline at end of file diff --git a/docs/main/Cql/Relations/ManyToMany.html b/docs/main/Cql/Relations/ManyToMany.html index b687e7a..655c774 100644 --- a/docs/main/Cql/Relations/ManyToMany.html +++ b/docs/main/Cql/Relations/ManyToMany.html @@ -6,9 +6,9 @@ Cql::Relations::ManyToMany | Cql Documentation - - - + + + @@ -33,8 +33,8 @@ property actor_id : Int64 end

:::

- - + + \ No newline at end of file diff --git a/docs/main/Cql/Repository.html b/docs/main/Cql/Repository.html index 07fc03b..bf86106 100644 --- a/docs/main/Cql/Repository.html +++ b/docs/main/Cql/Repository.html @@ -6,9 +6,9 @@ Cql::Repository(T, Pk) | Cql Documentation - - - + + + @@ -45,8 +45,8 @@

def update

def update_all(attrs : Hash(Symbol, DB::Any))

Update all records with given attributes

  • @param attrs [Hash(Symbol, DB::Any)] The attributes to update

Example Updating all records

crystal
user_repo.update_all(active: true)
 

def update_by(where_attrs : Hash(Symbol, DB::Any), update_attrs : Hash(Symbol, DB::Any))

Update records matching where attributes with update attributes

  • @param where_attrs [Hash(Symbol, DB::Any)] The attributes to match
  • @param update_attrs [Hash(Symbol, DB::Any)] The attributes to update

Example Updating records by email

crystal
user_repo.update_by(email: " [email protected]", active: true)
 

:::

- - + + \ No newline at end of file diff --git a/docs/main/Cql/Schema.html b/docs/main/Cql/Schema.html index 62edcec..b6aaca0 100644 --- a/docs/main/Cql/Schema.html +++ b/docs/main/Cql/Schema.html @@ -6,9 +6,9 @@ Cql::Schema | Cql Documentation - - - + + + @@ -49,8 +49,8 @@ end

def tables

  • @return [Hash(Symbol, Table)] the tables in the schema

def update

Creates a new update query for the schema.

  • @return [Update] the new update query Example
crystal
update = schema.update
 

def uri

  • @return [String] the URI of the database

def version

  • @return [String] the version of the schema

Macros

macro method_missing(call)

:::

- - + + \ No newline at end of file diff --git a/docs/main/Cql/Table.html b/docs/main/Cql/Table.html index 6e9b2bd..4dd6f3f 100644 --- a/docs/main/Cql/Table.html +++ b/docs/main/Cql/Table.html @@ -6,9 +6,9 @@ Cql::Table | Cql Documentation - - - + + + @@ -85,8 +85,8 @@ table.truncate_sql => "TRUNCATE TABLE users;"

Macros

macro method_missing(call)

:::

- - + + \ No newline at end of file diff --git a/docs/main/Cql/Update.html b/docs/main/Cql/Update.html index 0ae6e90..772d569 100644 --- a/docs/main/Cql/Update.html +++ b/docs/main/Cql/Update.html @@ -6,9 +6,9 @@ Cql::Update | Cql Documentation - - - + + + @@ -89,8 +89,8 @@ => {"UPDATE users SET name = $1, age = $2 WHERE id = $3", ["John", 30, 1]}

:::

- - + + \ No newline at end of file diff --git a/docs/main/Cql/_index.html b/docs/main/Cql/_index.html index 7d84e32..186b279 100644 --- a/docs/main/Cql/_index.html +++ b/docs/main/Cql/_index.html @@ -6,9 +6,9 @@ Cql::Index | Cql Documentation - - - + + + @@ -23,8 +23,8 @@
Table of Contents

Constructors

def new(table : Table, columns : Array(Symbol), unique : Bool = false, name : String | Nil = nil)

Create a new index instance on a table

  • @param : table (Table) - The table to create the index on
  • @param : columns (Array(Symbol)) - The columns to index
  • @param : unique (Bool) - Whether the index should be unique (default: false)
  • @param : name (String, nil) - The name of the index (default: nil)
  • @return : Nil
  • @raise : Cql::Error if the table does not exist
  • @raise : Cql::Error if the column does not exist

Example

crystal
index = Cql::Index.new(table, [:name, :email], unique: true)
 

Instance Methods

def columns

def index_name

Generate the index name

  • @return : String
  • @raise : Nil

Example

crystal
index_name = index.index_name
 

def name

def name=(name : String | Nil)

def table

def unique?

:::

- - + + \ No newline at end of file diff --git a/docs/main/Guides.html b/docs/main/Guides.html index ca9b587..691b670 100644 --- a/docs/main/Guides.html +++ b/docs/main/Guides.html @@ -6,16 +6,16 @@ Guides | Cql Documentation - - - + + + -
Skip to content
On this page

Guides

The CQL (Crystal Query Language) Toolkit simplifies the management and execution of SQL queries in Crystal. It supports CRUD operations, complex query building, and uses patterns like Active Record and Repository for efficient data management. CQL is compatible with multiple databases, including PostgreSQL. Features include schema definition, query execution, data insertion, updating, and deletion. It also provides support for associations like has_many, belongs_to, and many_to_many.

- - +
Skip to content
On this page

Guides

The CQL (Crystal Query Language) Toolkit simplifies the management and execution of SQL queries in Crystal. It supports CRUD operations, complex query building, and uses patterns like Active Record and Repository for efficient data management. CQL is compatible with multiple databases, including PostgreSQL. Features include schema definition, query execution, data insertion, updating, and deletion. It also provides support for associations like has_many, belongs_to, and many_to_many.

+ + \ No newline at end of file diff --git a/docs/main/Guides/CoreConcepts.html b/docs/main/Guides/CoreConcepts.html index b0e98dd..713959d 100644 --- a/docs/main/Guides/CoreConcepts.html +++ b/docs/main/Guides/CoreConcepts.html @@ -6,16 +6,16 @@ Core Concepts | Cql Documentation - - - + + + -
Skip to content
On this page

3. Core Concepts

CQL’s core concepts revolve around providing developers with tools to efficiently interact with databases through well-structured APIs. These concepts are fundamental to building and manipulating data models, performing queries, and managing transactions. Here's a high-level overview:

  • Schemas: Define the structure of the database, including tables, columns, and data types.
  • CRUD Operations: Simplify creating, reading, updating, and deleting records in the database.
  • Query Builder: Enables constructing SQL queries using Crystal code with features like joins and subqueries.
  • Transactions: Ensure safe and atomic execution of multiple database operations.
- - +
Skip to content
On this page

3. Core Concepts

CQL’s core concepts revolve around providing developers with tools to efficiently interact with databases through well-structured APIs. These concepts are fundamental to building and manipulating data models, performing queries, and managing transactions. Here's a high-level overview:

  • Schemas: Define the structure of the database, including tables, columns, and data types.
  • CRUD Operations: Simplify creating, reading, updating, and deleting records in the database.
  • Query Builder: Enables constructing SQL queries using Crystal code with features like joins and subqueries.
  • Transactions: Ensure safe and atomic execution of multiple database operations.
+ + \ No newline at end of file diff --git a/docs/main/Guides/CoreConcepts/Schemas.html b/docs/main/Guides/CoreConcepts/Schemas.html index 65767df..21f0638 100644 --- a/docs/main/Guides/CoreConcepts/Schemas.html +++ b/docs/main/Guides/CoreConcepts/Schemas.html @@ -6,9 +6,9 @@ Schema Definition | Cql Documentation - - - + + + @@ -53,9 +53,9 @@ AnalyticsDB = Cql::Schema.build(:analytics, adapter: Cql::Adapter::Postgres, uri: ENV["ANALYTICS_DB_URL"]) do # Define analytics schema tables end -

In this example, you define multiple schemas, and the application can easily switch between MainDB and AnalyticsDB depending on which database needs to be queried.

Benefits of Multiple Schemas

  • Improved Organization: Separate business logic data from other concerns like reporting, testing, or archiving.
  • Scalability: Ideal for multi-tenant applications, allowing each tenant to have its schema without interference.

By using CQL’s schema system, you gain not only speed and clarity in your database structure but also flexibility in scaling and organizing your application.

- - +

In this example, you define multiple schemas, and the application can easily switch between MainDB and AnalyticsDB depending on which database needs to be queried.

Benefits of Multiple Schemas

  • Improved Organization: Separate business logic data from other concerns like reporting, testing, or archiving.
  • Scalability: Ideal for multi-tenant applications, allowing each tenant to have its schema without interference.

By using CQL’s schema system, you gain not only speed and clarity in your database structure but also flexibility in scaling and organizing your application.

+ + \ No newline at end of file diff --git a/docs/main/Guides/Installation.html b/docs/main/Guides/Installation.html index a6fc8f0..6883b62 100644 --- a/docs/main/Guides/Installation.html +++ b/docs/main/Guides/Installation.html @@ -6,9 +6,9 @@ Installation | Cql Documentation - - - + + + @@ -19,9 +19,9 @@ version: "~> 0.1.0"

Step 2: Install Shards

Run the following command to install the dependencies:

bash
shards install
 

Step 3: Configure Database

Set up your database connection by specifying the adapter and connection URL. This is done by configuring the database in your code, as follows:

crystal
"postgres://user:password@localhost:5432/database_name"
-

In this example, we’re using PostgreSQL. You can change the URL according to your database (MySQL, SQLite, etc.).

Step 4: Create the Schema

Now you can define your schema and run migrations (explained in later sections).

- - +

In this example, we’re using PostgreSQL. You can change the URL according to your database (MySQL, SQLite, etc.).

Step 4: Create the Schema

Now you can define your schema and run migrations (explained in later sections).

+ + \ No newline at end of file diff --git a/docs/main/Guides/Introduction.html b/docs/main/Guides/Introduction.html index b15111f..4e8bb21 100644 --- a/docs/main/Guides/Introduction.html +++ b/docs/main/Guides/Introduction.html @@ -6,16 +6,16 @@ Introduction & Overview | Cql Documentation - - - + + + -
Skip to content
On this page

Introduction & Overview

Purpose of CQL

CQL (Crystal Query Language) is a powerful tool designed for developers working with the Crystal programming language. It provides a streamlined interface for interacting with SQL databases, combining the flexibility of raw SQL with the safety and clarity of Crystal’s type system. CQL simplifies complex database operations, making it easier to perform CRUD (Create, Read, Update, Delete) operations, manage database schemas, and execute advanced queries.

Key Features

  • Database-agnostic: CQL supports multiple databases, ensuring flexibility in project development.
  • Active Record Pattern: Integrates seamlessly with Crystal structs, allowing developers to work with database records as native Crystal objects.
  • Query Builder: Provides an intuitive API for constructing complex SQL queries, including joins, subqueries, and transactions.
  • Associations: CQL supports defining relationships between tables (has_many, belongs_to, many_to_many), making it easy to navigate related data.
  • Migrations: Facilitates schema evolution by allowing developers to create and manage database migrations.

Supported Databases

CQL is designed to work with a range of SQL databases, including:

  • PostgreSQL: Full support with advanced features like JSONB, arrays, and full-text search.
  • MySQL: Support for common MySQL operations, though more advanced features may be limited.
  • SQLite: Lightweight database support for development and testing environments.

Use Cases

CQL is ideal for developers looking to integrate Crystal with SQL databases, providing a robust toolset for building data-driven applications. Whether you are developing a small-scale application or a large enterprise system, CQL offers the performance and scalability needed to manage your database operations efficiently.

- - +
Skip to content
On this page

Introduction & Overview

Purpose of CQL

CQL (Crystal Query Language) is a powerful tool designed for developers working with the Crystal programming language. It provides a streamlined interface for interacting with SQL databases, combining the flexibility of raw SQL with the safety and clarity of Crystal’s type system. CQL simplifies complex database operations, making it easier to perform CRUD (Create, Read, Update, Delete) operations, manage database schemas, and execute advanced queries.

Key Features

  • Database-agnostic: CQL supports multiple databases, ensuring flexibility in project development.
  • Active Record Pattern: Integrates seamlessly with Crystal structs, allowing developers to work with database records as native Crystal objects.
  • Query Builder: Provides an intuitive API for constructing complex SQL queries, including joins, subqueries, and transactions.
  • Associations: CQL supports defining relationships between tables (has_many, belongs_to, many_to_many), making it easy to navigate related data.
  • Migrations: Facilitates schema evolution by allowing developers to create and manage database migrations.

Supported Databases

CQL is designed to work with a range of SQL databases, including:

  • PostgreSQL: Full support with advanced features like JSONB, arrays, and full-text search.
  • MySQL: Support for common MySQL operations, though more advanced features may be limited.
  • SQLite: Lightweight database support for development and testing environments.

Use Cases

CQL is ideal for developers looking to integrate Crystal with SQL databases, providing a robust toolset for building data-driven applications. Whether you are developing a small-scale application or a large enterprise system, CQL offers the performance and scalability needed to manage your database operations efficiently.

+ + \ No newline at end of file