@oaknational/oak-curriculum-schema-v2 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/cjs/index.cjs CHANGED
@@ -1,10 +1,10 @@
1
- "use strict";var e=require("drizzle-zod"),t=require("drizzle-orm"),i=require("zod");const n=Symbol.for("drizzle:entityKind");function s(e,t){if(!e||"object"!=typeof e)return!1;if(e instanceof t)return!0;if(!Object.prototype.hasOwnProperty.call(t,n))throw new Error(`Class "${t.name??"<unknown>"}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let i=Object.getPrototypeOf(e).constructor;if(i)for(;i;){if(n in i&&i[n]===t[n])return!0;i=Object.getPrototypeOf(i)}return!1}class r{constructor(e,t){this.table=e,this.config=t,this.name=t.name,this.keyAsName=t.keyAsName,this.notNull=t.notNull,this.default=t.default,this.defaultFn=t.defaultFn,this.onUpdateFn=t.onUpdateFn,this.hasDefault=t.hasDefault,this.primary=t.primaryKey,this.isUnique=t.isUnique,this.uniqueName=t.uniqueName,this.uniqueType=t.uniqueType,this.dataType=t.dataType,this.columnType=t.columnType,this.generated=t.generated,this.generatedIdentity=t.generatedIdentity}static[n]="Column";name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue(e){return e}mapToDriverValue(e){return e}shouldDisableInsert(){return void 0!==this.config.generated&&"byDefault"!==this.config.generated.type}}class o{static[n]="ColumnBuilder";config;constructor(e,t,i){this.config={name:e,keyAsName:""===e,notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:t,columnType:i,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(e){return this.config.default=e,this.config.hasDefault=!0,this}$defaultFn(e){return this.config.defaultFn=e,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(e){return this.config.onUpdateFn=e,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(e){""===this.config.name&&(this.config.name=e)}}const a=Symbol.for("drizzle:Name");class l{static[n]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(e,t){this.reference=()=>{const{name:t,columns:i,foreignColumns:n}=e();return{name:t,columns:i,foreignTable:n[0].table,foreignColumns:n}},t&&(this._onUpdate=t.onUpdate,this._onDelete=t.onDelete)}onUpdate(e){return this._onUpdate=void 0===e?"no action":e,this}onDelete(e){return this._onDelete=void 0===e?"no action":e,this}build(e){return new u(e,this)}}class u{constructor(e,t){this.table=e,this.reference=t.reference,this.onUpdate=t._onUpdate,this.onDelete=t._onDelete}static[n]="PgForeignKey";reference;onUpdate;onDelete;getName(){const{name:e,columns:t,foreignColumns:i}=this.reference(),n=t.map(e=>e.name),s=i.map(e=>e.name),r=[this.table[a],...n,i[0].table[a],...s];return e??`${r.join("_")}_fk`}}function c(e){return new l(function(){const{name:t,columns:i,foreignColumns:n}=e;return{name:t,columns:i,foreignColumns:n}})}function _(e){return new p(e)}function d(e,t){return`${e[a]}_${t.join("_")}_unique`}class m{constructor(e,t){this.name=t,this.columns=e}static[n]="PgUniqueConstraintBuilder";columns;nullsNotDistinctConfig=!1;nullsNotDistinct(){return this.nullsNotDistinctConfig=!0,this}build(e){return new g(e,this.columns,this.nullsNotDistinctConfig,this.name)}}class p{static[n]="PgUniqueOnConstraintBuilder";name;constructor(e){this.name=e}on(...e){return new m(e,this.name)}}class g{constructor(e,t,i,n){this.table=e,this.columns=t,this.name=n??d(this.table,this.columns.map(e=>e.name)),this.nullsNotDistinct=i}static[n]="PgUniqueConstraint";columns;name;nullsNotDistinct=!1;getName(){return this.name}}function f(e,t,i){for(let n=t;n<e.length;n++){const s=e[n];if("\\"!==s){if('"'===s)return[e.slice(t,n).replace(/\\/g,""),n+1];if(!i&&(","===s||"}"===s))return[e.slice(t,n).replace(/\\/g,""),n]}else n++}return[e.slice(t).replace(/\\/g,""),e.length]}function h(e,t=0){const i=[];let n=t,s=!1;for(;n<e.length;){const r=e[n];if(","===r){(s||n===t)&&i.push(""),s=!0,n++;continue}if(s=!1,"\\"===r){n+=2;continue}if('"'===r){const[t,s]=f(e,n+1,!0);i.push(t),n=s;continue}if("}"===r)return[i,n+1];if("{"===r){const[t,s]=h(e,n+1);i.push(t),n=s;continue}const[o,a]=f(e,n,!1);i.push(o),n=a}return[i,n]}function y(e){const[t]=h(e,1);return t}function b(e){return`{${e.map(e=>Array.isArray(e)?b(e):"string"==typeof e?`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`:`${e}`).join(",")}}`}class v extends o{foreignKeyConfigs=[];static[n]="PgColumnBuilder";array(e){return new k(this.config.name,this,e)}references(e,t={}){return this.foreignKeyConfigs.push({ref:e,actions:t}),this}unique(e,t){return this.config.isUnique=!0,this.config.uniqueName=e,this.config.uniqueType=t?.nulls,this}generatedAlwaysAs(e){return this.config.generated={as:e,type:"always",mode:"stored"},this}buildForeignKeys(e,t){return this.foreignKeyConfigs.map(({ref:i,actions:n})=>function(e,...t){return e(...t)}((i,n)=>{const s=new l(()=>{const t=i();return{columns:[e],foreignColumns:[t]}});return n.onUpdate&&s.onUpdate(n.onUpdate),n.onDelete&&s.onDelete(n.onDelete),s.build(t)},i,n))}buildExtraConfigColumn(e){return new N(e,this.config)}}class w extends r{constructor(e,t){t.uniqueName||(t.uniqueName=d(e,[t.name])),super(e,t),this.table=e}static[n]="PgColumn"}class N extends w{static[n]="ExtraConfigColumn";getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??"asc",nulls:this.config.nulls??"last",opClass:this.config.opClass};defaultConfig={order:"asc",nulls:"last",opClass:void 0};asc(){return this.indexConfig.order="asc",this}desc(){return this.indexConfig.order="desc",this}nullsFirst(){return this.indexConfig.nulls="first",this}nullsLast(){return this.indexConfig.nulls="last",this}op(e){return this.indexConfig.opClass=e,this}}class S{static[n]="IndexedColumn";constructor(e,t,i,n){this.name=e,this.keyAsName=t,this.type=i,this.indexConfig=n}name;keyAsName;type;indexConfig}class k extends v{static[n]="PgArrayBuilder";constructor(e,t,i){super(e,"array","PgArray"),this.config.baseBuilder=t,this.config.size=i}build(e){const t=this.config.baseBuilder.build(e);return new x(e,this.config,t)}}class x extends w{constructor(e,t,i,n){super(e,t),this.baseColumn=i,this.range=n,this.size=t.size}size;static[n]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${"number"==typeof this.size?this.size:""}]`}mapFromDriverValue(e){return"string"==typeof e&&(e=y(e)),e.map(e=>this.baseColumn.mapFromDriverValue(e))}mapToDriverValue(e,t=!1){const i=e.map(e=>null===e?null:s(this.baseColumn,x)?this.baseColumn.mapToDriverValue(e,!0):this.baseColumn.mapToDriverValue(e));return t?i:b(i)}}class C extends v{static[n]="PgEnumObjectColumnBuilder";constructor(e,t){super(e,"string","PgEnumObjectColumn"),this.config.enum=t}build(e){return new q(e,this.config)}}class q extends w{static[n]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(e,t){super(e,t),this.enum=t.enum}getSQLType(){return this.enum.enumName}}const j=Symbol.for("drizzle:isPgEnum");class $ extends v{static[n]="PgEnumColumnBuilder";constructor(e,t){super(e,"string","PgEnumColumn"),this.config.enum=t}build(e){return new P(e,this.config)}}class P extends w{static[n]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(e,t){super(e,t),this.enum=t.enum}getSQLType(){return this.enum.enumName}}class T{static[n]="Subquery";constructor(e,t,i,n=!1,s=[]){this._={brand:"Subquery",sql:e,selectedFields:t,alias:i,isWith:n,usedTables:s}}}class B extends T{static[n]="WithSubquery"}const D={startActiveSpan:(e,t)=>t()},A=Symbol.for("drizzle:ViewBaseConfig"),O=Symbol.for("drizzle:Schema"),L=Symbol.for("drizzle:Columns"),I=Symbol.for("drizzle:ExtraConfigColumns"),z=Symbol.for("drizzle:OriginalName"),F=Symbol.for("drizzle:BaseName"),Q=Symbol.for("drizzle:IsAlias"),V=Symbol.for("drizzle:ExtraConfigBuilder"),E=Symbol.for("drizzle:IsDrizzleTable");class K{static[n]="Table";static Symbol={Name:a,Schema:O,OriginalName:z,Columns:L,ExtraConfigColumns:I,BaseName:F,IsAlias:Q,ExtraConfigBuilder:V};[a];[z];[O];[L];[I];[F];[Q]=!1;[E]=!0;[V]=void 0;constructor(e,t,i){this[a]=this[z]=e,this[O]=t,this[F]=i}}function U(e){return e[a]}function M(e){return`${e[O]??"public"}.${e[a]}`}function J(e){return null!=e&&"function"==typeof e.getSQL}class R{static[n]="StringChunk";value;constructor(e){this.value=Array.isArray(e)?e:[e]}getSQL(){return new W([this])}}class W{constructor(e){this.queryChunks=e;for(const t of e)if(s(t,K)){const e=t[K.Symbol.Schema];this.usedTables.push(void 0===e?t[K.Symbol.Name]:e+"."+t[K.Symbol.Name])}}static[n]="SQL";decoder=G;shouldInlineParams=!1;usedTables=[];append(e){return this.queryChunks.push(...e.queryChunks),this}toQuery(e){return D.startActiveSpan("drizzle.buildSQL",t=>{const i=this.buildQueryFromSourceParams(this.queryChunks,e);return t?.setAttributes({"drizzle.query.text":i.sql,"drizzle.query.params":JSON.stringify(i.params)}),i})}buildQueryFromSourceParams(e,t){const i=Object.assign({},t,{inlineParams:t.inlineParams||this.shouldInlineParams,paramStartIndex:t.paramStartIndex||{value:0}}),{casing:n,escapeName:o,escapeParam:a,prepareTyping:l,inlineParams:u,paramStartIndex:c}=i;return function(e){const t={sql:"",params:[]};for(const i of e)t.sql+=i.sql,t.params.push(...i.params),i.typings?.length&&(t.typings||(t.typings=[]),t.typings.push(...i.typings));return t}(e.map(e=>{if(s(e,R))return{sql:e.value.join(""),params:[]};if(s(e,H))return{sql:o(e.value),params:[]};if(void 0===e)return{sql:"",params:[]};if(Array.isArray(e)){const t=[new R("(")];for(const[i,n]of e.entries())t.push(n),i<e.length-1&&t.push(new R(", "));return t.push(new R(")")),this.buildQueryFromSourceParams(t,i)}if(s(e,W))return this.buildQueryFromSourceParams(e.queryChunks,{...i,inlineParams:u||e.shouldInlineParams});if(s(e,K)){const t=e[K.Symbol.Schema],i=e[K.Symbol.Name];return{sql:void 0===t||e[Q]?o(i):o(t)+"."+o(i),params:[]}}if(s(e,r)){const i=n.getColumnCasing(e);if("indexes"===t.invokeSource)return{sql:o(i),params:[]};const s=e.table[K.Symbol.Schema];return{sql:e.table[Q]||void 0===s?o(e.table[K.Symbol.Name])+"."+o(i):o(s)+"."+o(e.table[K.Symbol.Name])+"."+o(i),params:[]}}if(s(e,ne)){const t=e[A].schema,i=e[A].name;return{sql:void 0===t||e[A].isAlias?o(i):o(t)+"."+o(i),params:[]}}if(s(e,Y)){if(s(e.value,te))return{sql:a(c.value++,e),params:[e],typings:["none"]};const t=null===e.value?null:e.encoder.mapToDriverValue(e.value);if(s(t,W))return this.buildQueryFromSourceParams([t],i);if(u)return{sql:this.mapInlineParam(t,i),params:[]};let n=["none"];return l&&(n=[l(e.encoder)]),{sql:a(c.value++,t),params:[t],typings:n}}return s(e,te)?{sql:a(c.value++,e),params:[e],typings:["none"]}:s(e,W.Aliased)&&void 0!==e.fieldAlias?{sql:o(e.fieldAlias),params:[]}:s(e,T)?e._.isWith?{sql:o(e._.alias),params:[]}:this.buildQueryFromSourceParams([new R("("),e._.sql,new R(") "),new H(e._.alias)],i):(_=e)&&"function"==typeof _&&j in _&&!0===_[j]?e.schema?{sql:o(e.schema)+"."+o(e.enumName),params:[]}:{sql:o(e.enumName),params:[]}:J(e)?e.shouldOmitSQLParens?.()?this.buildQueryFromSourceParams([e.getSQL()],i):this.buildQueryFromSourceParams([new R("("),e.getSQL(),new R(")")],i):u?{sql:this.mapInlineParam(e,i),params:[]}:{sql:a(c.value++,e),params:[e],typings:["none"]};var _}))}mapInlineParam(e,{escapeString:t}){if(null===e)return"null";if("number"==typeof e||"boolean"==typeof e)return e.toString();if("string"==typeof e)return t(e);if("object"==typeof e){const i=e.toString();return t("[object Object]"===i?JSON.stringify(e):i)}throw new Error("Unexpected param value: "+e)}getSQL(){return this}as(e){return void 0===e?this:new W.Aliased(this,e)}mapWith(e){return this.decoder="function"==typeof e?{mapFromDriverValue:e}:e,this}inlineParams(){return this.shouldInlineParams=!0,this}if(e){return e?this:void 0}}class H{constructor(e){this.value=e}static[n]="Name";brand;getSQL(){return new W([this])}}const G={mapFromDriverValue:e=>e},X={mapToDriverValue:e=>e};class Y{constructor(e,t=X){this.value=e,this.encoder=t}static[n]="Param";brand;getSQL(){return new W([this])}}function Z(e,...t){const i=[];(t.length>0||e.length>0&&""!==e[0])&&i.push(new R(e[0]));for(const[n,s]of t.entries())i.push(s,new R(e[n+1]));return new W(i)}var ee;(ee=Z||(Z={})).empty=function(){return new W([])},ee.fromList=function(e){return new W(e)},ee.raw=function(e){return new W([new R(e)])},ee.join=function(e,t){const i=[];for(const[n,s]of e.entries())n>0&&void 0!==t&&i.push(t),i.push(s);return new W(i)},ee.identifier=function(e){return new H(e)},ee.placeholder=function(e){return new te(e)},ee.param=function(e,t){return new Y(e,t)},(e=>{class t{constructor(e,t){this.sql=e,this.fieldAlias=t}static[n]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new t(this.sql,this.fieldAlias)}}e.Aliased=t})(W||(W={}));class te{constructor(e){this.name=e}static[n]="Placeholder";getSQL(){return new W([this])}}const ie=Symbol.for("drizzle:IsDrizzleView");class ne{static[n]="View";[A];[ie]=!0;constructor({name:e,schema:t,selectedFields:i,query:n}){this[A]={name:e,originalName:e,schema:t,selectedFields:i,query:n,isExisting:!n,isAlias:!1}}getSQL(){return new W([this])}}r.prototype.getSQL=function(){return new W([this])},K.prototype.getSQL=function(){return new W([this])},T.prototype.getSQL=function(){return new W([this])};class se{constructor(e){this.table=e}static[n]="ColumnAliasProxyHandler";get(e,t){return"table"===t?this.table:e[t]}}class re{constructor(e,t){this.alias=e,this.replaceOriginalName=t}static[n]="TableAliasProxyHandler";get(e,t){if(t===K.Symbol.IsAlias)return!0;if(t===K.Symbol.Name)return this.alias;if(this.replaceOriginalName&&t===K.Symbol.OriginalName)return this.alias;if(t===A)return{...e[A],name:this.alias,isAlias:!0};if(t===K.Symbol.Columns){const t=e[K.Symbol.Columns];if(!t)return t;const i={};return Object.keys(t).map(n=>{i[n]=new Proxy(t[n],new se(new Proxy(e,this)))}),i}const i=e[t];return s(i,r)?new Proxy(i,new se(new Proxy(e,this))):i}}function oe(e,t){return new Proxy(e,new re(t,!1))}function ae(e,t){return new Proxy(e,new se(new Proxy(e.table,new re(t,!1))))}function le(e,t){return new W.Aliased(ue(e.sql,t),e.fieldAlias)}function ue(e,t){return Z.join(e.queryChunks.map(e=>s(e,r)?ae(e,t):s(e,W)?ue(e,t):s(e,W.Aliased)?le(e,t):e))}class ce{constructor(e,t){this.name=e,this.value=t}static[n]="PgCheckBuilder";brand;build(e){return new _e(e,this)}}class _e{constructor(e,t){this.table=e,this.name=t.name,this.value=t.value}static[n]="PgCheck";name;value}function de(e,t){return new ce(e,t)}function me(e,t){return Object.entries(e).reduce((e,[i,n])=>{if("string"!=typeof i)return e;const o=t?[...t,i]:[i];return s(n,r)||s(n,W)||s(n,W.Aliased)||s(n,T)?e.push({path:o,field:n}):s(n,K)?e.push(...me(n[K.Symbol.Columns],o)):e.push(...me(n,o)),e},[])}function pe(e,t){const i=Object.keys(e),n=Object.keys(t);if(i.length!==n.length)return!1;for(const[e,t]of i.entries())if(t!==n[e])return!1;return!0}function ge(e){return e[K.Symbol.Columns]}function fe(e){return s(e,T)?e._.alias:s(e,ne)?e[A].name:s(e,W)?void 0:e[K.Symbol.IsAlias]?e[K.Symbol.Name]:e[K.Symbol.BaseName]}function he(e,t){return{name:"string"==typeof e&&e.length>0?e:"",config:"object"==typeof e?e:t}}"undefined"!=typeof TextDecoder&&new TextDecoder;class ye extends v{static[n]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(e){if(e){const{name:t,...i}=e;this.config.generatedIdentity={type:"always",sequenceName:t,sequenceOptions:i}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(e){if(e){const{name:t,...i}=e;this.config.generatedIdentity={type:"byDefault",sequenceName:t,sequenceOptions:i}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}class be extends ye{static[n]="PgBigInt53Builder";constructor(e){super(e,"number","PgBigInt53")}build(e){return new ve(e,this.config)}}class ve extends w{static[n]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(e){return"number"==typeof e?e:Number(e)}}class we extends ye{static[n]="PgBigInt64Builder";constructor(e){super(e,"bigint","PgBigInt64")}build(e){return new Ne(e,this.config)}}class Ne extends w{static[n]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(e){return BigInt(e)}}function Se(e,t){const{name:i,config:n}=he(e,t);return"number"===n.mode?new be(i):new we(i)}class ke extends v{static[n]="PgBigSerial53Builder";constructor(e){super(e,"number","PgBigSerial53"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new xe(e,this.config)}}class xe extends w{static[n]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(e){return"number"==typeof e?e:Number(e)}}class Ce extends v{static[n]="PgBigSerial64Builder";constructor(e){super(e,"bigint","PgBigSerial64"),this.config.hasDefault=!0}build(e){return new qe(e,this.config)}}class qe extends w{static[n]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(e){return BigInt(e)}}function je(e,t){const{name:i,config:n}=he(e,t);return"number"===n.mode?new ke(i):new Ce(i)}class $e extends v{static[n]="PgBooleanBuilder";constructor(e){super(e,"boolean","PgBoolean")}build(e){return new Pe(e,this.config)}}class Pe extends w{static[n]="PgBoolean";getSQLType(){return"boolean"}}function Te(e){return new $e(e??"")}class Be extends v{static[n]="PgCharBuilder";constructor(e,t){super(e,"string","PgChar"),this.config.length=t.length,this.config.enumValues=t.enum}build(e){return new De(e,this.config)}}class De extends w{static[n]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return void 0===this.length?"char":`char(${this.length})`}}function Ae(e,t={}){const{name:i,config:n}=he(e,t);return new Be(i,n)}class Oe extends v{static[n]="PgCidrBuilder";constructor(e){super(e,"string","PgCidr")}build(e){return new Le(e,this.config)}}class Le extends w{static[n]="PgCidr";getSQLType(){return"cidr"}}function Ie(e){return new Oe(e??"")}class ze extends v{static[n]="PgCustomColumnBuilder";constructor(e,t,i){super(e,"custom","PgCustomColumn"),this.config.fieldConfig=t,this.config.customTypeParams=i}build(e){return new Fe(e,this.config)}}class Fe extends w{static[n]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(e,t){super(e,t),this.sqlName=t.customTypeParams.dataType(t.fieldConfig),this.mapTo=t.customTypeParams.toDriver,this.mapFrom=t.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(e){return"function"==typeof this.mapFrom?this.mapFrom(e):e}mapToDriverValue(e){return"function"==typeof this.mapTo?this.mapTo(e):e}}function Qe(e){return(t,i)=>{const{name:n,config:s}=he(t,i);return new ze(n,s,e)}}class Ve extends v{static[n]="PgDateColumnBaseBuilder";defaultNow(){return this.default(Z`now()`)}}class Ee extends Ve{static[n]="PgDateBuilder";constructor(e){super(e,"date","PgDate")}build(e){return new Ke(e,this.config)}}class Ke extends w{static[n]="PgDate";getSQLType(){return"date"}mapFromDriverValue(e){return"string"==typeof e?new Date(e):e}mapToDriverValue(e){return e.toISOString()}}class Ue extends Ve{static[n]="PgDateStringBuilder";constructor(e){super(e,"string","PgDateString")}build(e){return new Me(e,this.config)}}class Me extends w{static[n]="PgDateString";getSQLType(){return"date"}mapFromDriverValue(e){return"string"==typeof e?e:e.toISOString().slice(0,-14)}}function Je(e,t){const{name:i,config:n}=he(e,t);return"date"===n?.mode?new Ee(i):new Ue(i)}class Re extends v{static[n]="PgDoublePrecisionBuilder";constructor(e){super(e,"number","PgDoublePrecision")}build(e){return new We(e,this.config)}}class We extends w{static[n]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(e){return"string"==typeof e?Number.parseFloat(e):e}}function He(e){return new Re(e??"")}class Ge extends v{static[n]="PgInetBuilder";constructor(e){super(e,"string","PgInet")}build(e){return new Xe(e,this.config)}}class Xe extends w{static[n]="PgInet";getSQLType(){return"inet"}}function Ye(e){return new Ge(e??"")}class Ze extends ye{static[n]="PgIntegerBuilder";constructor(e){super(e,"number","PgInteger")}build(e){return new et(e,this.config)}}class et extends w{static[n]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(e){return"string"==typeof e?Number.parseInt(e):e}}function tt(e){return new Ze(e??"")}class it extends v{static[n]="PgIntervalBuilder";constructor(e,t){super(e,"string","PgInterval"),this.config.intervalConfig=t}build(e){return new nt(e,this.config)}}class nt extends w{static[n]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){return`interval${this.fields?` ${this.fields}`:""}${this.precision?`(${this.precision})`:""}`}}function st(e,t={}){const{name:i,config:n}=he(e,t);return new it(i,n)}class rt extends v{static[n]="PgJsonBuilder";constructor(e){super(e,"json","PgJson")}build(e){return new ot(e,this.config)}}class ot extends w{static[n]="PgJson";constructor(e,t){super(e,t)}getSQLType(){return"json"}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){if("string"==typeof e)try{return JSON.parse(e)}catch{return e}return e}}function at(e){return new rt(e??"")}class lt extends v{static[n]="PgJsonbBuilder";constructor(e){super(e,"json","PgJsonb")}build(e){return new ut(e,this.config)}}class ut extends w{static[n]="PgJsonb";constructor(e,t){super(e,t)}getSQLType(){return"jsonb"}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){if("string"==typeof e)try{return JSON.parse(e)}catch{return e}return e}}function ct(e){return new lt(e??"")}class _t extends v{static[n]="PgLineBuilder";constructor(e){super(e,"array","PgLine")}build(e){return new dt(e,this.config)}}class dt extends w{static[n]="PgLine";getSQLType(){return"line"}mapFromDriverValue(e){const[t,i,n]=e.slice(1,-1).split(",");return[Number.parseFloat(t),Number.parseFloat(i),Number.parseFloat(n)]}mapToDriverValue(e){return`{${e[0]},${e[1]},${e[2]}}`}}class mt extends v{static[n]="PgLineABCBuilder";constructor(e){super(e,"json","PgLineABC")}build(e){return new pt(e,this.config)}}class pt extends w{static[n]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(e){const[t,i,n]=e.slice(1,-1).split(",");return{a:Number.parseFloat(t),b:Number.parseFloat(i),c:Number.parseFloat(n)}}mapToDriverValue(e){return`{${e.a},${e.b},${e.c}}`}}function gt(e,t){const{name:i,config:n}=he(e,t);return n?.mode&&"tuple"!==n.mode?new mt(i):new _t(i)}class ft extends v{static[n]="PgMacaddrBuilder";constructor(e){super(e,"string","PgMacaddr")}build(e){return new ht(e,this.config)}}class ht extends w{static[n]="PgMacaddr";getSQLType(){return"macaddr"}}function yt(e){return new ft(e??"")}class bt extends v{static[n]="PgMacaddr8Builder";constructor(e){super(e,"string","PgMacaddr8")}build(e){return new vt(e,this.config)}}class vt extends w{static[n]="PgMacaddr8";getSQLType(){return"macaddr8"}}function wt(e){return new bt(e??"")}class Nt extends v{static[n]="PgNumericBuilder";constructor(e,t,i){super(e,"string","PgNumeric"),this.config.precision=t,this.config.scale=i}build(e){return new St(e,this.config)}}class St extends w{static[n]="PgNumeric";precision;scale;constructor(e,t){super(e,t),this.precision=t.precision,this.scale=t.scale}mapFromDriverValue(e){return"string"==typeof e?e:String(e)}getSQLType(){return void 0!==this.precision&&void 0!==this.scale?`numeric(${this.precision}, ${this.scale})`:void 0===this.precision?"numeric":`numeric(${this.precision})`}}class kt extends v{static[n]="PgNumericNumberBuilder";constructor(e,t,i){super(e,"number","PgNumericNumber"),this.config.precision=t,this.config.scale=i}build(e){return new xt(e,this.config)}}class xt extends w{static[n]="PgNumericNumber";precision;scale;constructor(e,t){super(e,t),this.precision=t.precision,this.scale=t.scale}mapFromDriverValue(e){return"number"==typeof e?e:Number(e)}mapToDriverValue=String;getSQLType(){return void 0!==this.precision&&void 0!==this.scale?`numeric(${this.precision}, ${this.scale})`:void 0===this.precision?"numeric":`numeric(${this.precision})`}}class Ct extends v{static[n]="PgNumericBigIntBuilder";constructor(e,t,i){super(e,"bigint","PgNumericBigInt"),this.config.precision=t,this.config.scale=i}build(e){return new qt(e,this.config)}}class qt extends w{static[n]="PgNumericBigInt";precision;scale;constructor(e,t){super(e,t),this.precision=t.precision,this.scale=t.scale}mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){return void 0!==this.precision&&void 0!==this.scale?`numeric(${this.precision}, ${this.scale})`:void 0===this.precision?"numeric":`numeric(${this.precision})`}}function jt(e,t){const{name:i,config:n}=he(e,t),s=n?.mode;return"number"===s?new kt(i,n?.precision,n?.scale):"bigint"===s?new Ct(i,n?.precision,n?.scale):new Nt(i,n?.precision,n?.scale)}class $t extends v{static[n]="PgPointTupleBuilder";constructor(e){super(e,"array","PgPointTuple")}build(e){return new Pt(e,this.config)}}class Pt extends w{static[n]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(e){if("string"==typeof e){const[t,i]=e.slice(1,-1).split(",");return[Number.parseFloat(t),Number.parseFloat(i)]}return[e.x,e.y]}mapToDriverValue(e){return`(${e[0]},${e[1]})`}}class Tt extends v{static[n]="PgPointObjectBuilder";constructor(e){super(e,"json","PgPointObject")}build(e){return new Bt(e,this.config)}}class Bt extends w{static[n]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(e){if("string"==typeof e){const[t,i]=e.slice(1,-1).split(",");return{x:Number.parseFloat(t),y:Number.parseFloat(i)}}return e}mapToDriverValue(e){return`(${e.x},${e.y})`}}function Dt(e,t){const{name:i,config:n}=he(e,t);return n?.mode&&"tuple"!==n.mode?new Tt(i):new $t(i)}function At(e,t){const i=new ArrayBuffer(8),n=new DataView(i);for(let i=0;i<8;i++)n.setUint8(i,e[t+i]);return n.getFloat64(0,!0)}function Ot(e){const t=function(e){const t=[];for(let i=0;i<e.length;i+=2)t.push(Number.parseInt(e.slice(i,i+2),16));return new Uint8Array(t)}(e);let i=0;const n=t[i];i+=1;const s=new DataView(t.buffer),r=s.getUint32(i,1===n);if(i+=4,536870912&r&&(s.getUint32(i,1===n),i+=4),1==(65535&r)){const e=At(t,i);i+=8;const n=At(t,i);return i+=8,[e,n]}throw new Error("Unsupported geometry type")}class Lt extends v{static[n]="PgGeometryBuilder";constructor(e){super(e,"array","PgGeometry")}build(e){return new It(e,this.config)}}class It extends w{static[n]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(e){return Ot(e)}mapToDriverValue(e){return`point(${e[0]} ${e[1]})`}}class zt extends v{static[n]="PgGeometryObjectBuilder";constructor(e){super(e,"json","PgGeometryObject")}build(e){return new Ft(e,this.config)}}class Ft extends w{static[n]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(e){const t=Ot(e);return{x:t[0],y:t[1]}}mapToDriverValue(e){return`point(${e.x} ${e.y})`}}function Qt(e,t){const{name:i,config:n}=he(e,t);return n?.mode&&"tuple"!==n.mode?new zt(i):new Lt(i)}class Vt extends v{static[n]="PgRealBuilder";constructor(e,t){super(e,"number","PgReal"),this.config.length=t}build(e){return new Et(e,this.config)}}class Et extends w{static[n]="PgReal";constructor(e,t){super(e,t)}getSQLType(){return"real"}mapFromDriverValue=e=>"string"==typeof e?Number.parseFloat(e):e}function Kt(e){return new Vt(e??"")}class Ut extends v{static[n]="PgSerialBuilder";constructor(e){super(e,"number","PgSerial"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new Mt(e,this.config)}}class Mt extends w{static[n]="PgSerial";getSQLType(){return"serial"}}function Jt(e){return new Ut(e??"")}class Rt extends ye{static[n]="PgSmallIntBuilder";constructor(e){super(e,"number","PgSmallInt")}build(e){return new Wt(e,this.config)}}class Wt extends w{static[n]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=e=>"string"==typeof e?Number(e):e}function Ht(e){return new Rt(e??"")}class Gt extends v{static[n]="PgSmallSerialBuilder";constructor(e){super(e,"number","PgSmallSerial"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new Xt(e,this.config)}}class Xt extends w{static[n]="PgSmallSerial";getSQLType(){return"smallserial"}}function Yt(e){return new Gt(e??"")}class Zt extends v{static[n]="PgTextBuilder";constructor(e,t){super(e,"string","PgText"),this.config.enumValues=t.enum}build(e){return new ei(e,this.config)}}class ei extends w{static[n]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function ti(e,t={}){const{name:i,config:n}=he(e,t);return new Zt(i,n)}class ii extends Ve{constructor(e,t,i){super(e,"string","PgTime"),this.withTimezone=t,this.precision=i,this.config.withTimezone=t,this.config.precision=i}static[n]="PgTimeBuilder";build(e){return new ni(e,this.config)}}class ni extends w{static[n]="PgTime";withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){return`time${void 0===this.precision?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function si(e,t={}){const{name:i,config:n}=he(e,t);return new ii(i,n.withTimezone??!1,n.precision)}class ri extends Ve{static[n]="PgTimestampBuilder";constructor(e,t,i){super(e,"date","PgTimestamp"),this.config.withTimezone=t,this.config.precision=i}build(e){return new oi(e,this.config)}}class oi extends w{static[n]="PgTimestamp";withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){return`timestamp${void 0===this.precision?"":` (${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue(e){return"string"==typeof e?new Date(this.withTimezone?e:e+"+0000"):e}mapToDriverValue=e=>e.toISOString()}class ai extends Ve{static[n]="PgTimestampStringBuilder";constructor(e,t,i){super(e,"string","PgTimestampString"),this.config.withTimezone=t,this.config.precision=i}build(e){return new li(e,this.config)}}class li extends w{static[n]="PgTimestampString";withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){return`timestamp${void 0===this.precision?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue(e){if("string"==typeof e)return e;const t=e.toISOString().slice(0,-1).replace("T"," ");if(this.withTimezone){const i=e.getTimezoneOffset();return`${t}${i<=0?"+":"-"}${Math.floor(Math.abs(i)/60).toString().padStart(2,"0")}`}return t}}function ui(e,t={}){const{name:i,config:n}=he(e,t);return"string"===n?.mode?new ai(i,n.withTimezone??!1,n.precision):new ri(i,n?.withTimezone??!1,n?.precision)}class ci extends v{static[n]="PgUUIDBuilder";constructor(e){super(e,"string","PgUUID")}defaultRandom(){return this.default(Z`gen_random_uuid()`)}build(e){return new _i(e,this.config)}}class _i extends w{static[n]="PgUUID";getSQLType(){return"uuid"}}function di(e){return new ci(e??"")}class mi extends v{static[n]="PgVarcharBuilder";constructor(e,t){super(e,"string","PgVarchar"),this.config.length=t.length,this.config.enumValues=t.enum}build(e){return new pi(e,this.config)}}class pi extends w{static[n]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return void 0===this.length?"varchar":`varchar(${this.length})`}}function gi(e,t={}){const{name:i,config:n}=he(e,t);return new mi(i,n)}class fi extends v{static[n]="PgBinaryVectorBuilder";constructor(e,t){super(e,"string","PgBinaryVector"),this.config.dimensions=t.dimensions}build(e){return new hi(e,this.config)}}class hi extends w{static[n]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function yi(e,t){const{name:i,config:n}=he(e,t);return new fi(i,n)}class bi extends v{static[n]="PgHalfVectorBuilder";constructor(e,t){super(e,"array","PgHalfVector"),this.config.dimensions=t.dimensions}build(e){return new vi(e,this.config)}}class vi extends w{static[n]="PgHalfVector";dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){return e.slice(1,-1).split(",").map(e=>Number.parseFloat(e))}}function wi(e,t){const{name:i,config:n}=he(e,t);return new bi(i,n)}class Ni extends v{static[n]="PgSparseVectorBuilder";constructor(e,t){super(e,"string","PgSparseVector"),this.config.dimensions=t.dimensions}build(e){return new Si(e,this.config)}}class Si extends w{static[n]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function ki(e,t){const{name:i,config:n}=he(e,t);return new Ni(i,n)}class xi extends v{static[n]="PgVectorBuilder";constructor(e,t){super(e,"array","PgVector"),this.config.dimensions=t.dimensions}build(e){return new Ci(e,this.config)}}class Ci extends w{static[n]="PgVector";dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){return e.slice(1,-1).split(",").map(e=>Number.parseFloat(e))}}function qi(e,t){const{name:i,config:n}=he(e,t);return new xi(i,n)}class ji{static[n]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(e){return this.then(void 0,e)}finally(e){return this.then(t=>(e?.(),t),t=>{throw e?.(),t})}then(e,t){return this.execute().then(e,t)}}class $i{static[n]="SelectionProxyHandler";config;constructor(e){this.config={...e}}get(e,t){if("_"===t)return{...e._,selectedFields:new Proxy(e._.selectedFields,this)};if(t===A)return{...e[A],selectedFields:new Proxy(e[A].selectedFields,this)};if("symbol"==typeof t)return e[t];const i=(s(e,T)?e._.selectedFields:s(e,ne)?e[A].selectedFields:e)[t];if(s(i,W.Aliased)){if("sql"===this.config.sqlAliasedBehavior&&!i.isSelectionField)return i.sql;const e=i.clone();return e.isSelectionField=!0,e}if(s(i,W)){if("sql"===this.config.sqlBehavior)return i;throw new Error(`You tried to reference "${t}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}return s(i,r)?this.config.alias?new Proxy(i,new se(new Proxy(i.table,new re(this.config.alias,this.config.replaceOriginalName??!1)))):i:"object"!=typeof i||null===i?i:new Proxy(i,new $i(this.config))}}const Pi=Symbol.for("drizzle:PgInlineForeignKeys"),Ti=Symbol.for("drizzle:EnableRLS");class Bi extends K{static[n]="PgTable";static Symbol=Object.assign({},K.Symbol,{InlineForeignKeys:Pi,EnableRLS:Ti});[Pi]=[];[Ti]=!1;[K.Symbol.ExtraConfigBuilder]=void 0;[K.Symbol.ExtraConfigColumns]={}}function Di(e,t,i,n,s=e){const r=new Bi(e,n,s),o="function"==typeof t?t({bigint:Se,bigserial:je,boolean:Te,char:Ae,cidr:Ie,customType:Qe,date:Je,doublePrecision:He,inet:Ye,integer:tt,interval:st,json:at,jsonb:ct,line:gt,macaddr:yt,macaddr8:wt,numeric:jt,point:Dt,geometry:Qt,real:Kt,serial:Jt,smallint:Ht,smallserial:Yt,text:ti,time:si,timestamp:ui,uuid:di,varchar:gi,bit:yi,halfvec:wi,sparsevec:ki,vector:qi}):t,a=Object.fromEntries(Object.entries(o).map(([e,t])=>{const i=t;i.setName(e);const n=i.build(r);return r[Pi].push(...i.buildForeignKeys(n,r)),[e,n]})),l=Object.fromEntries(Object.entries(o).map(([e,t])=>{const i=t;i.setName(e);return[e,i.buildExtraConfigColumn(r)]})),u=Object.assign(r,a);return u[K.Symbol.Columns]=a,u[K.Symbol.ExtraConfigColumns]=l,i&&(u[Bi.Symbol.ExtraConfigBuilder]=i),Object.assign(u,{enableRLS:()=>(u[Bi.Symbol.EnableRLS]=!0,u)})}const Ai=(e,t,i)=>Di(e,t,i,void 0);class Oi{constructor(e,t){this.unique=e,this.name=t}static[n]="PgIndexBuilderOn";on(...e){return new Li(e.map(e=>{if(s(e,W))return e;const t=new S(e.name,!!e.keyAsName,e.columnType,e.indexConfig);return e.indexConfig=JSON.parse(JSON.stringify(e.defaultConfig)),t}),this.unique,!1,this.name)}onOnly(...e){return new Li(e.map(e=>{if(s(e,W))return e;const t=new S(e.name,!!e.keyAsName,e.columnType,e.indexConfig);return e.indexConfig=e.defaultConfig,t}),this.unique,!0,this.name)}using(e,...t){return new Li(t.map(e=>{if(s(e,W))return e;const t=new S(e.name,!!e.keyAsName,e.columnType,e.indexConfig);return e.indexConfig=JSON.parse(JSON.stringify(e.defaultConfig)),t}),this.unique,!0,this.name,e)}}class Li{static[n]="PgIndexBuilder";config;constructor(e,t,i,n,s="btree"){this.config={name:n,columns:e,unique:t,only:i,method:s}}concurrently(){return this.config.concurrently=!0,this}with(e){return this.config.with=e,this}where(e){return this.config.where=e,this}build(e){return new Ii(this.config,e)}}class Ii{static[n]="PgIndex";config;constructor(e,t){this.config={...e,table:t}}}function zi(e){return new Oi(!1,e)}function Fi(e){return new Oi(!0,e)}function Qi(...e){return e[0].columns?new Vi(e[0].columns,e[0].name):new Vi(e)}class Vi{static[n]="PgPrimaryKeyBuilder";columns;name;constructor(e,t){this.columns=e,this.name=t}build(e){return new Ei(e,this.columns,this.name)}}class Ei{constructor(e,t,i){this.table=e,this.columns=t,this.name=i}static[n]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[Bi.Symbol.Name]}_${this.columns.map(e=>e.name).join("_")}_pk`}}const Ki=Symbol.for("drizzle:PgViewConfig");function Ui(e){return(e.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map(e=>e.toLowerCase()).join("_")}function Mi(e){return(e.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((e,t,i)=>e+(0===i?t.toLowerCase():`${t[0].toUpperCase()}${t.slice(1)}`),"")}function Ji(e){return e}class Ri{static[n]="CasingCache";cache={};cachedTables={};convert;constructor(e){this.convert="snake_case"===e?Ui:"camelCase"===e?Mi:Ji}getColumnCasing(e){if(!e.keyAsName)return e.name;const t=`${e.table[K.Symbol.Schema]??"public"}.${e.table[K.Symbol.OriginalName]}.${e.name}`;return this.cache[t]||this.cacheTable(e.table),this.cache[t]}cacheTable(e){const t=`${e[K.Symbol.Schema]??"public"}.${e[K.Symbol.OriginalName]}`;if(!this.cachedTables[t]){for(const i of Object.values(e[K.Symbol.Columns])){const e=`${t}.${i.name}`;this.cache[e]=this.convert(i.name)}this.cachedTables[t]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class Wi extends Error{static[n]="DrizzleError";constructor({message:e,cause:t}){super(e),this.name="DrizzleError",this.cause=t}}function Hi(e,t){return!function(e){return"object"==typeof e&&null!==e&&"mapToDriverValue"in e&&"function"==typeof e.mapToDriverValue}(t)||J(e)||s(e,Y)||s(e,te)||s(e,r)||s(e,K)||s(e,ne)?e:new Y(e,t)}const Gi=(e,t)=>Z`${e} = ${Hi(t,e)}`,Xi=(e,t)=>Z`${e} <> ${Hi(t,e)}`;function Yi(...e){const t=e.filter(e=>void 0!==e);if(0!==t.length)return 1===t.length?new W(t):new W([new R("("),Z.join(t,new R(" and ")),new R(")")])}function Zi(...e){const t=e.filter(e=>void 0!==e);if(0!==t.length)return 1===t.length?new W(t):new W([new R("("),Z.join(t,new R(" or ")),new R(")")])}function en(e){return Z`not ${e}`}const tn=(e,t)=>Z`${e} > ${Hi(t,e)}`,nn=(e,t)=>Z`${e} >= ${Hi(t,e)}`,sn=(e,t)=>Z`${e} < ${Hi(t,e)}`,rn=(e,t)=>Z`${e} <= ${Hi(t,e)}`;function on(e,t){return Array.isArray(t)?0===t.length?Z`false`:Z`${e} in ${t.map(t=>Hi(t,e))}`:Z`${e} in ${Hi(t,e)}`}function an(e,t){return Array.isArray(t)?0===t.length?Z`true`:Z`${e} not in ${t.map(t=>Hi(t,e))}`:Z`${e} not in ${Hi(t,e)}`}function ln(e){return Z`${e} is null`}function un(e){return Z`${e} is not null`}function cn(e){return Z`exists ${e}`}function _n(e){return Z`not exists ${e}`}function dn(e,t,i){return Z`${e} between ${Hi(t,e)} and ${Hi(i,e)}`}function mn(e,t,i){return Z`${e} not between ${Hi(t,e)} and ${Hi(i,e)}`}function pn(e,t){return Z`${e} like ${t}`}function gn(e,t){return Z`${e} not like ${t}`}function fn(e,t){return Z`${e} ilike ${t}`}function hn(e,t){return Z`${e} not ilike ${t}`}function yn(e){return Z`${e} asc`}function bn(e){return Z`${e} desc`}class vn{constructor(e,t,i){this.sourceTable=e,this.referencedTable=t,this.relationName=i,this.referencedTableName=t[K.Symbol.Name]}static[n]="Relation";referencedTableName;fieldName}class wn extends vn{constructor(e,t,i,n){super(e,t,i?.relationName),this.config=i,this.isNullable=n}static[n]="One";withFieldName(e){const t=new wn(this.sourceTable,this.referencedTable,this.config,this.isNullable);return t.fieldName=e,t}}class Nn extends vn{constructor(e,t,i){super(e,t,i?.relationName),this.config=i}static[n]="Many";withFieldName(e){const t=new Nn(this.sourceTable,this.referencedTable,this.config);return t.fieldName=e,t}}function Sn(e,t,i){if(s(i,wn)&&i.config)return{fields:i.config.fields,references:i.config.references};const n=t[M(i.referencedTable)];if(!n)throw new Error(`Table "${i.referencedTable[K.Symbol.Name]}" not found in schema`);const r=e[n];if(!r)throw new Error(`Table "${n}" not found in schema`);const o=i.sourceTable,a=t[M(o)];if(!a)throw new Error(`Table "${o[K.Symbol.Name]}" not found in schema`);const l=[];for(const e of Object.values(r.relations))(i.relationName&&i!==e&&e.relationName===i.relationName||!i.relationName&&e.referencedTable===i.sourceTable)&&l.push(e);if(l.length>1)throw i.relationName?new Error(`There are multiple relations with name "${i.relationName}" in table "${n}"`):new Error(`There are multiple relations between "${n}" and "${i.sourceTable[K.Symbol.Name]}". Please specify relation name`);if(l[0]&&s(l[0],wn)&&l[0].config)return{fields:l[0].config.references,references:l[0].config.fields};throw new Error(`There is not enough information to infer relation "${a}.${i.fieldName}"`)}class kn extends ne{static[n]="PgViewBase"}class xn{static[n]="PgDialect";casing;constructor(e){this.casing=new Ri(e?.casing)}async migrate(e,t,i){const n="string"==typeof i?"__drizzle_migrations":i.migrationsTable??"__drizzle_migrations",s="string"==typeof i?"drizzle":i.migrationsSchema??"drizzle",r=Z`
1
+ "use strict";var e=require("drizzle-zod"),t=require("drizzle-orm"),i=require("zod");const n=Symbol.for("drizzle:entityKind");function s(e,t){if(!e||"object"!=typeof e)return!1;if(e instanceof t)return!0;if(!Object.prototype.hasOwnProperty.call(t,n))throw new Error(`Class "${t.name??"<unknown>"}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let i=Object.getPrototypeOf(e).constructor;if(i)for(;i;){if(n in i&&i[n]===t[n])return!0;i=Object.getPrototypeOf(i)}return!1}class r{constructor(e,t){this.table=e,this.config=t,this.name=t.name,this.keyAsName=t.keyAsName,this.notNull=t.notNull,this.default=t.default,this.defaultFn=t.defaultFn,this.onUpdateFn=t.onUpdateFn,this.hasDefault=t.hasDefault,this.primary=t.primaryKey,this.isUnique=t.isUnique,this.uniqueName=t.uniqueName,this.uniqueType=t.uniqueType,this.dataType=t.dataType,this.columnType=t.columnType,this.generated=t.generated,this.generatedIdentity=t.generatedIdentity}static[n]="Column";name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue(e){return e}mapToDriverValue(e){return e}shouldDisableInsert(){return void 0!==this.config.generated&&"byDefault"!==this.config.generated.type}}class o{static[n]="ColumnBuilder";config;constructor(e,t,i){this.config={name:e,keyAsName:""===e,notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:t,columnType:i,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(e){return this.config.default=e,this.config.hasDefault=!0,this}$defaultFn(e){return this.config.defaultFn=e,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(e){return this.config.onUpdateFn=e,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(e){""===this.config.name&&(this.config.name=e)}}const a=Symbol.for("drizzle:Name");class l{static[n]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(e,t){this.reference=()=>{const{name:t,columns:i,foreignColumns:n}=e();return{name:t,columns:i,foreignTable:n[0].table,foreignColumns:n}},t&&(this._onUpdate=t.onUpdate,this._onDelete=t.onDelete)}onUpdate(e){return this._onUpdate=void 0===e?"no action":e,this}onDelete(e){return this._onDelete=void 0===e?"no action":e,this}build(e){return new u(e,this)}}class u{constructor(e,t){this.table=e,this.reference=t.reference,this.onUpdate=t._onUpdate,this.onDelete=t._onDelete}static[n]="PgForeignKey";reference;onUpdate;onDelete;getName(){const{name:e,columns:t,foreignColumns:i}=this.reference(),n=t.map(e=>e.name),s=i.map(e=>e.name),r=[this.table[a],...n,i[0].table[a],...s];return e??`${r.join("_")}_fk`}}function c(e){return new l(function(){const{name:t,columns:i,foreignColumns:n}=e;return{name:t,columns:i,foreignColumns:n}})}function _(e){return new p(e)}function d(e,t){return`${e[a]}_${t.join("_")}_unique`}class m{constructor(e,t){this.name=t,this.columns=e}static[n]="PgUniqueConstraintBuilder";columns;nullsNotDistinctConfig=!1;nullsNotDistinct(){return this.nullsNotDistinctConfig=!0,this}build(e){return new g(e,this.columns,this.nullsNotDistinctConfig,this.name)}}class p{static[n]="PgUniqueOnConstraintBuilder";name;constructor(e){this.name=e}on(...e){return new m(e,this.name)}}class g{constructor(e,t,i,n){this.table=e,this.columns=t,this.name=n??d(this.table,this.columns.map(e=>e.name)),this.nullsNotDistinct=i}static[n]="PgUniqueConstraint";columns;name;nullsNotDistinct=!1;getName(){return this.name}}function f(e,t,i){for(let n=t;n<e.length;n++){const s=e[n];if("\\"!==s){if('"'===s)return[e.slice(t,n).replace(/\\/g,""),n+1];if(!i&&(","===s||"}"===s))return[e.slice(t,n).replace(/\\/g,""),n]}else n++}return[e.slice(t).replace(/\\/g,""),e.length]}function h(e,t=0){const i=[];let n=t,s=!1;for(;n<e.length;){const r=e[n];if(","===r){(s||n===t)&&i.push(""),s=!0,n++;continue}if(s=!1,"\\"===r){n+=2;continue}if('"'===r){const[t,s]=f(e,n+1,!0);i.push(t),n=s;continue}if("}"===r)return[i,n+1];if("{"===r){const[t,s]=h(e,n+1);i.push(t),n=s;continue}const[o,a]=f(e,n,!1);i.push(o),n=a}return[i,n]}function y(e){const[t]=h(e,1);return t}function b(e){return`{${e.map(e=>Array.isArray(e)?b(e):"string"==typeof e?`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`:`${e}`).join(",")}}`}class v extends o{foreignKeyConfigs=[];static[n]="PgColumnBuilder";array(e){return new x(this.config.name,this,e)}references(e,t={}){return this.foreignKeyConfigs.push({ref:e,actions:t}),this}unique(e,t){return this.config.isUnique=!0,this.config.uniqueName=e,this.config.uniqueType=t?.nulls,this}generatedAlwaysAs(e){return this.config.generated={as:e,type:"always",mode:"stored"},this}buildForeignKeys(e,t){return this.foreignKeyConfigs.map(({ref:i,actions:n})=>function(e,...t){return e(...t)}((i,n)=>{const s=new l(()=>{const t=i();return{columns:[e],foreignColumns:[t]}});return n.onUpdate&&s.onUpdate(n.onUpdate),n.onDelete&&s.onDelete(n.onDelete),s.build(t)},i,n))}buildExtraConfigColumn(e){return new N(e,this.config)}}class w extends r{constructor(e,t){t.uniqueName||(t.uniqueName=d(e,[t.name])),super(e,t),this.table=e}static[n]="PgColumn"}class N extends w{static[n]="ExtraConfigColumn";getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??"asc",nulls:this.config.nulls??"last",opClass:this.config.opClass};defaultConfig={order:"asc",nulls:"last",opClass:void 0};asc(){return this.indexConfig.order="asc",this}desc(){return this.indexConfig.order="desc",this}nullsFirst(){return this.indexConfig.nulls="first",this}nullsLast(){return this.indexConfig.nulls="last",this}op(e){return this.indexConfig.opClass=e,this}}class S{static[n]="IndexedColumn";constructor(e,t,i,n){this.name=e,this.keyAsName=t,this.type=i,this.indexConfig=n}name;keyAsName;type;indexConfig}class x extends v{static[n]="PgArrayBuilder";constructor(e,t,i){super(e,"array","PgArray"),this.config.baseBuilder=t,this.config.size=i}build(e){const t=this.config.baseBuilder.build(e);return new k(e,this.config,t)}}class k extends w{constructor(e,t,i,n){super(e,t),this.baseColumn=i,this.range=n,this.size=t.size}size;static[n]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${"number"==typeof this.size?this.size:""}]`}mapFromDriverValue(e){return"string"==typeof e&&(e=y(e)),e.map(e=>this.baseColumn.mapFromDriverValue(e))}mapToDriverValue(e,t=!1){const i=e.map(e=>null===e?null:s(this.baseColumn,k)?this.baseColumn.mapToDriverValue(e,!0):this.baseColumn.mapToDriverValue(e));return t?i:b(i)}}class C extends v{static[n]="PgEnumObjectColumnBuilder";constructor(e,t){super(e,"string","PgEnumObjectColumn"),this.config.enum=t}build(e){return new q(e,this.config)}}class q extends w{static[n]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(e,t){super(e,t),this.enum=t.enum}getSQLType(){return this.enum.enumName}}const $=Symbol.for("drizzle:isPgEnum");class j extends v{static[n]="PgEnumColumnBuilder";constructor(e,t){super(e,"string","PgEnumColumn"),this.config.enum=t}build(e){return new T(e,this.config)}}class T extends w{static[n]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(e,t){super(e,t),this.enum=t.enum}getSQLType(){return this.enum.enumName}}class P{static[n]="Subquery";constructor(e,t,i,n=!1,s=[]){this._={brand:"Subquery",sql:e,selectedFields:t,alias:i,isWith:n,usedTables:s}}}class B extends P{static[n]="WithSubquery"}const D={startActiveSpan:(e,t)=>t()},A=Symbol.for("drizzle:ViewBaseConfig"),O=Symbol.for("drizzle:Schema"),L=Symbol.for("drizzle:Columns"),I=Symbol.for("drizzle:ExtraConfigColumns"),z=Symbol.for("drizzle:OriginalName"),F=Symbol.for("drizzle:BaseName"),Q=Symbol.for("drizzle:IsAlias"),V=Symbol.for("drizzle:ExtraConfigBuilder"),E=Symbol.for("drizzle:IsDrizzleTable");class K{static[n]="Table";static Symbol={Name:a,Schema:O,OriginalName:z,Columns:L,ExtraConfigColumns:I,BaseName:F,IsAlias:Q,ExtraConfigBuilder:V};[a];[z];[O];[L];[I];[F];[Q]=!1;[E]=!0;[V]=void 0;constructor(e,t,i){this[a]=this[z]=e,this[O]=t,this[F]=i}}function U(e){return e[a]}function M(e){return`${e[O]??"public"}.${e[a]}`}function R(e){return null!=e&&"function"==typeof e.getSQL}class J{static[n]="StringChunk";value;constructor(e){this.value=Array.isArray(e)?e:[e]}getSQL(){return new W([this])}}class W{constructor(e){this.queryChunks=e;for(const t of e)if(s(t,K)){const e=t[K.Symbol.Schema];this.usedTables.push(void 0===e?t[K.Symbol.Name]:e+"."+t[K.Symbol.Name])}}static[n]="SQL";decoder=G;shouldInlineParams=!1;usedTables=[];append(e){return this.queryChunks.push(...e.queryChunks),this}toQuery(e){return D.startActiveSpan("drizzle.buildSQL",t=>{const i=this.buildQueryFromSourceParams(this.queryChunks,e);return t?.setAttributes({"drizzle.query.text":i.sql,"drizzle.query.params":JSON.stringify(i.params)}),i})}buildQueryFromSourceParams(e,t){const i=Object.assign({},t,{inlineParams:t.inlineParams||this.shouldInlineParams,paramStartIndex:t.paramStartIndex||{value:0}}),{casing:n,escapeName:o,escapeParam:a,prepareTyping:l,inlineParams:u,paramStartIndex:c}=i;return function(e){const t={sql:"",params:[]};for(const i of e)t.sql+=i.sql,t.params.push(...i.params),i.typings?.length&&(t.typings||(t.typings=[]),t.typings.push(...i.typings));return t}(e.map(e=>{if(s(e,J))return{sql:e.value.join(""),params:[]};if(s(e,H))return{sql:o(e.value),params:[]};if(void 0===e)return{sql:"",params:[]};if(Array.isArray(e)){const t=[new J("(")];for(const[i,n]of e.entries())t.push(n),i<e.length-1&&t.push(new J(", "));return t.push(new J(")")),this.buildQueryFromSourceParams(t,i)}if(s(e,W))return this.buildQueryFromSourceParams(e.queryChunks,{...i,inlineParams:u||e.shouldInlineParams});if(s(e,K)){const t=e[K.Symbol.Schema],i=e[K.Symbol.Name];return{sql:void 0===t||e[Q]?o(i):o(t)+"."+o(i),params:[]}}if(s(e,r)){const i=n.getColumnCasing(e);if("indexes"===t.invokeSource)return{sql:o(i),params:[]};const s=e.table[K.Symbol.Schema];return{sql:e.table[Q]||void 0===s?o(e.table[K.Symbol.Name])+"."+o(i):o(s)+"."+o(e.table[K.Symbol.Name])+"."+o(i),params:[]}}if(s(e,ne)){const t=e[A].schema,i=e[A].name;return{sql:void 0===t||e[A].isAlias?o(i):o(t)+"."+o(i),params:[]}}if(s(e,Y)){if(s(e.value,te))return{sql:a(c.value++,e),params:[e],typings:["none"]};const t=null===e.value?null:e.encoder.mapToDriverValue(e.value);if(s(t,W))return this.buildQueryFromSourceParams([t],i);if(u)return{sql:this.mapInlineParam(t,i),params:[]};let n=["none"];return l&&(n=[l(e.encoder)]),{sql:a(c.value++,t),params:[t],typings:n}}return s(e,te)?{sql:a(c.value++,e),params:[e],typings:["none"]}:s(e,W.Aliased)&&void 0!==e.fieldAlias?{sql:o(e.fieldAlias),params:[]}:s(e,P)?e._.isWith?{sql:o(e._.alias),params:[]}:this.buildQueryFromSourceParams([new J("("),e._.sql,new J(") "),new H(e._.alias)],i):(_=e)&&"function"==typeof _&&$ in _&&!0===_[$]?e.schema?{sql:o(e.schema)+"."+o(e.enumName),params:[]}:{sql:o(e.enumName),params:[]}:R(e)?e.shouldOmitSQLParens?.()?this.buildQueryFromSourceParams([e.getSQL()],i):this.buildQueryFromSourceParams([new J("("),e.getSQL(),new J(")")],i):u?{sql:this.mapInlineParam(e,i),params:[]}:{sql:a(c.value++,e),params:[e],typings:["none"]};var _}))}mapInlineParam(e,{escapeString:t}){if(null===e)return"null";if("number"==typeof e||"boolean"==typeof e)return e.toString();if("string"==typeof e)return t(e);if("object"==typeof e){const i=e.toString();return t("[object Object]"===i?JSON.stringify(e):i)}throw new Error("Unexpected param value: "+e)}getSQL(){return this}as(e){return void 0===e?this:new W.Aliased(this,e)}mapWith(e){return this.decoder="function"==typeof e?{mapFromDriverValue:e}:e,this}inlineParams(){return this.shouldInlineParams=!0,this}if(e){return e?this:void 0}}class H{constructor(e){this.value=e}static[n]="Name";brand;getSQL(){return new W([this])}}const G={mapFromDriverValue:e=>e},X={mapToDriverValue:e=>e};class Y{constructor(e,t=X){this.value=e,this.encoder=t}static[n]="Param";brand;getSQL(){return new W([this])}}function Z(e,...t){const i=[];(t.length>0||e.length>0&&""!==e[0])&&i.push(new J(e[0]));for(const[n,s]of t.entries())i.push(s,new J(e[n+1]));return new W(i)}var ee;(ee=Z||(Z={})).empty=function(){return new W([])},ee.fromList=function(e){return new W(e)},ee.raw=function(e){return new W([new J(e)])},ee.join=function(e,t){const i=[];for(const[n,s]of e.entries())n>0&&void 0!==t&&i.push(t),i.push(s);return new W(i)},ee.identifier=function(e){return new H(e)},ee.placeholder=function(e){return new te(e)},ee.param=function(e,t){return new Y(e,t)},(e=>{class t{constructor(e,t){this.sql=e,this.fieldAlias=t}static[n]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new t(this.sql,this.fieldAlias)}}e.Aliased=t})(W||(W={}));class te{constructor(e){this.name=e}static[n]="Placeholder";getSQL(){return new W([this])}}const ie=Symbol.for("drizzle:IsDrizzleView");class ne{static[n]="View";[A];[ie]=!0;constructor({name:e,schema:t,selectedFields:i,query:n}){this[A]={name:e,originalName:e,schema:t,selectedFields:i,query:n,isExisting:!n,isAlias:!1}}getSQL(){return new W([this])}}r.prototype.getSQL=function(){return new W([this])},K.prototype.getSQL=function(){return new W([this])},P.prototype.getSQL=function(){return new W([this])};class se{constructor(e){this.table=e}static[n]="ColumnAliasProxyHandler";get(e,t){return"table"===t?this.table:e[t]}}class re{constructor(e,t){this.alias=e,this.replaceOriginalName=t}static[n]="TableAliasProxyHandler";get(e,t){if(t===K.Symbol.IsAlias)return!0;if(t===K.Symbol.Name)return this.alias;if(this.replaceOriginalName&&t===K.Symbol.OriginalName)return this.alias;if(t===A)return{...e[A],name:this.alias,isAlias:!0};if(t===K.Symbol.Columns){const t=e[K.Symbol.Columns];if(!t)return t;const i={};return Object.keys(t).map(n=>{i[n]=new Proxy(t[n],new se(new Proxy(e,this)))}),i}const i=e[t];return s(i,r)?new Proxy(i,new se(new Proxy(e,this))):i}}function oe(e,t){return new Proxy(e,new re(t,!1))}function ae(e,t){return new Proxy(e,new se(new Proxy(e.table,new re(t,!1))))}function le(e,t){return new W.Aliased(ue(e.sql,t),e.fieldAlias)}function ue(e,t){return Z.join(e.queryChunks.map(e=>s(e,r)?ae(e,t):s(e,W)?ue(e,t):s(e,W.Aliased)?le(e,t):e))}class ce{constructor(e,t){this.name=e,this.value=t}static[n]="PgCheckBuilder";brand;build(e){return new _e(e,this)}}class _e{constructor(e,t){this.table=e,this.name=t.name,this.value=t.value}static[n]="PgCheck";name;value}function de(e,t){return new ce(e,t)}function me(e,t){return Object.entries(e).reduce((e,[i,n])=>{if("string"!=typeof i)return e;const o=t?[...t,i]:[i];return s(n,r)||s(n,W)||s(n,W.Aliased)||s(n,P)?e.push({path:o,field:n}):s(n,K)?e.push(...me(n[K.Symbol.Columns],o)):e.push(...me(n,o)),e},[])}function pe(e,t){const i=Object.keys(e),n=Object.keys(t);if(i.length!==n.length)return!1;for(const[e,t]of i.entries())if(t!==n[e])return!1;return!0}function ge(e){return e[K.Symbol.Columns]}function fe(e){return s(e,P)?e._.alias:s(e,ne)?e[A].name:s(e,W)?void 0:e[K.Symbol.IsAlias]?e[K.Symbol.Name]:e[K.Symbol.BaseName]}function he(e,t){return{name:"string"==typeof e&&e.length>0?e:"",config:"object"==typeof e?e:t}}"undefined"!=typeof TextDecoder&&new TextDecoder;class ye extends v{static[n]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(e){if(e){const{name:t,...i}=e;this.config.generatedIdentity={type:"always",sequenceName:t,sequenceOptions:i}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(e){if(e){const{name:t,...i}=e;this.config.generatedIdentity={type:"byDefault",sequenceName:t,sequenceOptions:i}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}class be extends ye{static[n]="PgBigInt53Builder";constructor(e){super(e,"number","PgBigInt53")}build(e){return new ve(e,this.config)}}class ve extends w{static[n]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(e){return"number"==typeof e?e:Number(e)}}class we extends ye{static[n]="PgBigInt64Builder";constructor(e){super(e,"bigint","PgBigInt64")}build(e){return new Ne(e,this.config)}}class Ne extends w{static[n]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(e){return BigInt(e)}}function Se(e,t){const{name:i,config:n}=he(e,t);return"number"===n.mode?new be(i):new we(i)}class xe extends v{static[n]="PgBigSerial53Builder";constructor(e){super(e,"number","PgBigSerial53"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new ke(e,this.config)}}class ke extends w{static[n]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(e){return"number"==typeof e?e:Number(e)}}class Ce extends v{static[n]="PgBigSerial64Builder";constructor(e){super(e,"bigint","PgBigSerial64"),this.config.hasDefault=!0}build(e){return new qe(e,this.config)}}class qe extends w{static[n]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(e){return BigInt(e)}}function $e(e,t){const{name:i,config:n}=he(e,t);return"number"===n.mode?new xe(i):new Ce(i)}class je extends v{static[n]="PgBooleanBuilder";constructor(e){super(e,"boolean","PgBoolean")}build(e){return new Te(e,this.config)}}class Te extends w{static[n]="PgBoolean";getSQLType(){return"boolean"}}function Pe(e){return new je(e??"")}class Be extends v{static[n]="PgCharBuilder";constructor(e,t){super(e,"string","PgChar"),this.config.length=t.length,this.config.enumValues=t.enum}build(e){return new De(e,this.config)}}class De extends w{static[n]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return void 0===this.length?"char":`char(${this.length})`}}function Ae(e,t={}){const{name:i,config:n}=he(e,t);return new Be(i,n)}class Oe extends v{static[n]="PgCidrBuilder";constructor(e){super(e,"string","PgCidr")}build(e){return new Le(e,this.config)}}class Le extends w{static[n]="PgCidr";getSQLType(){return"cidr"}}function Ie(e){return new Oe(e??"")}class ze extends v{static[n]="PgCustomColumnBuilder";constructor(e,t,i){super(e,"custom","PgCustomColumn"),this.config.fieldConfig=t,this.config.customTypeParams=i}build(e){return new Fe(e,this.config)}}class Fe extends w{static[n]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(e,t){super(e,t),this.sqlName=t.customTypeParams.dataType(t.fieldConfig),this.mapTo=t.customTypeParams.toDriver,this.mapFrom=t.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(e){return"function"==typeof this.mapFrom?this.mapFrom(e):e}mapToDriverValue(e){return"function"==typeof this.mapTo?this.mapTo(e):e}}function Qe(e){return(t,i)=>{const{name:n,config:s}=he(t,i);return new ze(n,s,e)}}class Ve extends v{static[n]="PgDateColumnBaseBuilder";defaultNow(){return this.default(Z`now()`)}}class Ee extends Ve{static[n]="PgDateBuilder";constructor(e){super(e,"date","PgDate")}build(e){return new Ke(e,this.config)}}class Ke extends w{static[n]="PgDate";getSQLType(){return"date"}mapFromDriverValue(e){return"string"==typeof e?new Date(e):e}mapToDriverValue(e){return e.toISOString()}}class Ue extends Ve{static[n]="PgDateStringBuilder";constructor(e){super(e,"string","PgDateString")}build(e){return new Me(e,this.config)}}class Me extends w{static[n]="PgDateString";getSQLType(){return"date"}mapFromDriverValue(e){return"string"==typeof e?e:e.toISOString().slice(0,-14)}}function Re(e,t){const{name:i,config:n}=he(e,t);return"date"===n?.mode?new Ee(i):new Ue(i)}class Je extends v{static[n]="PgDoublePrecisionBuilder";constructor(e){super(e,"number","PgDoublePrecision")}build(e){return new We(e,this.config)}}class We extends w{static[n]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(e){return"string"==typeof e?Number.parseFloat(e):e}}function He(e){return new Je(e??"")}class Ge extends v{static[n]="PgInetBuilder";constructor(e){super(e,"string","PgInet")}build(e){return new Xe(e,this.config)}}class Xe extends w{static[n]="PgInet";getSQLType(){return"inet"}}function Ye(e){return new Ge(e??"")}class Ze extends ye{static[n]="PgIntegerBuilder";constructor(e){super(e,"number","PgInteger")}build(e){return new et(e,this.config)}}class et extends w{static[n]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(e){return"string"==typeof e?Number.parseInt(e):e}}function tt(e){return new Ze(e??"")}class it extends v{static[n]="PgIntervalBuilder";constructor(e,t){super(e,"string","PgInterval"),this.config.intervalConfig=t}build(e){return new nt(e,this.config)}}class nt extends w{static[n]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){return`interval${this.fields?` ${this.fields}`:""}${this.precision?`(${this.precision})`:""}`}}function st(e,t={}){const{name:i,config:n}=he(e,t);return new it(i,n)}class rt extends v{static[n]="PgJsonBuilder";constructor(e){super(e,"json","PgJson")}build(e){return new ot(e,this.config)}}class ot extends w{static[n]="PgJson";constructor(e,t){super(e,t)}getSQLType(){return"json"}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){if("string"==typeof e)try{return JSON.parse(e)}catch{return e}return e}}function at(e){return new rt(e??"")}class lt extends v{static[n]="PgJsonbBuilder";constructor(e){super(e,"json","PgJsonb")}build(e){return new ut(e,this.config)}}class ut extends w{static[n]="PgJsonb";constructor(e,t){super(e,t)}getSQLType(){return"jsonb"}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){if("string"==typeof e)try{return JSON.parse(e)}catch{return e}return e}}function ct(e){return new lt(e??"")}class _t extends v{static[n]="PgLineBuilder";constructor(e){super(e,"array","PgLine")}build(e){return new dt(e,this.config)}}class dt extends w{static[n]="PgLine";getSQLType(){return"line"}mapFromDriverValue(e){const[t,i,n]=e.slice(1,-1).split(",");return[Number.parseFloat(t),Number.parseFloat(i),Number.parseFloat(n)]}mapToDriverValue(e){return`{${e[0]},${e[1]},${e[2]}}`}}class mt extends v{static[n]="PgLineABCBuilder";constructor(e){super(e,"json","PgLineABC")}build(e){return new pt(e,this.config)}}class pt extends w{static[n]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(e){const[t,i,n]=e.slice(1,-1).split(",");return{a:Number.parseFloat(t),b:Number.parseFloat(i),c:Number.parseFloat(n)}}mapToDriverValue(e){return`{${e.a},${e.b},${e.c}}`}}function gt(e,t){const{name:i,config:n}=he(e,t);return n?.mode&&"tuple"!==n.mode?new mt(i):new _t(i)}class ft extends v{static[n]="PgMacaddrBuilder";constructor(e){super(e,"string","PgMacaddr")}build(e){return new ht(e,this.config)}}class ht extends w{static[n]="PgMacaddr";getSQLType(){return"macaddr"}}function yt(e){return new ft(e??"")}class bt extends v{static[n]="PgMacaddr8Builder";constructor(e){super(e,"string","PgMacaddr8")}build(e){return new vt(e,this.config)}}class vt extends w{static[n]="PgMacaddr8";getSQLType(){return"macaddr8"}}function wt(e){return new bt(e??"")}class Nt extends v{static[n]="PgNumericBuilder";constructor(e,t,i){super(e,"string","PgNumeric"),this.config.precision=t,this.config.scale=i}build(e){return new St(e,this.config)}}class St extends w{static[n]="PgNumeric";precision;scale;constructor(e,t){super(e,t),this.precision=t.precision,this.scale=t.scale}mapFromDriverValue(e){return"string"==typeof e?e:String(e)}getSQLType(){return void 0!==this.precision&&void 0!==this.scale?`numeric(${this.precision}, ${this.scale})`:void 0===this.precision?"numeric":`numeric(${this.precision})`}}class xt extends v{static[n]="PgNumericNumberBuilder";constructor(e,t,i){super(e,"number","PgNumericNumber"),this.config.precision=t,this.config.scale=i}build(e){return new kt(e,this.config)}}class kt extends w{static[n]="PgNumericNumber";precision;scale;constructor(e,t){super(e,t),this.precision=t.precision,this.scale=t.scale}mapFromDriverValue(e){return"number"==typeof e?e:Number(e)}mapToDriverValue=String;getSQLType(){return void 0!==this.precision&&void 0!==this.scale?`numeric(${this.precision}, ${this.scale})`:void 0===this.precision?"numeric":`numeric(${this.precision})`}}class Ct extends v{static[n]="PgNumericBigIntBuilder";constructor(e,t,i){super(e,"bigint","PgNumericBigInt"),this.config.precision=t,this.config.scale=i}build(e){return new qt(e,this.config)}}class qt extends w{static[n]="PgNumericBigInt";precision;scale;constructor(e,t){super(e,t),this.precision=t.precision,this.scale=t.scale}mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){return void 0!==this.precision&&void 0!==this.scale?`numeric(${this.precision}, ${this.scale})`:void 0===this.precision?"numeric":`numeric(${this.precision})`}}function $t(e,t){const{name:i,config:n}=he(e,t),s=n?.mode;return"number"===s?new xt(i,n?.precision,n?.scale):"bigint"===s?new Ct(i,n?.precision,n?.scale):new Nt(i,n?.precision,n?.scale)}class jt extends v{static[n]="PgPointTupleBuilder";constructor(e){super(e,"array","PgPointTuple")}build(e){return new Tt(e,this.config)}}class Tt extends w{static[n]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(e){if("string"==typeof e){const[t,i]=e.slice(1,-1).split(",");return[Number.parseFloat(t),Number.parseFloat(i)]}return[e.x,e.y]}mapToDriverValue(e){return`(${e[0]},${e[1]})`}}class Pt extends v{static[n]="PgPointObjectBuilder";constructor(e){super(e,"json","PgPointObject")}build(e){return new Bt(e,this.config)}}class Bt extends w{static[n]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(e){if("string"==typeof e){const[t,i]=e.slice(1,-1).split(",");return{x:Number.parseFloat(t),y:Number.parseFloat(i)}}return e}mapToDriverValue(e){return`(${e.x},${e.y})`}}function Dt(e,t){const{name:i,config:n}=he(e,t);return n?.mode&&"tuple"!==n.mode?new Pt(i):new jt(i)}function At(e,t){const i=new ArrayBuffer(8),n=new DataView(i);for(let i=0;i<8;i++)n.setUint8(i,e[t+i]);return n.getFloat64(0,!0)}function Ot(e){const t=function(e){const t=[];for(let i=0;i<e.length;i+=2)t.push(Number.parseInt(e.slice(i,i+2),16));return new Uint8Array(t)}(e);let i=0;const n=t[i];i+=1;const s=new DataView(t.buffer),r=s.getUint32(i,1===n);if(i+=4,536870912&r&&(s.getUint32(i,1===n),i+=4),1==(65535&r)){const e=At(t,i);i+=8;const n=At(t,i);return i+=8,[e,n]}throw new Error("Unsupported geometry type")}class Lt extends v{static[n]="PgGeometryBuilder";constructor(e){super(e,"array","PgGeometry")}build(e){return new It(e,this.config)}}class It extends w{static[n]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(e){return Ot(e)}mapToDriverValue(e){return`point(${e[0]} ${e[1]})`}}class zt extends v{static[n]="PgGeometryObjectBuilder";constructor(e){super(e,"json","PgGeometryObject")}build(e){return new Ft(e,this.config)}}class Ft extends w{static[n]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(e){const t=Ot(e);return{x:t[0],y:t[1]}}mapToDriverValue(e){return`point(${e.x} ${e.y})`}}function Qt(e,t){const{name:i,config:n}=he(e,t);return n?.mode&&"tuple"!==n.mode?new zt(i):new Lt(i)}class Vt extends v{static[n]="PgRealBuilder";constructor(e,t){super(e,"number","PgReal"),this.config.length=t}build(e){return new Et(e,this.config)}}class Et extends w{static[n]="PgReal";constructor(e,t){super(e,t)}getSQLType(){return"real"}mapFromDriverValue=e=>"string"==typeof e?Number.parseFloat(e):e}function Kt(e){return new Vt(e??"")}class Ut extends v{static[n]="PgSerialBuilder";constructor(e){super(e,"number","PgSerial"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new Mt(e,this.config)}}class Mt extends w{static[n]="PgSerial";getSQLType(){return"serial"}}function Rt(e){return new Ut(e??"")}class Jt extends ye{static[n]="PgSmallIntBuilder";constructor(e){super(e,"number","PgSmallInt")}build(e){return new Wt(e,this.config)}}class Wt extends w{static[n]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=e=>"string"==typeof e?Number(e):e}function Ht(e){return new Jt(e??"")}class Gt extends v{static[n]="PgSmallSerialBuilder";constructor(e){super(e,"number","PgSmallSerial"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new Xt(e,this.config)}}class Xt extends w{static[n]="PgSmallSerial";getSQLType(){return"smallserial"}}function Yt(e){return new Gt(e??"")}class Zt extends v{static[n]="PgTextBuilder";constructor(e,t){super(e,"string","PgText"),this.config.enumValues=t.enum}build(e){return new ei(e,this.config)}}class ei extends w{static[n]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function ti(e,t={}){const{name:i,config:n}=he(e,t);return new Zt(i,n)}class ii extends Ve{constructor(e,t,i){super(e,"string","PgTime"),this.withTimezone=t,this.precision=i,this.config.withTimezone=t,this.config.precision=i}static[n]="PgTimeBuilder";build(e){return new ni(e,this.config)}}class ni extends w{static[n]="PgTime";withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){return`time${void 0===this.precision?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function si(e,t={}){const{name:i,config:n}=he(e,t);return new ii(i,n.withTimezone??!1,n.precision)}class ri extends Ve{static[n]="PgTimestampBuilder";constructor(e,t,i){super(e,"date","PgTimestamp"),this.config.withTimezone=t,this.config.precision=i}build(e){return new oi(e,this.config)}}class oi extends w{static[n]="PgTimestamp";withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){return`timestamp${void 0===this.precision?"":` (${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue(e){return"string"==typeof e?new Date(this.withTimezone?e:e+"+0000"):e}mapToDriverValue=e=>e.toISOString()}class ai extends Ve{static[n]="PgTimestampStringBuilder";constructor(e,t,i){super(e,"string","PgTimestampString"),this.config.withTimezone=t,this.config.precision=i}build(e){return new li(e,this.config)}}class li extends w{static[n]="PgTimestampString";withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){return`timestamp${void 0===this.precision?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue(e){if("string"==typeof e)return e;const t=e.toISOString().slice(0,-1).replace("T"," ");if(this.withTimezone){const i=e.getTimezoneOffset();return`${t}${i<=0?"+":"-"}${Math.floor(Math.abs(i)/60).toString().padStart(2,"0")}`}return t}}function ui(e,t={}){const{name:i,config:n}=he(e,t);return"string"===n?.mode?new ai(i,n.withTimezone??!1,n.precision):new ri(i,n?.withTimezone??!1,n?.precision)}class ci extends v{static[n]="PgUUIDBuilder";constructor(e){super(e,"string","PgUUID")}defaultRandom(){return this.default(Z`gen_random_uuid()`)}build(e){return new _i(e,this.config)}}class _i extends w{static[n]="PgUUID";getSQLType(){return"uuid"}}function di(e){return new ci(e??"")}class mi extends v{static[n]="PgVarcharBuilder";constructor(e,t){super(e,"string","PgVarchar"),this.config.length=t.length,this.config.enumValues=t.enum}build(e){return new pi(e,this.config)}}class pi extends w{static[n]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return void 0===this.length?"varchar":`varchar(${this.length})`}}function gi(e,t={}){const{name:i,config:n}=he(e,t);return new mi(i,n)}class fi extends v{static[n]="PgBinaryVectorBuilder";constructor(e,t){super(e,"string","PgBinaryVector"),this.config.dimensions=t.dimensions}build(e){return new hi(e,this.config)}}class hi extends w{static[n]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function yi(e,t){const{name:i,config:n}=he(e,t);return new fi(i,n)}class bi extends v{static[n]="PgHalfVectorBuilder";constructor(e,t){super(e,"array","PgHalfVector"),this.config.dimensions=t.dimensions}build(e){return new vi(e,this.config)}}class vi extends w{static[n]="PgHalfVector";dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){return e.slice(1,-1).split(",").map(e=>Number.parseFloat(e))}}function wi(e,t){const{name:i,config:n}=he(e,t);return new bi(i,n)}class Ni extends v{static[n]="PgSparseVectorBuilder";constructor(e,t){super(e,"string","PgSparseVector"),this.config.dimensions=t.dimensions}build(e){return new Si(e,this.config)}}class Si extends w{static[n]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function xi(e,t){const{name:i,config:n}=he(e,t);return new Ni(i,n)}class ki extends v{static[n]="PgVectorBuilder";constructor(e,t){super(e,"array","PgVector"),this.config.dimensions=t.dimensions}build(e){return new Ci(e,this.config)}}class Ci extends w{static[n]="PgVector";dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){return e.slice(1,-1).split(",").map(e=>Number.parseFloat(e))}}function qi(e,t){const{name:i,config:n}=he(e,t);return new ki(i,n)}class $i{static[n]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(e){return this.then(void 0,e)}finally(e){return this.then(t=>(e?.(),t),t=>{throw e?.(),t})}then(e,t){return this.execute().then(e,t)}}class ji{static[n]="SelectionProxyHandler";config;constructor(e){this.config={...e}}get(e,t){if("_"===t)return{...e._,selectedFields:new Proxy(e._.selectedFields,this)};if(t===A)return{...e[A],selectedFields:new Proxy(e[A].selectedFields,this)};if("symbol"==typeof t)return e[t];const i=(s(e,P)?e._.selectedFields:s(e,ne)?e[A].selectedFields:e)[t];if(s(i,W.Aliased)){if("sql"===this.config.sqlAliasedBehavior&&!i.isSelectionField)return i.sql;const e=i.clone();return e.isSelectionField=!0,e}if(s(i,W)){if("sql"===this.config.sqlBehavior)return i;throw new Error(`You tried to reference "${t}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}return s(i,r)?this.config.alias?new Proxy(i,new se(new Proxy(i.table,new re(this.config.alias,this.config.replaceOriginalName??!1)))):i:"object"!=typeof i||null===i?i:new Proxy(i,new ji(this.config))}}const Ti=Symbol.for("drizzle:PgInlineForeignKeys"),Pi=Symbol.for("drizzle:EnableRLS");class Bi extends K{static[n]="PgTable";static Symbol=Object.assign({},K.Symbol,{InlineForeignKeys:Ti,EnableRLS:Pi});[Ti]=[];[Pi]=!1;[K.Symbol.ExtraConfigBuilder]=void 0;[K.Symbol.ExtraConfigColumns]={}}function Di(e,t,i,n,s=e){const r=new Bi(e,n,s),o="function"==typeof t?t({bigint:Se,bigserial:$e,boolean:Pe,char:Ae,cidr:Ie,customType:Qe,date:Re,doublePrecision:He,inet:Ye,integer:tt,interval:st,json:at,jsonb:ct,line:gt,macaddr:yt,macaddr8:wt,numeric:$t,point:Dt,geometry:Qt,real:Kt,serial:Rt,smallint:Ht,smallserial:Yt,text:ti,time:si,timestamp:ui,uuid:di,varchar:gi,bit:yi,halfvec:wi,sparsevec:xi,vector:qi}):t,a=Object.fromEntries(Object.entries(o).map(([e,t])=>{const i=t;i.setName(e);const n=i.build(r);return r[Ti].push(...i.buildForeignKeys(n,r)),[e,n]})),l=Object.fromEntries(Object.entries(o).map(([e,t])=>{const i=t;i.setName(e);return[e,i.buildExtraConfigColumn(r)]})),u=Object.assign(r,a);return u[K.Symbol.Columns]=a,u[K.Symbol.ExtraConfigColumns]=l,i&&(u[Bi.Symbol.ExtraConfigBuilder]=i),Object.assign(u,{enableRLS:()=>(u[Bi.Symbol.EnableRLS]=!0,u)})}const Ai=(e,t,i)=>Di(e,t,i,void 0);class Oi{constructor(e,t){this.unique=e,this.name=t}static[n]="PgIndexBuilderOn";on(...e){return new Li(e.map(e=>{if(s(e,W))return e;const t=new S(e.name,!!e.keyAsName,e.columnType,e.indexConfig);return e.indexConfig=JSON.parse(JSON.stringify(e.defaultConfig)),t}),this.unique,!1,this.name)}onOnly(...e){return new Li(e.map(e=>{if(s(e,W))return e;const t=new S(e.name,!!e.keyAsName,e.columnType,e.indexConfig);return e.indexConfig=e.defaultConfig,t}),this.unique,!0,this.name)}using(e,...t){return new Li(t.map(e=>{if(s(e,W))return e;const t=new S(e.name,!!e.keyAsName,e.columnType,e.indexConfig);return e.indexConfig=JSON.parse(JSON.stringify(e.defaultConfig)),t}),this.unique,!0,this.name,e)}}class Li{static[n]="PgIndexBuilder";config;constructor(e,t,i,n,s="btree"){this.config={name:n,columns:e,unique:t,only:i,method:s}}concurrently(){return this.config.concurrently=!0,this}with(e){return this.config.with=e,this}where(e){return this.config.where=e,this}build(e){return new Ii(this.config,e)}}class Ii{static[n]="PgIndex";config;constructor(e,t){this.config={...e,table:t}}}function zi(e){return new Oi(!1,e)}function Fi(e){return new Oi(!0,e)}function Qi(...e){return e[0].columns?new Vi(e[0].columns,e[0].name):new Vi(e)}class Vi{static[n]="PgPrimaryKeyBuilder";columns;name;constructor(e,t){this.columns=e,this.name=t}build(e){return new Ei(e,this.columns,this.name)}}class Ei{constructor(e,t,i){this.table=e,this.columns=t,this.name=i}static[n]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[Bi.Symbol.Name]}_${this.columns.map(e=>e.name).join("_")}_pk`}}const Ki=Symbol.for("drizzle:PgViewConfig");function Ui(e){return(e.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map(e=>e.toLowerCase()).join("_")}function Mi(e){return(e.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((e,t,i)=>e+(0===i?t.toLowerCase():`${t[0].toUpperCase()}${t.slice(1)}`),"")}function Ri(e){return e}class Ji{static[n]="CasingCache";cache={};cachedTables={};convert;constructor(e){this.convert="snake_case"===e?Ui:"camelCase"===e?Mi:Ri}getColumnCasing(e){if(!e.keyAsName)return e.name;const t=`${e.table[K.Symbol.Schema]??"public"}.${e.table[K.Symbol.OriginalName]}.${e.name}`;return this.cache[t]||this.cacheTable(e.table),this.cache[t]}cacheTable(e){const t=`${e[K.Symbol.Schema]??"public"}.${e[K.Symbol.OriginalName]}`;if(!this.cachedTables[t]){for(const i of Object.values(e[K.Symbol.Columns])){const e=`${t}.${i.name}`;this.cache[e]=this.convert(i.name)}this.cachedTables[t]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class Wi extends Error{static[n]="DrizzleError";constructor({message:e,cause:t}){super(e),this.name="DrizzleError",this.cause=t}}function Hi(e,t){return!function(e){return"object"==typeof e&&null!==e&&"mapToDriverValue"in e&&"function"==typeof e.mapToDriverValue}(t)||R(e)||s(e,Y)||s(e,te)||s(e,r)||s(e,K)||s(e,ne)?e:new Y(e,t)}const Gi=(e,t)=>Z`${e} = ${Hi(t,e)}`,Xi=(e,t)=>Z`${e} <> ${Hi(t,e)}`;function Yi(...e){const t=e.filter(e=>void 0!==e);if(0!==t.length)return 1===t.length?new W(t):new W([new J("("),Z.join(t,new J(" and ")),new J(")")])}function Zi(...e){const t=e.filter(e=>void 0!==e);if(0!==t.length)return 1===t.length?new W(t):new W([new J("("),Z.join(t,new J(" or ")),new J(")")])}function en(e){return Z`not ${e}`}const tn=(e,t)=>Z`${e} > ${Hi(t,e)}`,nn=(e,t)=>Z`${e} >= ${Hi(t,e)}`,sn=(e,t)=>Z`${e} < ${Hi(t,e)}`,rn=(e,t)=>Z`${e} <= ${Hi(t,e)}`;function on(e,t){return Array.isArray(t)?0===t.length?Z`false`:Z`${e} in ${t.map(t=>Hi(t,e))}`:Z`${e} in ${Hi(t,e)}`}function an(e,t){return Array.isArray(t)?0===t.length?Z`true`:Z`${e} not in ${t.map(t=>Hi(t,e))}`:Z`${e} not in ${Hi(t,e)}`}function ln(e){return Z`${e} is null`}function un(e){return Z`${e} is not null`}function cn(e){return Z`exists ${e}`}function _n(e){return Z`not exists ${e}`}function dn(e,t,i){return Z`${e} between ${Hi(t,e)} and ${Hi(i,e)}`}function mn(e,t,i){return Z`${e} not between ${Hi(t,e)} and ${Hi(i,e)}`}function pn(e,t){return Z`${e} like ${t}`}function gn(e,t){return Z`${e} not like ${t}`}function fn(e,t){return Z`${e} ilike ${t}`}function hn(e,t){return Z`${e} not ilike ${t}`}function yn(e){return Z`${e} asc`}function bn(e){return Z`${e} desc`}class vn{constructor(e,t,i){this.sourceTable=e,this.referencedTable=t,this.relationName=i,this.referencedTableName=t[K.Symbol.Name]}static[n]="Relation";referencedTableName;fieldName}class wn extends vn{constructor(e,t,i,n){super(e,t,i?.relationName),this.config=i,this.isNullable=n}static[n]="One";withFieldName(e){const t=new wn(this.sourceTable,this.referencedTable,this.config,this.isNullable);return t.fieldName=e,t}}class Nn extends vn{constructor(e,t,i){super(e,t,i?.relationName),this.config=i}static[n]="Many";withFieldName(e){const t=new Nn(this.sourceTable,this.referencedTable,this.config);return t.fieldName=e,t}}function Sn(e,t,i){if(s(i,wn)&&i.config)return{fields:i.config.fields,references:i.config.references};const n=t[M(i.referencedTable)];if(!n)throw new Error(`Table "${i.referencedTable[K.Symbol.Name]}" not found in schema`);const r=e[n];if(!r)throw new Error(`Table "${n}" not found in schema`);const o=i.sourceTable,a=t[M(o)];if(!a)throw new Error(`Table "${o[K.Symbol.Name]}" not found in schema`);const l=[];for(const e of Object.values(r.relations))(i.relationName&&i!==e&&e.relationName===i.relationName||!i.relationName&&e.referencedTable===i.sourceTable)&&l.push(e);if(l.length>1)throw i.relationName?new Error(`There are multiple relations with name "${i.relationName}" in table "${n}"`):new Error(`There are multiple relations between "${n}" and "${i.sourceTable[K.Symbol.Name]}". Please specify relation name`);if(l[0]&&s(l[0],wn)&&l[0].config)return{fields:l[0].config.references,references:l[0].config.fields};throw new Error(`There is not enough information to infer relation "${a}.${i.fieldName}"`)}class xn extends ne{static[n]="PgViewBase"}class kn{static[n]="PgDialect";casing;constructor(e){this.casing=new Ji(e?.casing)}async migrate(e,t,i){const n="string"==typeof i?"__drizzle_migrations":i.migrationsTable??"__drizzle_migrations",s="string"==typeof i?"drizzle":i.migrationsSchema??"drizzle",r=Z`
2
2
  CREATE TABLE IF NOT EXISTS ${Z.identifier(s)}.${Z.identifier(n)} (
3
3
  id SERIAL PRIMARY KEY,
4
4
  hash text NOT NULL,
5
5
  created_at bigint
6
6
  )
7
- `;await t.execute(Z`CREATE SCHEMA IF NOT EXISTS ${Z.identifier(s)}`),await t.execute(r);const o=(await t.all(Z`select id, hash, created_at from ${Z.identifier(s)}.${Z.identifier(n)} order by created_at desc limit 1`))[0];await t.transaction(async t=>{for await(const i of e)if(!o||Number(o.created_at)<i.folderMillis){for(const e of i.sql)await t.execute(Z.raw(e));await t.execute(Z`insert into ${Z.identifier(s)}.${Z.identifier(n)} ("hash", "created_at") values(${i.hash}, ${i.folderMillis})`)}})}escapeName(e){return`"${e.replace(/"/g,'""')}"`}escapeParam(e){return`$${e+1}`}escapeString(e){return`'${e.replace(/'/g,"''")}'`}buildWithCTE(e){if(!e?.length)return;const t=[Z`with `];for(const[i,n]of e.entries())t.push(Z`${Z.identifier(n._.alias)} as (${n._.sql})`),i<e.length-1&&t.push(Z`, `);return t.push(Z` `),Z.join(t)}buildDeleteQuery({table:e,where:t,returning:i,withList:n}){return Z`${this.buildWithCTE(n)}delete from ${e}${t?Z` where ${t}`:void 0}${i?Z` returning ${this.buildSelection(i,{isSingleTable:!0})}`:void 0}`}buildUpdateSet(e,t){const i=e[K.Symbol.Columns],n=Object.keys(i).filter(e=>void 0!==t[e]||void 0!==i[e]?.onUpdateFn),r=n.length;return Z.join(n.flatMap((e,n)=>{const o=i[e],a=o.onUpdateFn?.(),l=t[e]??(s(a,W)?a:Z.param(a,o)),u=Z`${Z.identifier(this.casing.getColumnCasing(o))} = ${l}`;return n<r-1?[u,Z.raw(", ")]:[u]}))}buildUpdateQuery({table:e,set:t,where:i,returning:n,withList:s,from:r,joins:o}){const a=this.buildWithCTE(s),l=e[Bi.Symbol.Name],u=e[Bi.Symbol.Schema],c=e[Bi.Symbol.OriginalName],_=l===c?void 0:l,d=Z`${u?Z`${Z.identifier(u)}.`:void 0}${Z.identifier(c)}${_&&Z` ${Z.identifier(_)}`}`,m=this.buildUpdateSet(e,t),p=r&&Z.join([Z.raw(" from "),this.buildFromTable(r)]);return Z`${a}update ${d} set ${m}${p}${this.buildJoins(o)}${i?Z` where ${i}`:void 0}${n?Z` returning ${this.buildSelection(n,{isSingleTable:!r})}`:void 0}`}buildSelection(e,{isSingleTable:t=!1}={}){const i=e.length,n=e.flatMap(({field:e},n)=>{const o=[];if(s(e,W.Aliased)&&e.isSelectionField)o.push(Z.identifier(e.fieldAlias));else if(s(e,W.Aliased)||s(e,W)){const i=s(e,W.Aliased)?e.sql:e;t?o.push(new W(i.queryChunks.map(e=>s(e,w)?Z.identifier(this.casing.getColumnCasing(e)):e))):o.push(i),s(e,W.Aliased)&&o.push(Z` as ${Z.identifier(e.fieldAlias)}`)}else if(s(e,r))t?o.push(Z.identifier(this.casing.getColumnCasing(e))):o.push(e);else if(s(e,T)){const t=Object.entries(e._.selectedFields);if(1===t.length){const i=t[0][1],n=s(i,W)?i.decoder:s(i,r)?{mapFromDriverValue:e=>i.mapFromDriverValue(e)}:i.sql.decoder;n&&(e._.sql.decoder=n)}o.push(e)}return n<i-1&&o.push(Z`, `),o});return Z.join(n)}buildJoins(e){if(!e||0===e.length)return;const t=[];for(const[i,n]of e.entries()){0===i&&t.push(Z` `);const r=n.table,o=n.lateral?Z` lateral`:void 0,a=n.on?Z` on ${n.on}`:void 0;if(s(r,Bi)){const e=r[Bi.Symbol.Name],i=r[Bi.Symbol.Schema],s=r[Bi.Symbol.OriginalName],l=e===s?void 0:n.alias;t.push(Z`${Z.raw(n.joinType)} join${o} ${i?Z`${Z.identifier(i)}.`:void 0}${Z.identifier(s)}${l&&Z` ${Z.identifier(l)}`}${a}`)}else if(s(r,ne)){const e=r[A].name,i=r[A].schema,s=r[A].originalName,l=e===s?void 0:n.alias;t.push(Z`${Z.raw(n.joinType)} join${o} ${i?Z`${Z.identifier(i)}.`:void 0}${Z.identifier(s)}${l&&Z` ${Z.identifier(l)}`}${a}`)}else t.push(Z`${Z.raw(n.joinType)} join${o} ${r}${a}`);i<e.length-1&&t.push(Z` `)}return Z.join(t)}buildFromTable(e){if(s(e,K)&&e[K.Symbol.IsAlias]){let t=Z`${Z.identifier(e[K.Symbol.OriginalName])}`;return e[K.Symbol.Schema]&&(t=Z`${Z.identifier(e[K.Symbol.Schema])}.${t}`),Z`${t} ${Z.identifier(e[K.Symbol.Name])}`}return e}buildSelectQuery({withList:e,fields:t,fieldsFlat:i,where:n,having:o,table:a,joins:l,orderBy:u,groupBy:c,limit:_,offset:d,lockingClause:m,distinct:p,setOperators:g}){const f=i??me(t);for(const e of f)if(s(e.field,r)&&U(e.field.table)!==(s(a,T)?a._.alias:s(a,kn)?a[A].name:s(a,W)?void 0:U(a))&&!(e=>l?.some(({alias:t})=>t===(e[K.Symbol.IsAlias]?U(e):e[K.Symbol.BaseName])))(e.field.table)){const t=U(e.field.table);throw new Error(`Your "${e.path.join("->")}" field references a column "${t}"."${e.field.name}", but the table "${t}" is not part of the query! Did you forget to join it?`)}const h=!l||0===l.length,y=this.buildWithCTE(e);let b;p&&(b=!0===p?Z` distinct`:Z` distinct on (${Z.join(p.on,Z`, `)})`);const v=this.buildSelection(f,{isSingleTable:h}),w=this.buildFromTable(a),N=this.buildJoins(l),S=n?Z` where ${n}`:void 0,k=o?Z` having ${o}`:void 0;let x,C;u&&u.length>0&&(x=Z` order by ${Z.join(u,Z`, `)}`),c&&c.length>0&&(C=Z` group by ${Z.join(c,Z`, `)}`);const q="object"==typeof _||"number"==typeof _&&_>=0?Z` limit ${_}`:void 0,j=d?Z` offset ${d}`:void 0,$=Z.empty();if(m){const e=Z` for ${Z.raw(m.strength)}`;m.config.of&&e.append(Z` of ${Z.join(Array.isArray(m.config.of)?m.config.of:[m.config.of],Z`, `)}`),m.config.noWait?e.append(Z` nowait`):m.config.skipLocked&&e.append(Z` skip locked`),$.append(e)}const P=Z`${y}select${b} ${v} from ${w}${N}${S}${C}${k}${x}${q}${j}${$}`;return g.length>0?this.buildSetOperations(P,g):P}buildSetOperations(e,t){const[i,...n]=t;if(!i)throw new Error("Cannot pass undefined values to any set operator");return 0===n.length?this.buildSetOperationQuery({leftSelect:e,setOperator:i}):this.buildSetOperations(this.buildSetOperationQuery({leftSelect:e,setOperator:i}),n)}buildSetOperationQuery({leftSelect:e,setOperator:{type:t,isAll:i,rightSelect:n,limit:r,orderBy:o,offset:a}}){const l=Z`(${e.getSQL()}) `,u=Z`(${n.getSQL()})`;let c;if(o&&o.length>0){const e=[];for(const t of o)if(s(t,w))e.push(Z.identifier(t.name));else if(s(t,W)){for(let e=0;e<t.queryChunks.length;e++){const i=t.queryChunks[e];s(i,w)&&(t.queryChunks[e]=Z.identifier(i.name))}e.push(Z`${t}`)}else e.push(Z`${t}`);c=Z` order by ${Z.join(e,Z`, `)} `}const _="object"==typeof r||"number"==typeof r&&r>=0?Z` limit ${r}`:void 0,d=Z.raw(`${t} ${i?"all ":""}`);return Z`${l}${d}${u}${c}${_}${a?Z` offset ${a}`:void 0}`}buildInsertQuery({table:e,values:t,onConflict:i,returning:n,withList:r,select:o,overridingSystemValue_:a}){const l=[],u=e[K.Symbol.Columns],c=Object.entries(u).filter(([e,t])=>!t.shouldDisableInsert()),_=c.map(([,e])=>Z.identifier(this.casing.getColumnCasing(e)));if(o){const e=t;s(e,W)?l.push(e):l.push(e.getSQL())}else{const e=t;l.push(Z.raw("values "));for(const[t,i]of e.entries()){const n=[];for(const[e,t]of c){const r=i[e];if(void 0===r||s(r,Y)&&void 0===r.value)if(void 0!==t.defaultFn){const e=t.defaultFn(),i=s(e,W)?e:Z.param(e,t);n.push(i)}else if(t.default||void 0===t.onUpdateFn)n.push(Z`default`);else{const e=t.onUpdateFn(),i=s(e,W)?e:Z.param(e,t);n.push(i)}else n.push(r)}l.push(n),t<e.length-1&&l.push(Z`, `)}}const d=this.buildWithCTE(r),m=Z.join(l);return Z`${d}insert into ${e} ${_} ${!0===a?Z`overriding system value `:void 0}${m}${i?Z` on conflict ${i}`:void 0}${n?Z` returning ${this.buildSelection(n,{isSingleTable:!0})}`:void 0}`}buildRefreshMaterializedViewQuery({view:e,concurrently:t,withNoData:i}){return Z`refresh materialized view${t?Z` concurrently`:void 0} ${e}${i?Z` with no data`:void 0}`}prepareTyping(e){return s(e,ut)||s(e,ot)?"json":s(e,St)?"decimal":s(e,ni)?"time":s(e,oi)||s(e,li)?"timestamp":s(e,Ke)||s(e,Me)?"date":s(e,_i)?"uuid":"none"}sqlToQuery(e,t){return e.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:t})}buildRelationalQueryWithoutPK({fullSchema:e,schema:t,tableNamesMap:i,table:n,tableConfig:o,queryConfig:a,tableAlias:l,nestedQueryRelation:u,joinOn:c}){let _,d,m,p=[],g=[];const f=[];if(!0===a){p=Object.entries(o.columns).map(([e,t])=>({dbKey:t.name,tsKey:e,field:ae(t,l),relationTableTsKey:void 0,isJson:!1,selection:[]}))}else{const n=Object.fromEntries(Object.entries(o.columns).map(([e,t])=>[e,ae(t,l)]));if(a.where){const e="function"==typeof a.where?a.where(n,{and:Yi,between:dn,eq:Gi,exists:cn,gt:tn,gte:nn,ilike:fn,inArray:on,isNull:ln,isNotNull:un,like:pn,lt:sn,lte:rn,ne:Xi,not:en,notBetween:mn,notExists:_n,notLike:gn,notIlike:hn,notInArray:an,or:Zi,sql:Z}):a.where;m=e&&ue(e,l)}const u=[];let c=[];if(a.columns){let e=!1;for(const[t,i]of Object.entries(a.columns))void 0!==i&&t in o.columns&&(e||!0!==i||(e=!0),c.push(t));c.length>0&&(c=e?c.filter(e=>!0===a.columns?.[e]):Object.keys(o.columns).filter(e=>!c.includes(e)))}else c=Object.keys(o.columns);for(const e of c){const t=o.columns[e];u.push({tsKey:e,value:t})}let h,y=[];if(a.with&&(y=Object.entries(a.with).filter(e=>!!e[1]).map(([e,t])=>({tsKey:e,queryConfig:t,relation:o.relations[e]}))),a.extras){h="function"==typeof a.extras?a.extras(n,{sql:Z}):a.extras;for(const[e,t]of Object.entries(h))u.push({tsKey:e,value:le(t,l)})}for(const{tsKey:e,value:t}of u)p.push({dbKey:s(t,W.Aliased)?t.fieldAlias:o.columns[e].name,tsKey:e,field:s(t,r)?ae(t,l):t,relationTableTsKey:void 0,isJson:!1,selection:[]});let b="function"==typeof a.orderBy?a.orderBy(n,{sql:Z,asc:yn,desc:bn}):a.orderBy??[];Array.isArray(b)||(b=[b]),g=b.map(e=>s(e,r)?ae(e,l):ue(e,l)),_=a.limit,d=a.offset;for(const{tsKey:n,queryConfig:r,relation:o}of y){const a=Sn(t,i,o),u=i[M(o.referencedTable)],c=`${l}_${n}`,_=Yi(...a.fields.map((e,t)=>Gi(ae(a.references[t],c),ae(e,l)))),d=this.buildRelationalQueryWithoutPK({fullSchema:e,schema:t,tableNamesMap:i,table:e[u],tableConfig:t[u],queryConfig:s(o,wn)?!0===r?{limit:1}:{...r,limit:1}:r,tableAlias:c,joinOn:_,nestedQueryRelation:o}),m=Z`${Z.identifier(c)}.${Z.identifier("data")}`.as(n);f.push({on:Z`true`,table:new T(d.sql,{},c),alias:c,joinType:"left",lateral:!0}),p.push({dbKey:n,tsKey:n,field:m,relationTableTsKey:u,isJson:!0,selection:d.selection})}}if(0===p.length)throw new Wi({message:`No fields selected for table "${o.tsName}" ("${l}")`});let h;if(m=Yi(c,m),u){let e=Z`json_build_array(${Z.join(p.map(({field:e,tsKey:t,isJson:i})=>i?Z`${Z.identifier(`${l}_${t}`)}.${Z.identifier("data")}`:s(e,W.Aliased)?e.sql:e),Z`, `)})`;s(u,Nn)&&(e=Z`coalesce(json_agg(${e}${g.length>0?Z` order by ${Z.join(g,Z`, `)}`:void 0}), '[]'::json)`);const t=[{dbKey:"data",tsKey:"data",field:e.as("data"),isJson:!0,relationTableTsKey:o.tsName,selection:p}];void 0!==_||void 0!==d||g.length>0?(h=this.buildSelectQuery({table:oe(n,l),fields:{},fieldsFlat:[{path:[],field:Z.raw("*")}],where:m,limit:_,offset:d,orderBy:g,setOperators:[]}),m=void 0,_=void 0,d=void 0,g=[]):h=oe(n,l),h=this.buildSelectQuery({table:s(h,Bi)?h:new T(h,{},l),fields:{},fieldsFlat:t.map(({field:e})=>({path:[],field:s(e,r)?ae(e,l):e})),joins:f,where:m,limit:_,offset:d,orderBy:g,setOperators:[]})}else h=this.buildSelectQuery({table:oe(n,l),fields:{},fieldsFlat:p.map(({field:e})=>({path:[],field:s(e,r)?ae(e,l):e})),joins:f,where:m,limit:_,offset:d,orderBy:g,setOperators:[]});return{tableTsKey:o.tsName,sql:h,selection:p}}}class Cn{static[n]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class qn{static[n]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(e){this.fields=e.fields,this.session=e.session,this.dialect=e.dialect,e.withList&&(this.withList=e.withList),this.distinct=e.distinct}authToken;setToken(e){return this.authToken=e,this}from(e){const t=!!this.fields,i=e;let n;return n=this.fields?this.fields:s(i,T)?Object.fromEntries(Object.keys(i._.selectedFields).map(e=>[e,i[e]])):s(i,kn)?i[A].selectedFields:s(i,W)?{}:ge(i),new $n({table:i,fields:n,isPartialSelect:t,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class jn extends Cn{static[n]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;cacheConfig=void 0;usedTables=new Set;constructor({table:e,fields:t,isPartialSelect:i,session:n,dialect:s,withList:r,distinct:o}){super(),this.config={withList:r,table:e,fields:{...t},distinct:o,setOperators:[]},this.isPartialSelect=i,this.session=n,this.dialect=s,this._={selectedFields:t,config:this.config},this.tableName=fe(e),this.joinsNotNullableMap="string"==typeof this.tableName?{[this.tableName]:!0}:{};for(const t of Wn(e))this.usedTables.add(t)}getUsedTables(){return[...this.usedTables]}createJoin(e,t){return(i,n)=>{const r=this.tableName,o=fe(i);for(const e of Wn(i))this.usedTables.add(e);if("string"==typeof o&&this.config.joins?.some(e=>e.alias===o))throw new Error(`Alias "${o}" is already used in this query`);if(!this.isPartialSelect&&(1===Object.keys(this.joinsNotNullableMap).length&&"string"==typeof r&&(this.config.fields={[r]:this.config.fields}),"string"==typeof o&&!s(i,W))){const e=s(i,T)?i._.selectedFields:s(i,ne)?i[A].selectedFields:i[K.Symbol.Columns];this.config.fields[o]=e}if("function"==typeof n&&(n=n(new Proxy(this.config.fields,new $i({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.joins||(this.config.joins=[]),this.config.joins.push({on:n,table:i,joinType:e,alias:o,lateral:t}),"string"==typeof o)switch(e){case"left":this.joinsNotNullableMap[o]=!1;break;case"right":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[o]=!0;break;case"cross":case"inner":this.joinsNotNullableMap[o]=!0;break;case"full":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[o]=!1}return this}}leftJoin=this.createJoin("left",!1);leftJoinLateral=this.createJoin("left",!0);rightJoin=this.createJoin("right",!1);innerJoin=this.createJoin("inner",!1);innerJoinLateral=this.createJoin("inner",!0);fullJoin=this.createJoin("full",!1);crossJoin=this.createJoin("cross",!1);crossJoinLateral=this.createJoin("cross",!0);createSetOperator(e,t){return i=>{const n="function"==typeof i?i(Tn()):i;if(!pe(this.getSelectedFields(),n.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:e,isAll:t,rightSelect:n}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);intersectAll=this.createSetOperator("intersect",!0);except=this.createSetOperator("except",!1);exceptAll=this.createSetOperator("except",!0);addSetOperators(e){return this.config.setOperators.push(...e),this}where(e){return"function"==typeof e&&(e=e(new Proxy(this.config.fields,new $i({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.where=e,this}having(e){return"function"==typeof e&&(e=e(new Proxy(this.config.fields,new $i({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.having=e,this}groupBy(...e){if("function"==typeof e[0]){const t=e[0](new Proxy(this.config.fields,new $i({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(t)?t:[t]}else this.config.groupBy=e;return this}orderBy(...e){if("function"==typeof e[0]){const t=e[0](new Proxy(this.config.fields,new $i({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),i=Array.isArray(t)?t:[t];this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=i:this.config.orderBy=i}else{const t=e;this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=t:this.config.orderBy=t}return this}limit(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).limit=e:this.config.limit=e,this}offset(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).offset=e:this.config.offset=e,this}for(e,t={}){return this.config.lockingClause={strength:e,config:t},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){const{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}as(e){const t=[];if(t.push(...Wn(this.config.table)),this.config.joins)for(const e of this.config.joins)t.push(...Wn(e.table));return new Proxy(new T(this.getSQL(),this.config.fields,e,!1,[...new Set(t)]),new $i({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new $i({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}$withCache(e){return this.cacheConfig=void 0===e?{config:{},enable:!0,autoInvalidate:!0}:!1===e?{enable:!1}:{enable:!0,autoInvalidate:!0,...e},this}}class $n extends jn{static[n]="PgSelect";_prepare(e){const{session:t,config:i,dialect:n,joinsNotNullableMap:s,authToken:r,cacheConfig:o,usedTables:a}=this;if(!t)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");const{fields:l}=i;return D.startActiveSpan("drizzle.prepareQuery",()=>{const i=me(l),u=t.prepareQuery(n.sqlToQuery(this.getSQL()),i,e,!0,void 0,{type:"select",tables:[...a]},o);return u.joinsNotNullableMap=s,u.setToken(r)})}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=e=>D.startActiveSpan("drizzle.operation",()=>this._prepare().execute(e,this.authToken))}function Pn(e,t){return(i,n,...s)=>{const r=[n,...s].map(i=>({type:e,isAll:t,rightSelect:i}));for(const e of r)if(!pe(i.getSelectedFields(),e.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return i.addSetOperators(r)}}!function(e,t){for(const i of t)for(const t of Object.getOwnPropertyNames(i.prototype))"constructor"!==t&&Object.defineProperty(e.prototype,t,Object.getOwnPropertyDescriptor(i.prototype,t)||Object.create(null))}($n,[ji]);const Tn=()=>({union:Bn,unionAll:Dn,intersect:An,intersectAll:On,except:Ln,exceptAll:In}),Bn=Pn("union",!1),Dn=Pn("union",!0),An=Pn("intersect",!1),On=Pn("intersect",!0),Ln=Pn("except",!1),In=Pn("except",!0);class zn{static[n]="PgQueryBuilder";dialect;dialectConfig;constructor(e){this.dialect=s(e,xn)?e:void 0,this.dialectConfig=s(e,xn)?void 0:e}$with=(e,t)=>{const i=this;return{as:n=>("function"==typeof n&&(n=n(i)),new Proxy(new B(n.getSQL(),t??("getSelectedFields"in n?n.getSelectedFields()??{}:{}),e,!0),new $i({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"})))}};with(...e){const t=this;return{select:function(i){return new qn({fields:i??void 0,session:void 0,dialect:t.getDialect(),withList:e})},selectDistinct:function(e){return new qn({fields:e??void 0,session:void 0,dialect:t.getDialect(),distinct:!0})},selectDistinctOn:function(e,i){return new qn({fields:i??void 0,session:void 0,dialect:t.getDialect(),distinct:{on:e}})}}}select(e){return new qn({fields:e??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(e){return new qn({fields:e??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(e,t){return new qn({fields:t??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:e}})}getDialect(){return this.dialect||(this.dialect=new xn(this.dialectConfig)),this.dialect}}class Fn{constructor(e,t){this.name=e,this.schema=t}static[n]="PgDefaultViewBuilderCore";config={};with(e){return this.config.with=e,this}}class Qn extends Fn{static[n]="PgViewBuilder";as(e){"function"==typeof e&&(e=e(new zn));const t=new $i({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}),i=new Proxy(e.getSelectedFields(),t);return new Proxy(new Mn({pgConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:i,query:e.getSQL().inlineParams()}}),t)}}class Vn extends Fn{static[n]="PgManualViewBuilder";columns;constructor(e,t,i){super(e,i),this.columns=ge(Ai(e,t))}existing(){return new Proxy(new Mn({pgConfig:void 0,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:void 0}}),new $i({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}as(e){return new Proxy(new Mn({pgConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:e.inlineParams()}}),new $i({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}}class En{constructor(e,t){this.name=e,this.schema=t}static[n]="PgMaterializedViewBuilderCore";config={};using(e){return this.config.using=e,this}with(e){return this.config.with=e,this}tablespace(e){return this.config.tablespace=e,this}withNoData(){return this.config.withNoData=!0,this}}class Kn extends En{static[n]="PgMaterializedViewBuilder";as(e){"function"==typeof e&&(e=e(new zn));const t=new $i({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}),i=new Proxy(e.getSelectedFields(),t);return new Proxy(new Rn({pgConfig:{with:this.config.with,using:this.config.using,tablespace:this.config.tablespace,withNoData:this.config.withNoData},config:{name:this.name,schema:this.schema,selectedFields:i,query:e.getSQL().inlineParams()}}),t)}}class Un extends En{static[n]="PgManualMaterializedViewBuilder";columns;constructor(e,t,i){super(e,i),this.columns=ge(Ai(e,t))}existing(){return new Proxy(new Rn({pgConfig:{tablespace:this.config.tablespace,using:this.config.using,with:this.config.with,withNoData:this.config.withNoData},config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:void 0}}),new $i({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}as(e){return new Proxy(new Rn({pgConfig:{tablespace:this.config.tablespace,using:this.config.using,with:this.config.with,withNoData:this.config.withNoData},config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:e.inlineParams()}}),new $i({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}}class Mn extends kn{static[n]="PgView";[Ki];constructor({pgConfig:e,config:t}){super(t),e&&(this[Ki]={with:e.with})}}const Jn=Symbol.for("drizzle:PgMaterializedViewConfig");class Rn extends kn{static[n]="PgMaterializedView";[Jn];constructor({pgConfig:e,config:t}){super(t),this[Jn]={with:e?.with,using:e?.using,tablespace:e?.tablespace,withNoData:e?.withNoData}}}function Wn(e){return s(e,Bi)?[e[O]?`${e[O]}.${e[K.Symbol.BaseName]}`:e[K.Symbol.BaseName]]:s(e,T)?e._.usedTables??[]:s(e,W)?e.usedTables??[]:[]}class Hn{constructor(e,t,i){this.seqName=e,this.seqOptions=t,this.schema=i}static[n]="PgSequence"}class Gn{constructor(e){this.schemaName=e}static[n]="PgSchema";table=(e,t,i)=>Di(e,t,i,this.schemaName);view=(e,t)=>function(e,t,i){return t?new Vn(e,t,i):new Qn(e,i)}(e,t,this.schemaName);materializedView=(e,t)=>function(e,t,i){return t?new Un(e,t,i):new Kn(e,i)}(e,t,this.schemaName);enum(e,t){return Array.isArray(t)?function(e,t,i){const n=Object.assign(e=>new $(e??"",n),{enumName:e,enumValues:t,schema:i,[j]:!0});return n}(e,[...t],this.schemaName):function(e,t,i){const n=Object.assign(e=>new C(e??"",n),{enumName:e,enumValues:Object.values(t),schema:i,[j]:!0});return n}(e,t,this.schemaName)}sequence=(e,t)=>function(e,t,i){return new Hn(e,t,i)}(e,t,this.schemaName);getSQL(){return new W([Z.identifier(this.schemaName)])}shouldOmitSQLParens(){return!0}}function Xn(e){if("public"===e)throw new Error("You can't specify 'public' as schema name. Postgres is using public schema by default. If you want to use 'public' schema, just use pgTable() instead of creating a schema");return new Gn(e)}const Yn=Xn("raw"),Zn=Xn("rendered"),es=Xn("internal");Xn("cached");const ts=Yn.enum("state",["draft","published","expired"]),is=Yn.enum("restriction_level",["ogl_compatible","ogl_equivalent","restricted","highly_restricted"]),ns=Yn.enum("media_classification",["image","photo","artwork","screenshot","map","gif","speech","music","other","film","tv","software","misc_website_content","no_best_fit"]),ss=Yn.enum("media_provenance",["oak_created","oak_illustration","partner_created","creative_commons","pixabay","pexels","unsplash","openverse","freesvg","needpix","bridgeman","shutterstock","dall_e","adobe_firefly","other","legacy_data"]),rs=Yn.enum("acquisition_basis",["oak_owned","public_domain","gratis","paid"]),os=Yn.enum("content_cycle",["cycle_1","cycle_2"]),as=Yn.enum("permission_status",["not_required","granted","denied"]),ls=Yn.enum("territory",["uk","worldwide","worldwide_no_usa","other_territory"]),us=Yn.enum("licence",["cc0","cc_by","cc_by_sa","cc_by_nc","cc_by_nc_sa","cc_by_nc_nd","cc_by_nd","ogl","reusable_perpetuity","reusable_within_term","single_use","restricted_use","internal_use_only","other"]),cs=Yn.enum("question_type",["explanatory-text","match","multiple-choice","order","short-answer","text"]),_s=Yn.enum("tag_category",["discipline","domain","world_view"]),ds=Yn.enum("media_kind",["video","sound"]),ms=Yn.enum("redirect_type",["301","302","307","308"]),ps=Yn.enum("redirect_entity_source",["lessons","units","programmes","subjects"]),gs=es.enum("operation",["insert","update","delete"]),fs=es.enum("media_type_enum",["video","sound","gdrive_file","bucket_file"]),hs=es.enum("lesson_component_type_enum",["document","downloadable","lesson_video","media_clip","quiz"]),ys={created_at:ui("created_at",{withTimezone:!0}).defaultNow(),updated_at:ui("updated_at",{withTimezone:!0}).$onUpdateFn(()=>new Date)},bs={created_at:ui("created_at",{withTimezone:!0}).notNull().defaultNow()},vs=es.enum("release_type",["mathfix","migration"]),ws=es.table("releases",{release_id:tt("release_id").primaryKey().generatedByDefaultAsIdentity(),_authoring_state:ts("_authoring_state").notNull(),approved:Te("approved").notNull().default(!1),approver:ct("approver"),description:ti("description"),estimated_release_date:Je("estimated_release_date"),locked:Te("locked").notNull().default(!1),name:ti("name"),notes:ti("notes"),release_type:vs("release_type"),release_uid:Ae("release_uid",{length:16}),...ys}),Ns={_state:ts("_state").notNull()},Ss={_authoring_state:ts("_authoring_state").notNull()},ks={_choice_state:ts("_choice_state").notNull()},xs={_lesson_state:ts("_lesson_state").notNull()},Cs={_programme_state:ts("_programme_state").notNull()},qs={_question_state:ts("_question_state").notNull()},js={_quiz_state:ts("_quiz_state").notNull()},$s={_subject_phase_state:ts("_subject_phase_state").notNull()},Ps={_thread_state:ts("_thread_state").notNull()},Ts={_unit_state:ts("_unit_state").notNull()},Bs={_unit_variant_state:ts("_unit_variant_state").notNull()},Ds={_works_copyright_state:ts("_works_copyright_state").notNull()},As={_choice_state:ts("_choice_state")},Os={_unit_variant_state:ts("_unit_variant_state")},Ls=({name:e,columnA:i,columnB:n})=>de(e,t.sql`${i} = 'expired' or ${n} = 'expired' or ${i} = ${n}`),Is=({name:e,columnA:i,columnB:n})=>de(e,t.sql`${i} = 'expired' or ${n} is null or ${n} = 'expired' or ${i} = ${n}`),zs={_expire_on_release:Te("_expire_on_release").notNull().default(!1),_release_id:tt("_release_id").references(()=>ws.release_id)},Fs=Ns,Qs=Yn.table("gdrive_files",{gdrive_file_id:tt("gdrive_file_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,epoch:ti("epoch"),google_drive_id:ti("google_drive_id"),google_drive_url:ti("google_drive_url"),opendocument_presentation_bucket_name:ti("opendocument_presentation_bucket_name"),opendocument_presentation_bucket_path:ti("opendocument_presentation_bucket_path"),pdf_bucket_name:ti("pdf_bucket_name"),pdf_bucket_path:ti("pdf_bucket_path"),powerpoint_bucket_name:ti("powerpoint_bucket_name"),powerpoint_bucket_path:ti("powerpoint_bucket_path"),previous_document_id:tt("previous_document_id"),...zs,...ys}),Vs=Yn.table("supervision_levels",{supervision_level_id:tt("supervision_level_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),description:ti("description"),global_position:tt("global_position").notNull(),supervision_level_rating:tt("supervision_level_rating"),title:ti("title").notNull(),...zs,...ys}),Es=Yn.table("lessons",{lesson_id:tt("lesson_id").notNull().generatedByDefaultAsIdentity(),...Fs,supervision_level_id:tt("supervision_level_id"),agf__has_copyright_restrictions:Te("agf__has_copyright_restrictions"),agf__restricted_download:Te("agf__restricted_download"),deprecated_fields:ct("deprecated_fields"),equipment_and_resources:ct("equipment_and_resources"),has_tag_practical_not_remote:Te("has_tag_practical_not_remote").notNull().default(!1),is_sensitive:Te("is_sensitive").notNull().default(!1),key_learning_points:ct("key_learning_points"),keywords:ct("keywords"),lesson_outline:ct("lesson_outline"),misconceptions_and_common_mistakes:ct("misconceptions_and_common_mistakes"),phonics_outcome:ti("phonics_outcome"),pupil_lesson_outcome:ti("pupil_lesson_outcome"),slug:ti("slug").notNull(),teacher_tips:ct("teacher_tips"),title:ti("title").notNull(),...zs,...ys},e=>[Qi({columns:[e.lesson_id,e._state]}),c({name:"lessons_super_level_fk",columns:[e.supervision_level_id],foreignColumns:[Vs.supervision_level_id]})]),Ks=Yn.enum("document_type",["slidedeck","worksheet","worksheet_answers","supplementary_resource","lesson_guide"]),Us=Yn.table("documents",{document_id:tt("document_id").notNull().generatedByDefaultAsIdentity(),...Fs,gdrive_file_id:tt("gdrive_file_id").notNull(),lesson_id:tt("lesson_id").notNull(),deprecated_fields:ct("deprecated_fields"),document_type:Ks("document_type").notNull(),document_uid:Ae("document_uid",{length:16}),...zs,...ys},e=>[Qi({columns:[e.document_id,e._state]}),c({columns:[e.lesson_id,e._state],foreignColumns:[Es.lesson_id,Es._state]}),c({name:"documents_gdrive_file_fk",columns:[e.gdrive_file_id],foreignColumns:[Qs.gdrive_file_id]}),_().on(e.lesson_id,e.document_type,e._state)]),Ms=Yn.table("bucket_files",{bucket_file_id:tt("bucket_file_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,bucket_name:ti("bucket_name"),bucket_path:ti("bucket_path"),byte_size:tt("byte_size"),cloudinary_public_id:ti("cloudinary_public_id"),cloudinary_source_url:ti("cloudinary_source_url"),content_type:ti("content_type"),deprecated_fields:ct("deprecated_fields"),filename:ti("filename"),media_description:ti("media_description"),name:ti("name"),previous_downloadable_id:tt("previous_downloadable_id"),...zs,...ys});Yn.table("downloadables",{downloadable_id:tt("downloadable_id").notNull().generatedByDefaultAsIdentity(),...Fs,bucket_file_id:tt("bucket_file_id").notNull(),lesson_id:tt("lesson_id").notNull(),custom_title:ti("custom_title"),deprecated_fields:ct("deprecated_fields"),position:tt("position").notNull(),...zs,...ys},e=>[Qi({columns:[e.downloadable_id,e._state]}),c({columns:[e.lesson_id,e._state],foreignColumns:[Es.lesson_id,Es._state]}),c({name:"downloadables_bucket_file_fk",columns:[e.bucket_file_id],foreignColumns:[Ms.bucket_file_id]}),Fi("downloadables_lesson_position_unique").on(e.lesson_id,e.position,e._state)]);const Js=Yn.table("videos",{video_id:tt("video_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,bad_language_detected:Te("bad_language_detected"),caption_vtt_url:ti("caption_vtt_url"),cloudinary_public_id:ti("cloudinary_public_id"),cloudinary_source_url:ti("cloudinary_source_url"),contains_identifiable_face:Te("contains_identifiable_face"),deprecated_fields:ct("deprecated_fields"),duration_seconds:jt("duration_seconds"),has_bsl:Te("has_bsl"),inappropriate_words:ct("inappropriate_words"),ingest_origin:ti("ingest_origin"),language_approved:Te("language_approved"),media_description:ti("media_description"),mux_asset_id:ti("mux_asset_id"),mux_playback_id:ti("mux_playback_id"),name:ti("name"),previous_lesson_video_id:tt("previous_lesson_video_id"),previous_media_clip_ids:tt("previous_media_clip_ids").array(),raw_mux_data:ct("raw_mux_data"),signed_stream_id:ti("signed_stream_id"),title:ti("title"),transcript:ti("transcript"),url:ti("url"),video_uid:Ae("video_uid",{length:16}),...zs,...ys});Yn.table("lesson_videos",{lesson_video_id:tt("lesson_video_id").notNull().generatedByDefaultAsIdentity(),...Fs,lesson_id:tt("lesson_id").notNull(),sign_language_video_id:tt("sign_language_video_id"),video_id:tt("video_id").notNull(),...zs,...ys},e=>[Qi({columns:[e.lesson_video_id,e._state]}),c({columns:[e.lesson_id,e._state],foreignColumns:[Es.lesson_id,Es._state]}),c({columns:[e.video_id],foreignColumns:[Js.video_id]}),c({name:"lesson_videos_sign_lang_video_fk",columns:[e.sign_language_video_id],foreignColumns:[Js.video_id]}),Fi("lesson_videos_lesson_unique").on(e.lesson_id,e._state)]);const Rs=Yn.table("media_clip_cycles",{media_clip_cycle_id:tt("media_clip_cycle_id").notNull().generatedByDefaultAsIdentity(),...Fs,lesson_id:tt("lesson_id").notNull(),cycle_name:ti("cycle_name"),position:tt("position").notNull(),...zs,...ys},e=>[Qi({columns:[e.media_clip_cycle_id,e._state]}),c({columns:[e.lesson_id,e._state],foreignColumns:[Es.lesson_id,Es._state]}),Fi("media_clip_cycles_lesson_name_unique").on(e.lesson_id,e.cycle_name,e._state),Fi("media_clip_cycles_lesson_position_unique").on(e.lesson_id,e.position,e._state)]),Ws=Yn.table("sounds",{sound_id:tt("sound_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,cloudinary_public_id:ti("cloudinary_public_id"),cloudinary_source_url:ti("cloudinary_source_url"),duration_seconds:jt("duration_seconds"),media_description:ti("media_description"),mux_asset_id:ti("mux_asset_id"),mux_playback_id:ti("mux_playback_id"),name:ti("name"),previous_media_clip_ids:tt("previous_media_clip_ids").array(),transcript_vtt_url:ti("transcript_vtt_url"),...zs,...ys});Yn.table("media_clips",{media_clip_id:tt("media_clip_id").notNull().generatedByDefaultAsIdentity(),...Fs,media_clip_cycle_id:tt("media_clip_cycle_id").notNull(),sound_id:tt("sound_id"),video_id:tt("video_id"),custom_title:ti("custom_title"),media_kind:ds("media_kind"),position:tt("position").notNull(),...zs,...ys},e=>[Qi({columns:[e.media_clip_id,e._state]}),c({name:"media_clips_mc_cycle_fk",columns:[e.media_clip_cycle_id,e._state],foreignColumns:[Rs.media_clip_cycle_id,Rs._state]}),c({columns:[e.video_id],foreignColumns:[Js.video_id]}),c({columns:[e.sound_id],foreignColumns:[Ws.sound_id]}),de("media_clip_video_or_sound",t.sql`(video_id IS NOT NULL AND sound_id IS NULL) OR (video_id IS NULL AND sound_id IS NOT NULL)`),Fi("media_clips_cycle_position_unique").on(e.media_clip_cycle_id,e.position,e._state)]);const Hs=Yn.table("images",{image_id:tt("image_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,cloudinary_public_id:ti("cloudinary_public_id"),cloudinary_source_url:ti("cloudinary_source_url"),contains_identifiable_face:Te("contains_identifiable_face"),height:tt("height"),media_description:ti("media_description"),name:ti("name"),width:tt("width"),...zs,...ys}),Gs=Yn.table("questions",{question_id:tt("question_id").notNull().generatedByDefaultAsIdentity(),...Fs,stem_image_id:tt("stem_image_id"),deprecated_fields:ct("deprecated_fields"),feedback:ti("feedback"),hint:ti("hint"),question_type:cs("question_type").notNull(),question_uid:Ae("question_uid",{length:16}).notNull(),stem_text:ti("stem_text"),...zs,...ys},e=>[Qi({columns:[e.question_id,e._state]}),c({columns:[e.stem_image_id],foreignColumns:[Hs.image_id]})]);Yn.table("question_options",{option_id:tt("option_id").notNull().generatedByDefaultAsIdentity(),...Fs,body_image_id:tt("body_image_id"),match_partner_image_id:tt("match_partner_image_id"),question_id:tt("question_id").notNull(),body_text:ti("body_text"),correct_order:tt("correct_order"),is_correct:Te("is_correct"),match_partner_text:ti("match_partner_text"),position:tt("position"),...zs,...ys},e=>[Qi({columns:[e.option_id,e._state]}),c({name:"question_options_question_fk",columns:[e.question_id,e._state],foreignColumns:[Gs.question_id,Gs._state]}),c({name:"question_options_body_image_fk",columns:[e.body_image_id],foreignColumns:[Hs.image_id]}),c({name:"question_options_match_partner_image_fk",columns:[e.match_partner_image_id],foreignColumns:[Hs.image_id]})]);const Xs=Yn.table("units",{unit_id:tt("unit_id").notNull().generatedByDefaultAsIdentity(),...Fs,deprecated_fields:ct("deprecated_fields"),description:ti("description").notNull(),slug:ti("slug"),title:ti("title").notNull(),unit_uid:Ae("unit_uid",{length:16}),why_this_why_now:ti("why_this_why_now"),...zs,...ys},e=>[Qi({columns:[e.unit_id,e._state]})]);Yn.table("question_units",{question_id:tt("question_id").notNull(),unit_id:tt("unit_id").notNull(),...qs,...Ts,...zs,...ys},e=>[Qi({name:"question_units_pk",columns:[e.question_id,e.unit_id,e._question_state,e._unit_state]}),c({name:"question_units_question_fk",columns:[e.question_id,e._question_state],foreignColumns:[Gs.question_id,Gs._state]}),c({name:"question_units_unit_fk",columns:[e.unit_id,e._unit_state],foreignColumns:[Xs.unit_id,Xs._state]}),Ls({name:"question_units_state_coherence",columnA:e._question_state,columnB:e._unit_state})]);const Ys=Yn.enum("quiz_role",["starter","exit"]),Zs=Yn.table("quizzes",{quiz_id:tt("quiz_id").notNull().generatedByDefaultAsIdentity(),...Fs,lesson_id:tt("lesson_id").notNull(),deprecated_fields:ct("deprecated_fields"),quiz_answers_pdf_bucket_name:ti("quiz_answers_pdf_bucket_name"),quiz_answers_pdf_bucket_path:ti("quiz_answers_pdf_bucket_path"),quiz_pdf_bucket_name:ti("quiz_pdf_bucket_name"),quiz_pdf_bucket_path:ti("quiz_pdf_bucket_path"),quiz_role:Ys("quiz_role").notNull(),quiz_uid:Ae("quiz_uid",{length:16}).notNull(),...zs,...ys},e=>[Qi({columns:[e.quiz_id,e._state]}),c({columns:[e.lesson_id,e._state],foreignColumns:[Es.lesson_id,Es._state]}),Fi("quizzes_lesson_role_unique").on(e.lesson_id,e.quiz_role,e._state)]);Yn.table("quiz_questions",{quiz_id:tt("quiz_id").notNull(),question_id:tt("question_id").notNull(),...js,...qs,position:tt("position").notNull(),...zs,...ys},e=>[Qi({name:"quiz_questions_pk",columns:[e.quiz_id,e.question_id,e._quiz_state,e._question_state]}),c({name:"quiz_questions_quiz_fk",columns:[e.quiz_id,e._quiz_state],foreignColumns:[Zs.quiz_id,Zs._state]}),c({name:"quiz_questions_question_fk",columns:[e.question_id,e._question_state],foreignColumns:[Gs.question_id,Gs._state]}),Ls({name:"quiz_questions_state_coherence",columnA:e._quiz_state,columnB:e._question_state})]);const er=Yn.table("urls",{url_id:tt("url_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,cloudinary_public_id:ti("cloudinary_public_id"),cloudinary_source_url:ti("cloudinary_source_url"),name:ti("name"),url:ti("url"),...zs,...ys}),tr=Yn.table("media_copyright",{media_copyright_id:tt("media_copyright_id").notNull().generatedByDefaultAsIdentity(),...Fs,bucket_file_id:tt("bucket_file_id"),image_id:tt("image_id"),sound_id:tt("sound_id"),url_id:tt("url_id"),video_id:tt("video_id"),acquisition_basis:rs("acquisition_basis"),additional_restrictions:ti("additional_restrictions"),attribution:ti("attribution"),attribution_required:Te("attribution_required"),content_cycle:os("content_cycle"),media_copyright_uid:ti("media_copyright_uid"),deprecated_fields:ct("deprecated_fields"),expiry_date_override:Je("expiry_date_override"),licence:us("licence"),media_classification:ns("media_classification"),media_provenance:ss("media_provenance"),media_provenance_url:ti("media_provenance_url"),partner_name:ti("partner_name"),permission_status:as("permission_status"),restriction_level_override:is("restriction_level_override"),territory_other:ti("territory_other"),territory_override:ls("territory_override"),third_party_id:ti("third_party_id"),usage_notes:ti("usage_notes"),...zs,...ys},e=>[Qi({columns:[e.media_copyright_id,e._state]}),c({columns:[e.image_id],foreignColumns:[Hs.image_id]}),c({columns:[e.sound_id],foreignColumns:[Ws.sound_id]}),c({columns:[e.video_id],foreignColumns:[Js.video_id]}),c({name:"media_copyright_bucket_file_fk",columns:[e.bucket_file_id],foreignColumns:[Ms.bucket_file_id]}),c({columns:[e.url_id],foreignColumns:[er.url_id]}),de("media_copyright_has_exactly_one_media",t.sql`(image_id IS NOT NULL)::int + (sound_id IS NOT NULL)::int + (video_id IS NOT NULL)::int + (bucket_file_id IS NOT NULL)::int + (url_id IS NOT NULL)::int = 1`),_("media_copyright_image_unique").on(e.image_id,e._state),_("media_copyright_sound_unique").on(e.sound_id,e._state),_("media_copyright_video_unique").on(e.video_id,e._state),_("media_copyright_bucket_file_unique").on(e.bucket_file_id,e._state),_("media_copyright_url_unique").on(e.url_id,e._state)]),ir=es.enum("contract_territory",["worldwide","worldwide_excl_usa","worldwide_excl_canada_and_usa","uk_only","uk_and_commonwealth","uk_and_commonwealth_excl_canada","uk_and_eire"]),nr=es.table("tpc_contracts",{tpc_contract_id:tt("tpc_contract_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,effective_date:Je("effective_date"),end_date:Je("end_date"),geo_restricted:Te().notNull().default(!1),juro_id:ti("juro_id").notNull(),juro_url:ti("juro_url"),login_required:Te().notNull().default(!1),name:ti("name").notNull(),raw_contract:ct("raw_contract"),restricted_download:Te().notNull().default(!1),restriction_level:is(),signing_side:ti("signing_side"),territory:ir("territory"),tpc_contract_uid:Ae("tpc_contract_uid",{length:16}).notNull(),...ys},()=>[]);Yn.table("media_copyright_tpc_contracts",{media_copyright_id:tt("media_copyright_id").notNull(),tpc_contract_id:tt("tpc_contract_id").notNull(),...Fs,...zs,_release_id:tt("_release_id"),...ys},e=>[Qi({name:"media_copyright_tpc_contracts_pk",columns:[e.media_copyright_id,e.tpc_contract_id,e._state]}),c({name:"media_copyright_tpc_contract_media_copyright_fk",columns:[e.media_copyright_id,e._state],foreignColumns:[tr.media_copyright_id,tr._state]}),c({name:"media_copyright_tpc_contract_tpc_contract_fk",columns:[e.tpc_contract_id],foreignColumns:[nr.tpc_contract_id]}),c({name:"media_copyright_tpc_contracts_release_fk",columns:[e._release_id],foreignColumns:[ws.release_id]})]),Yn.table("gdrive_file_images",{gdrive_file_id:tt("gdrive_file_id").notNull(),image_id:tt("image_id").notNull(),...Ss,...zs,...ys},e=>[Qi({columns:[e.gdrive_file_id,e.image_id]}),c({name:"gdrive_file_images_gdrive_file_fk",columns:[e.gdrive_file_id],foreignColumns:[Qs.gdrive_file_id]}),c({columns:[e.image_id],foreignColumns:[Hs.image_id]})]),Yn.table("lesson_media",{lesson_media_id:tt("lesson_media_id").notNull().generatedByDefaultAsIdentity(),...Ns,lesson_id:tt("lesson_id").notNull(),bucket_file_id:tt("bucket_file_id"),image_id:tt("image_id"),sound_id:tt("sound_id"),url_id:tt("url_id"),video_id:tt("video_id"),...zs,...ys},e=>[Qi({name:"lesson_media_pk",columns:[e.lesson_media_id,e._state]}),c({name:"lesson_media_lesson_fk",columns:[e.lesson_id,e._state],foreignColumns:[Es.lesson_id,Es._state]}),c({name:"lesson_media_image_fk",columns:[e.image_id],foreignColumns:[Hs.image_id]}),c({name:"lesson_media_sound_fk",columns:[e.sound_id],foreignColumns:[Ws.sound_id]}),c({name:"lesson_media_video_fk",columns:[e.video_id],foreignColumns:[Js.video_id]}),c({name:"lesson_media_bucket_file_fk",columns:[e.bucket_file_id],foreignColumns:[Ms.bucket_file_id]}),c({name:"lesson_media_url_fk",columns:[e.url_id],foreignColumns:[er.url_id]}),de("lesson_media_has_exactly_one_media",t.sql`(image_id IS NOT NULL)::int + (sound_id IS NOT NULL)::int + (video_id IS NOT NULL)::int + (bucket_file_id IS NOT NULL)::int + (url_id IS NOT NULL)::int = 1`),_("lesson_media_lesson_asset_unique").on(e.lesson_id,e._state,e.image_id,e.sound_id,e.video_id,e.bucket_file_id,e.url_id).nullsNotDistinct()]);const sr=Yn.table("works_copyright",{works_copyright_id:tt("works_copyright_id").notNull().generatedByDefaultAsIdentity(),...Fs,attribution:ti("attribution"),author:ti("author"),raw_juro_data:ct("raw_juro_data"),restriction_level:is("restriction_level"),title:ti("title"),works_copyright_uid:Ae("works_copyright_uid",{length:16}),...zs,...ys},e=>[Qi({columns:[e.works_copyright_id,e._state]})]);Yn.table("lesson_works_copyright",{lesson_id:tt("lesson_id").notNull(),works_copyright_id:tt("works_copyright_id").notNull(),...xs,...Ds,...zs,...ys},e=>[Qi({name:"lesson_works_copyright_pk",columns:[e.lesson_id,e.works_copyright_id,e._lesson_state,e._works_copyright_state]}),c({name:"lesson_works_copyright_lesson_fk",columns:[e.lesson_id,e._lesson_state],foreignColumns:[Es.lesson_id,Es._state]}),c({name:"lesson_works_copyright_works_copyright_fk",columns:[e.works_copyright_id,e._works_copyright_state],foreignColumns:[sr.works_copyright_id,sr._state]}),Ls({name:"lesson_works_copyright_state_coherence",columnA:e._lesson_state,columnB:e._works_copyright_state})]);const rr=Yn.table("features",{feature_id:tt("feature_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,key:ti("key").notNull(),...zs,...ys},e=>[_("features_key_unique").on(e.key)]);Yn.table("lesson_features",{lesson_id:tt("lesson_id").notNull(),feature_id:tt("feature_id").notNull(),...Fs,value:ti("value"),...zs,...ys},e=>[Qi({columns:[e.lesson_id,e.feature_id,e._state]}),c({columns:[e.lesson_id,e._state],foreignColumns:[Es.lesson_id,Es._state]}),c({name:"lesson_features_feature_fk",columns:[e.feature_id],foreignColumns:[rr.feature_id]})]),Yn.table("works_copyright_tpc_contracts",{works_copyright_id:tt("works_copyright_id").notNull(),tpc_contract_id:tt("tpc_contract_id").notNull(),...Fs,...zs,_release_id:tt("_release_id"),...ys},e=>[Qi({name:"works_copyright_tpc_contracts_pk",columns:[e.works_copyright_id,e.tpc_contract_id,e._state]}),c({name:"works_copyright_tpc_contract_works_copyright_fk",columns:[e.works_copyright_id,e._state],foreignColumns:[sr.works_copyright_id,sr._state]}),c({name:"works_copyright_tpc_contract_tpc_contract_fk",columns:[e.tpc_contract_id],foreignColumns:[nr.tpc_contract_id]}),c({name:"works_copyright_tpc_contracts_release_fk",columns:[e._release_id],foreignColumns:[ws.release_id]})]),Yn.table("videos_works_copyright",{video_id:tt("video_id").notNull(),works_copyright_id:tt("works_copyright_id").notNull(),...Ns,...zs,...ys},e=>[Qi({columns:[e.video_id,e.works_copyright_id,e._state]}),c({name:"videos_works_copyright_video_fk",columns:[e.video_id],foreignColumns:[Js.video_id]}),c({name:"videos_works_copyright_works_copyright_fk",columns:[e.works_copyright_id,e._state],foreignColumns:[sr.works_copyright_id,sr._state]})]);const or=Yn.table("content_guidance",{content_guidance_id:tt("content_guidance_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,supervision_level_id:tt("supervision_level_id").notNull(),content_guidance_area:ti("content_guidance_area"),content_guidance_code:ti("content_guidance_code"),content_guidance_description:ti("content_guidance_description"),content_guidance_label:ti("content_guidance_label"),deprecated_fields:ct("deprecated_fields"),...zs,...ys},e=>[c({name:"content_guid_super_level_fk",columns:[e.supervision_level_id],foreignColumns:[Vs.supervision_level_id]})]),ar=Yn.table("key_stages",{key_stage_id:tt("key_stage_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),description:ti("description"),global_position:tt("global_position").notNull(),key_stage:ti("key_stage"),slug:ti("slug"),...zs,...ys}),lr=Yn.table("phases",{phase_id:tt("phase_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),description:ti("description"),global_position:tt("global_position").notNull(),phase:ti("phase"),slug:ti("slug"),...zs,...ys}),ur=Yn.table("subjects",{subject_id:tt("subject_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,subject_parent_id:tt("subject_parent_id"),deprecated_fields:ct("deprecated_fields"),description:ti("description"),global_position:tt("global_position").notNull(),non_curriculum:Te("non_curriculum"),slug:ti("slug"),subject:ti("subject"),...zs,...ys},e=>[c({name:"subjects_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[e.subject_id]})]),cr=Yn.table("years",{year_id:tt("year_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,key_stage_id:tt("key_stage_id").notNull(),phase_id:tt("phase_id").notNull(),deprecated_fields:ct("deprecated_fields"),description:ti("description"),global_position:tt("global_position").notNull(),slug:ti("slug"),year:ti("year"),...zs,...ys},e=>[c({columns:[e.key_stage_id],foreignColumns:[ar.key_stage_id]}),c({columns:[e.phase_id],foreignColumns:[lr.phase_id]})]);Yn.table("content_guidance_scopes",{scope_id:tt("scope_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,content_guidance_id:tt("content_guidance_id").notNull(),key_stage_id:tt("key_stage_id"),phase_id:tt("phase_id"),subject_id:tt("subject_id"),subject_parent_id:tt("subject_parent_id"),year_id:tt("year_id"),...zs,...ys},e=>[c({name:"content_guid_scopes_content_guid_fk",columns:[e.content_guidance_id],foreignColumns:[or.content_guidance_id]}),c({name:"content_guid_scopes_subject_fk",columns:[e.subject_id],foreignColumns:[ur.subject_id]}),c({name:"content_guid_scopes_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[ur.subject_id]}),c({name:"content_guid_scopes_phase_fk",columns:[e.phase_id],foreignColumns:[lr.phase_id]}),c({name:"content_guid_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[ar.key_stage_id]}),c({columns:[e.year_id],foreignColumns:[cr.year_id]})]);const _r=Yn.table("exam_board_specs",{exam_board_spec_id:tt("exam_board_spec_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),description:ti("description"),title:ti("title").notNull(),...zs,...ys});Yn.table("exam_board_spec_scopes",{scope_id:tt("scope_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,exam_board_spec_id:tt("exam_board_spec_id").notNull(),key_stage_id:tt("key_stage_id"),phase_id:tt("phase_id"),subject_id:tt("subject_id"),subject_parent_id:tt("subject_parent_id"),year_id:tt("year_id"),...zs,...ys},e=>[c({name:"exam_spec_scopes_exam_spec_fk",columns:[e.exam_board_spec_id],foreignColumns:[_r.exam_board_spec_id]}),c({name:"exam_spec_scopes_subject_fk",columns:[e.subject_id],foreignColumns:[ur.subject_id]}),c({name:"exam_spec_scopes_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[ur.subject_id]}),c({name:"exam_spec_scopes_phase_fk",columns:[e.phase_id],foreignColumns:[lr.phase_id]}),c({name:"exam_spec_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[ar.key_stage_id]}),c({columns:[e.year_id],foreignColumns:[cr.year_id]})]),Yn.table("lesson_content_guidance",{lesson_id:tt("lesson_id").notNull(),content_guidance_id:tt("content_guidance_id").notNull(),...Fs,position:tt("position").notNull(),...zs,...ys},e=>[Qi({name:"lesson_content_guid_pk",columns:[e.lesson_id,e.content_guidance_id,e._state]}),c({name:"lesson_content_guid_lesson_fk",columns:[e.lesson_id,e._state],foreignColumns:[Es.lesson_id,Es._state]}),c({name:"lesson_content_guid_content_guid_fk",columns:[e.content_guidance_id],foreignColumns:[or.content_guidance_id]})]);const dr=Yn.table("tags",{tag_id:tt("tag_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),tag_category:_s("tag_category"),title:ti("title").notNull(),...zs,...ys});Yn.table("lesson_tags",{lesson_id:tt("lesson_id").notNull(),tag_id:tt("tag_id").notNull(),...Fs,position:tt("position").notNull(),...zs,...ys},e=>[Qi({columns:[e.lesson_id,e.tag_id,e._state]}),c({columns:[e.lesson_id,e._state],foreignColumns:[Es.lesson_id,Es._state]}),c({columns:[e.tag_id],foreignColumns:[dr.tag_id]})]);const mr=Yn.table("national_curriculum",{national_curriculum_id:tt("national_curriculum_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),description:ti("description"),title:ti("title").notNull(),...zs,...ys});Yn.table("national_curriculum_scopes",{scope_id:tt("scope_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,key_stage_id:tt("key_stage_id"),national_curriculum_id:tt("national_curriculum_id").notNull(),phase_id:tt("phase_id"),subject_id:tt("subject_id"),subject_parent_id:tt("subject_parent_id"),year_id:tt("year_id"),...zs,...ys},e=>[c({name:"nat_curric_scopes_nat_curric_fk",columns:[e.national_curriculum_id],foreignColumns:[mr.national_curriculum_id]}),c({name:"nat_curric_scopes_subject_fk",columns:[e.subject_id],foreignColumns:[ur.subject_id]}),c({name:"nat_curric_scopes_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[ur.subject_id]}),c({name:"nat_curric_scopes_phase_fk",columns:[e.phase_id],foreignColumns:[lr.phase_id]}),c({name:"nat_curric_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[ar.key_stage_id]}),c({name:"nat_curric_scopes_year_fk",columns:[e.year_id],foreignColumns:[cr.year_id]})]);const pr=Yn.table("subject_categories",{subject_category_id:tt("subject_category_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),description:ti("description"),slug:ti("slug"),title:ti("title").notNull(),...zs,...ys});Yn.table("subject_category_scopes",{scope_id:tt("scope_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,key_stage_id:tt("key_stage_id"),phase_id:tt("phase_id"),subject_category_id:tt("subject_category_id").notNull(),subject_id:tt("subject_id"),subject_parent_id:tt("subject_parent_id"),year_id:tt("year_id"),...zs,...ys},e=>[c({name:"subj_cat_scopes_subj_cat_fk",columns:[e.subject_category_id],foreignColumns:[pr.subject_category_id]}),c({name:"subj_cat_scopes_subject_fk",columns:[e.subject_id],foreignColumns:[ur.subject_id]}),c({name:"subj_cat_scopes_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[ur.subject_id]}),c({name:"subj_cat_scopes_phase_fk",columns:[e.phase_id],foreignColumns:[lr.phase_id]}),c({name:"subj_cat_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[ar.key_stage_id]}),c({columns:[e.year_id],foreignColumns:[cr.year_id]})]),Yn.table("tag_scopes",{scope_id:tt("scope_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,key_stage_id:tt("key_stage_id"),phase_id:tt("phase_id"),subject_id:tt("subject_id"),subject_parent_id:tt("subject_parent_id"),tag_id:tt("tag_id").notNull(),year_id:tt("year_id"),...zs,...ys},e=>[c({columns:[e.tag_id],foreignColumns:[dr.tag_id]}),c({columns:[e.subject_id],foreignColumns:[ur.subject_id]}),c({name:"tag_scopes_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[ur.subject_id]}),c({columns:[e.phase_id],foreignColumns:[lr.phase_id]}),c({name:"tag_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[ar.key_stage_id]}),c({columns:[e.year_id],foreignColumns:[cr.year_id]})]),Yn.table("unit_exam_board_specs",{unit_id:tt("unit_id").notNull(),exam_board_spec_id:tt("exam_board_spec_id").notNull(),...Fs,position:tt("position").notNull(),...zs,...ys},e=>[Qi({columns:[e.unit_id,e.exam_board_spec_id,e._state]}),c({columns:[e.unit_id,e._state],foreignColumns:[Xs.unit_id,Xs._state]}),c({name:"unit_exam_spec_exam_spec_fk",columns:[e.exam_board_spec_id],foreignColumns:[_r.exam_board_spec_id]})]),Yn.table("unit_national_curriculum",{unit_id:tt("unit_id").notNull(),national_curriculum_id:tt("national_curriculum_id").notNull(),...Fs,position:tt("position").notNull(),...zs,...ys},e=>[Qi({name:"unit_nat_curric_pk",columns:[e.unit_id,e.national_curriculum_id,e._state]}),c({name:"unit_nat_curric_unit_fk",columns:[e.unit_id,e._state],foreignColumns:[Xs.unit_id,Xs._state]}),c({name:"unit_nat_curric_nat_curric_fk",columns:[e.national_curriculum_id],foreignColumns:[mr.national_curriculum_id]})]),Yn.table("unit_subject_categories",{unit_id:tt("unit_id").notNull(),subject_category_id:tt("subject_category_id").notNull(),...Fs,position:tt("position").notNull(),...zs,...ys},e=>[Qi({columns:[e.unit_id,e.subject_category_id,e._state]}),c({columns:[e.unit_id,e._state],foreignColumns:[Xs.unit_id,Xs._state]}),c({name:"unit_subj_cat_subj_cat_fk",columns:[e.subject_category_id],foreignColumns:[pr.subject_category_id]})]);const gr=Yn.table("exam_boards",{exam_board_id:tt("exam_board_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),description:ti("description"),exam_board:ti("exam_board"),global_position:tt("global_position").notNull(),slug:ti("slug"),...zs,...ys}),fr=Yn.table("pathways",{pathway_id:tt("pathway_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),description:ti("description"),global_position:tt("global_position").notNull(),pathway:ti("pathway"),slug:ti("slug"),...zs,...ys}),hr=Yn.table("tiers",{tier_id:tt("tier_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),description:ti("description"),global_position:tt("global_position").notNull(),slug:ti("slug"),tier:ti("tier"),...zs,...ys}),yr=Yn.table("unit_variants",{unit_variant_id:tt("unit_variant_id").notNull().generatedByDefaultAsIdentity(),...Fs,exam_board_id:tt("exam_board_id"),pathway_id:tt("pathway_id"),subject_id:tt("subject_id"),tier_id:tt("tier_id"),unit_id:tt("unit_id").notNull(),deprecated_fields:ct("deprecated_fields"),description_override:ti("description_override"),optionality:ti("optionality"),planned_number_of_lessons_override:tt("planned_number_of_lessons_override"),prior_knowledge_requirements_override:ti("prior_knowledge_requirements_override").array(),title_override:ti("title_override"),unit_variant_uid:Ae("unit_variant_uid",{length:16}),why_this_why_now_override:ti("why_this_why_now_override"),...zs,...ys},e=>[Qi({columns:[e.unit_variant_id,e._state]}),c({name:"unit_variants_exam_board_fk",columns:[e.exam_board_id],foreignColumns:[gr.exam_board_id]}),c({columns:[e.pathway_id],foreignColumns:[fr.pathway_id]}),c({columns:[e.subject_id],foreignColumns:[ur.subject_id]}),c({columns:[e.tier_id],foreignColumns:[hr.tier_id]}),c({columns:[e.unit_id,e._state],foreignColumns:[Xs.unit_id,Xs._state]}),_("unit_variants_unit_scope_unique").on(e.unit_id,e.subject_id,e.tier_id,e.exam_board_id,e.pathway_id,e.optionality,e._state).nullsNotDistinct()]);Yn.table("unit_variant_exam_board_specs_override",{unit_variant_id:tt("unit_variant_id").notNull(),exam_board_spec_id:tt("exam_board_spec_id").notNull(),...Fs,position:tt("position").notNull(),...zs,_release_id:tt("_release_id"),...ys},e=>[Qi({name:"unit_variant_exam_board_specs_override_pk",columns:[e.unit_variant_id,e.exam_board_spec_id,e._state]}),c({name:"unit_var_exam_spec_ovr_release_fk",columns:[e._release_id],foreignColumns:[ws.release_id]}),c({name:"unit_var_exam_spec_ovr_unit_var_fk",columns:[e.unit_variant_id,e._state],foreignColumns:[yr.unit_variant_id,yr._state]}),c({name:"unit_var_exam_spec_ovr_exam_spec_fk",columns:[e.exam_board_spec_id],foreignColumns:[_r.exam_board_spec_id]})]),Yn.table("unit_variant_national_curriculum_override",{unit_variant_id:tt("unit_variant_id").notNull(),national_curriculum_id:tt("national_curriculum_id").notNull(),...Fs,position:tt("position").notNull(),...zs,_release_id:tt("_release_id"),...ys},e=>[Qi({name:"unit_variant_national_curriculum_override_pk",columns:[e.unit_variant_id,e.national_curriculum_id,e._state]}),c({name:"unit_var_nat_curric_ovr_release_fk",columns:[e._release_id],foreignColumns:[ws.release_id]}),c({name:"unit_var_nat_curric_ovr_unit_var_fk",columns:[e.unit_variant_id,e._state],foreignColumns:[yr.unit_variant_id,yr._state]}),c({name:"unit_var_nat_curric_ovr_nat_curric_fk",columns:[e.national_curriculum_id],foreignColumns:[mr.national_curriculum_id]})]),Yn.table("unit_variant_subject_categories_override",{unit_variant_id:tt("unit_variant_id").notNull(),subject_category_id:tt("subject_category_id").notNull(),...Fs,position:tt("position").notNull(),...zs,_release_id:tt("_release_id"),...ys},e=>[Qi({name:"unit_variant_subject_categories_override_pk",columns:[e.unit_variant_id,e.subject_category_id,e._state]}),c({name:"unit_var_subj_cat_ovr_release_fk",columns:[e._release_id],foreignColumns:[ws.release_id]}),c({name:"unit_var_subj_cat_ovr_unit_var_fk",columns:[e.unit_variant_id,e._state],foreignColumns:[yr.unit_variant_id,yr._state]}),c({name:"unit_var_subj_cat_ovr_subj_cat_fk",columns:[e.subject_category_id],foreignColumns:[pr.subject_category_id]})]);const br=Yn.table("actions",{action_id:tt("action_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,key:ti("key").notNull(),...zs,...ys},e=>[_("actions_key_unique").on(e.key)]),vr=Yn.table("overrides_and_exceptions",{overrides_and_exceptions_id:tt("overrides_and_exceptions_id").notNull().generatedByDefaultAsIdentity(),...Fs,description:ti("description"),used_by_queries:ct("used_by_queries").notNull().default([]),...zs,...ys},e=>[Qi({columns:[e.overrides_and_exceptions_id,e._state]})]);Yn.table("overrides_and_exceptions_actions",{overrides_and_exceptions_id:tt("overrides_and_exceptions_id").notNull(),action_id:tt("action_id").notNull(),...Fs,value:ct("value").notNull(),...zs,_release_id:tt("_release_id"),...ys},e=>[Qi({name:"ovr_exc_actions_pk",columns:[e.overrides_and_exceptions_id,e.action_id,e._state]}),c({name:"ovr_exc_actions_release_fk",columns:[e._release_id],foreignColumns:[ws.release_id]}),c({name:"ovr_exc_actions_ovr_exc_fk",columns:[e.overrides_and_exceptions_id,e._state],foreignColumns:[vr.overrides_and_exceptions_id,vr._state]}),c({name:"ovr_exc_actions_action_fk",columns:[e.action_id],foreignColumns:[br.action_id]})]),Yn.table("overrides_and_exceptions_feature_scopes",{overrides_and_exceptions_id:tt("overrides_and_exceptions_id").notNull(),condition_id:tt("condition_id").notNull(),feature_id:tt("feature_id").notNull(),...Fs,value:ti("value").notNull(),...zs,_release_id:tt("_release_id"),...ys},e=>[Qi({name:"ovr_exc_feature_scopes_pk",columns:[e.overrides_and_exceptions_id,e.condition_id,e.feature_id,e._state]}),c({name:"ovr_exc_feature_scopes_release_fk",columns:[e._release_id],foreignColumns:[ws.release_id]}),c({name:"ovr_exc_feature_scopes_ovr_exc_fk",columns:[e.overrides_and_exceptions_id,e._state],foreignColumns:[vr.overrides_and_exceptions_id,vr._state]}),c({name:"ovr_exc_feature_scopes_feature_fk",columns:[e.feature_id],foreignColumns:[rr.feature_id]})]),Yn.table("overrides_and_exceptions_programme_scopes",{scope_id:tt("scope_id").notNull().generatedByDefaultAsIdentity(),...Fs,key_stage_id:tt("key_stage_id"),overrides_and_exceptions_id:tt("overrides_and_exceptions_id").notNull(),pathway_id:tt("pathway_id"),phase_id:tt("phase_id"),subject_id:tt("subject_id"),tier_id:tt("tier_id"),legacy:Te("legacy"),subject_slug:ti("subject_slug"),...zs,_release_id:tt("_release_id"),...ys},e=>[Qi({name:"ovr_exc_programme_scopes_pk",columns:[e.scope_id,e._state]}),c({name:"ovr_exc_programme_scopes_release_fk",columns:[e._release_id],foreignColumns:[ws.release_id]}),c({name:"ovr_exc_programme_scopes_ovr_exc_fk",columns:[e.overrides_and_exceptions_id,e._state],foreignColumns:[vr.overrides_and_exceptions_id,vr._state]}),c({name:"ovr_exc_programme_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[ar.key_stage_id]}),c({name:"ovr_exc_programme_scopes_pathway_fk",columns:[e.pathway_id],foreignColumns:[fr.pathway_id]}),c({name:"ovr_exc_programme_scopes_phase_fk",columns:[e.phase_id],foreignColumns:[lr.phase_id]}),c({name:"ovr_exc_programme_scopes_subject_fk",columns:[e.subject_id],foreignColumns:[ur.subject_id]}),c({name:"ovr_exc_programme_scopes_tier_fk",columns:[e.tier_id],foreignColumns:[hr.tier_id]})]),Yn.table("redirects",{entity_id:tt("entity_id").notNull(),entity_source:ps("entity_source").notNull(),...Fs,description:ti("description"),redirect_entity_id:tt("redirect_entity_id"),redirect_entity_source:ps("redirect_entity_source"),redirect_type:ms("redirect_type").notNull(),redirect_url:ti("redirect_url"),...zs,...ys},e=>[Qi({columns:[e.entity_id,e.entity_source,e._state]}),de("redirect_has_exactly_one_target",t.sql`(redirect_url IS NOT NULL)::int + (redirect_entity_id IS NOT NULL)::int = 1`),de("redirect_entity_ref_complete",t.sql`(redirect_entity_id IS NULL) = (redirect_entity_source IS NULL)`)]);const wr=Yn.table("choices",{choice_id:tt("choice_id").notNull().generatedByDefaultAsIdentity(),...Fs,unit_id:tt("unit_id").notNull(),...zs,...ys},e=>[Qi({columns:[e.choice_id,e._state]}),c({columns:[e.unit_id,e._state],foreignColumns:[Xs.unit_id,Xs._state]})]);Yn.table("choices_unit_variants",{unit_variant_id:tt("unit_variant_id").notNull(),choice_id:tt("choice_id").notNull(),...Bs,...ks,position:tt("position").notNull(),...zs,...ys},e=>[Qi({name:"choices_unit_var_pk",columns:[e.unit_variant_id,e.choice_id,e._unit_variant_state,e._choice_state]}),c({name:"choices_unit_var_unit_var_fk",columns:[e.unit_variant_id,e._unit_variant_state],foreignColumns:[yr.unit_variant_id,yr._state]}),c({name:"choices_unit_var_choice_fk",columns:[e.choice_id,e._choice_state],foreignColumns:[wr.choice_id,wr._state]}),Ls({name:"choices_unit_var_state_coherence",columnA:e._unit_variant_state,columnB:e._choice_state})]);const Nr=Yn.table("programmes",{programme_id:tt("programme_id").notNull().generatedByDefaultAsIdentity(),...Fs,exam_board_id:tt("exam_board_id"),pathway_id:tt("pathway_id"),subject_id:tt("subject_id").notNull(),tier_id:tt("tier_id"),year_id:tt("year_id").notNull(),deprecated_fields:ct("deprecated_fields"),legacy:Te("legacy").notNull().default(!1),national_curriculum_content:Te("national_curriculum_content").notNull().default(!1),programme_uid:Ae("programme_uid",{length:16}),...zs,...ys},e=>[Qi({columns:[e.programme_id,e._state]}),c({columns:[e.subject_id],foreignColumns:[ur.subject_id]}),c({columns:[e.year_id],foreignColumns:[cr.year_id]}),c({columns:[e.tier_id],foreignColumns:[hr.tier_id]}),c({name:"programmes_exam_board_fk",columns:[e.exam_board_id],foreignColumns:[gr.exam_board_id]}),c({columns:[e.pathway_id],foreignColumns:[fr.pathway_id]}),_("programmes_factor_scope_unique").on(e.subject_id,e.year_id,e.tier_id,e.exam_board_id,e.pathway_id,e.legacy,e._state).nullsNotDistinct()]);Yn.table("inclusions",{programme_id:tt("programme_id").notNull(),position:tt("position").notNull(),...Cs,...As,...Os,choice_id:tt("choice_id"),unit_variant_id:tt("unit_variant_id"),...zs,...ys},e=>[Qi({name:"inclusions_pk",columns:[e.programme_id,e.position,e._programme_state]}),de("inclusions_xor_variant_choice",t.sql`num_nonnulls(${e.unit_variant_id}, ${e.choice_id}) = 1`),de("inclusions_choice_state_matches",t.sql`(${e.choice_id} is null) = (${e._choice_state} is null)`),de("inclusions_unit_variant_state_matches",t.sql`(${e.unit_variant_id} is null) = (${e._unit_variant_state} is null)`),Fi("inclusions_choice_unique").on(e.choice_id,e._choice_state).where(t.sql`${e.choice_id} is not null`),Fi("inclusions_programme_unit_variant_unique").on(e.programme_id,e.unit_variant_id,e._programme_state,e._unit_variant_state).where(t.sql`${e.unit_variant_id} is not null`),c({name:"inclusions_programme_fk",columns:[e.programme_id,e._programme_state],foreignColumns:[Nr.programme_id,Nr._state]}),c({name:"inclusions_choice_fk",columns:[e.choice_id,e._choice_state],foreignColumns:[wr.choice_id,wr._state]}),c({name:"inclusions_unit_var_fk",columns:[e.unit_variant_id,e._unit_variant_state],foreignColumns:[yr.unit_variant_id,yr._state]}),Is({name:"inclusions_choice_state_coherence",columnA:e._programme_state,columnB:e._choice_state}),Is({name:"inclusions_unit_var_state_coherence",columnA:e._programme_state,columnB:e._unit_variant_state})]);const Sr=Yn.table("subject_phases",{subject_id:tt("subject_id").notNull(),phase_id:tt("phase_id").notNull(),...Fs,curriculum_intent:ti("curriculum_intent"),deprecated_fields:ct("deprecated_fields"),prior_knowledge_requirements:Te("prior_knowledge_requirements").notNull().default(!1),related_units:Te("related_units").notNull().default(!1),unit_description:Te("unit_description").notNull().default(!1),...zs,...ys},e=>[Qi({columns:[e.subject_id,e.phase_id,e._state]}),c({columns:[e.subject_id],foreignColumns:[ur.subject_id]}),c({columns:[e.phase_id],foreignColumns:[lr.phase_id]})]),kr=Yn.table("threads",{thread_id:tt("thread_id").notNull().generatedByDefaultAsIdentity(),...Fs,parent_thread_id:tt("parent_thread_id"),deprecated_fields:ct("deprecated_fields"),description:ti("description"),slug:ti("slug"),thread_uid:Ae("thread_uid",{length:16}),title:ti("title"),...zs,...ys},e=>[Qi({columns:[e.thread_id,e._state]}),c({columns:[e.parent_thread_id,e._state],foreignColumns:[e.thread_id,e._state]})]);Yn.table("subject_phase_threads",{subject_id:tt("subject_id").notNull(),phase_id:tt("phase_id").notNull(),thread_id:tt("thread_id").notNull(),...$s,...Ps,deprecated_fields:ct("deprecated_fields"),position:tt("position").notNull(),...zs,...ys},e=>[Qi({name:"subject_phase_threads_pk",columns:[e.subject_id,e.phase_id,e.thread_id,e._subject_phase_state,e._thread_state]}),c({name:"subject_phase_threads_subject_phase_fk",columns:[e.subject_id,e.phase_id,e._subject_phase_state],foreignColumns:[Sr.subject_id,Sr.phase_id,Sr._state]}),c({name:"subject_phase_threads_thread_fk",columns:[e.thread_id,e._thread_state],foreignColumns:[kr.thread_id,kr._state]}),Ls({name:"subject_phase_threads_state_coherence",columnA:e._subject_phase_state,columnB:e._thread_state})]),Yn.table("unit_threads",{thread_id:tt("thread_id").notNull(),unit_id:tt("unit_id").notNull(),...Ps,...Ts,deprecated_fields:ct("deprecated_fields"),position:tt("position").notNull(),...zs,...ys},e=>[Qi({name:"unit_threads_pk",columns:[e.thread_id,e.unit_id,e._thread_state,e._unit_state]}),c({name:"unit_threads_thread_fk",columns:[e.thread_id,e._thread_state],foreignColumns:[kr.thread_id,kr._state]}),c({name:"unit_threads_unit_fk",columns:[e.unit_id,e._unit_state],foreignColumns:[Xs.unit_id,Xs._state]}),Ls({name:"unit_threads_state_coherence",columnA:e._thread_state,columnB:e._unit_state})]),Yn.table("unit_catalogue",{subject_id:tt("subject_id").notNull(),year_id:tt("year_id").notNull(),unit_id:tt("unit_id").notNull(),...Fs,...zs,...ys},e=>[Qi({columns:[e.subject_id,e.year_id,e.unit_id,e._state]}),c({columns:[e.unit_id,e._state],foreignColumns:[Xs.unit_id,Xs._state]}),c({columns:[e.subject_id],foreignColumns:[ur.subject_id]}),c({columns:[e.year_id],foreignColumns:[cr.year_id]})]),Yn.table("unit_lessons",{unit_id:tt("unit_id").notNull(),lesson_id:tt("lesson_id").notNull(),...Ts,...xs,position:tt("position").notNull(),...zs,...ys},e=>[Qi({name:"unit_lessons_pk",columns:[e.unit_id,e.lesson_id,e._unit_state,e._lesson_state]}),c({name:"unit_lessons_unit_fk",columns:[e.unit_id,e._unit_state],foreignColumns:[Xs.unit_id,Xs._state]}),c({name:"unit_lessons_lesson_fk",columns:[e.lesson_id,e._lesson_state],foreignColumns:[Es.lesson_id,Es._state]}),Ls({name:"unit_lessons_state_coherence",columnA:e._unit_state,columnB:e._lesson_state})]),Yn.table("unit_variant_lessons",{unit_variant_id:tt("unit_variant_id").notNull(),lesson_id:tt("lesson_id").notNull(),...Bs,...xs,deprecated_fields:ct("deprecated_fields"),position:tt("position").notNull(),...zs,...ys},e=>[Qi({name:"unit_var_lessons_pk",columns:[e.unit_variant_id,e.lesson_id,e._unit_variant_state,e._lesson_state]}),c({name:"unit_var_lessons_unit_var_fk",columns:[e.unit_variant_id,e._unit_variant_state],foreignColumns:[yr.unit_variant_id,yr._state]}),c({name:"unit_var_lessons_lesson_fk",columns:[e.lesson_id,e._lesson_state],foreignColumns:[Es.lesson_id,Es._state]}),Ls({name:"unit_var_lessons_state_coherence",columnA:e._unit_variant_state,columnB:e._lesson_state})]),Yn.table("unit_features",{unit_id:tt("unit_id").notNull(),feature_id:tt("feature_id").notNull(),...Fs,value:ti("value"),...zs,...ys},e=>[Qi({columns:[e.unit_id,e.feature_id,e._state]}),c({columns:[e.unit_id,e._state],foreignColumns:[Xs.unit_id,Xs._state]}),c({columns:[e.feature_id],foreignColumns:[rr.feature_id]})]);const xr=es.enum("lesson_component_operation_status_enum",["api_neutral","api_in_progress","api_failed","ingest_queued","ingest_in_progress","ingest_failed","ingest_completed"]),Cr=es.table("lesson_component_status",{lesson_component_id:tt("lesson_component_id").notNull(),lesson_component_type:hs("lesson_component_type").notNull(),active_media_id:tt("active_media_id"),active_media_type:fs("active_media_type"),last_error_location:ti("last_error_location"),last_error_message:ti("last_error_message"),last_error_timestamp:ui("last_error_timestamp"),last_ingest_id:di("last_ingest_id"),operation_status:xr("operation_status").notNull().default("api_neutral"),...ys},e=>[Qi({name:"lesson_comp_status_pk",columns:[e.lesson_component_id,e.lesson_component_type]})]),qr=es.enum("lesson_status_enum",["api_neutral","ingest_queued","ingest_in_progress","ingest_complete","ingest_failed"]);es.table("lesson_status",{lesson_id:tt("lesson_id").primaryKey(),approved:Te("approved").notNull().default(!1),last_approved:ui("last_approved"),last_error_location:ti("last_error_location"),last_error_message:ti("last_error_message"),last_error_timestamp:ui("last_error_timestamp"),status:qr("status").notNull().default("api_neutral"),...ys});const jr=es.enum("media_status_enum",["neutral","in_progress","failed"]);es.table("media_status",{media_id:tt("media_id").notNull(),media_type:fs("media_type").notNull(),last_error_location:ti("last_error_location"),last_error_message:ti("last_error_message"),last_error_timestamp:ui("last_error_timestamp"),last_lesson_component_id:tt("last_lesson_component_id"),last_lesson_component_type:hs("last_lesson_component_type"),status:jr("status").notNull().default("neutral"),...ys},e=>[Qi({columns:[e.media_id,e.media_type]})]),es.table("mutations_log",{mutations_log_id:di("mutations_log_id").primaryKey().defaultRandom(),actor_role:ti("actor_role"),actor_type:ti("actor_type"),app_id:ti("app_id"),changes:ct("changes").notNull(),operation:gs("operation").notNull(),record_key:ct("record_key").notNull(),table_name:ti("table_name").notNull(),...bs},e=>[zi("idx_mutations_log_record_key").using("gin",e.record_key)]),es.table("release_snapshots",{release_snapshot_id:di("release_snapshot_id").primaryKey().defaultRandom(),_release_id:tt("_release_id"),source_created_at:ui("source_created_at"),source_id:tt("source_id"),source_row:ct("source_row"),source_schema:ti("source_schema").default(""),source_state:ts("source_state").notNull(),source_table:ti("source_table").default(""),source_uid:Ae("source_uid",{length:16}),source_updated_at:ui("source_updated_at")},e=>[c({columns:[e._release_id],foreignColumns:[ws.release_id]}),zi("release_snapshots_source_idx").on(e.source_schema,e.source_table,e.source_id),zi("release_snapshots_release_idx").on(e._release_id)]);const $r=es.enum("contract_log_event_type_enum",["works_change","contract_change","works_added_to_contract"]);es.table("tpc_contract_log",{tpc_contract_log_id:tt("tpc_contract_log_id").primaryKey().generatedByDefaultAsIdentity(),tpc_contract_id:tt("tpc_contract_id").notNull(),changed_at:ui("changed_at",{withTimezone:!0}).notNull(),event_type:$r("event_type").notNull(),payload:ct("payload")},e=>[c({name:"tpc_contract_log_tpc_contract_fk",columns:[e.tpc_contract_id],foreignColumns:[nr.tpc_contract_id]})]);const Pr=es.enum("restrictions_type_enum",["Restrictions 1","Restrictions 2","Restrictions 3","Restrictions 4","Restrictions 5","Restrictions 6","Restrictions 7","Additional Restrictions"]),Tr=es.table("tpc_restriction_definitions",{tpc_restriction_definition_id:tt("tpc_restriction_definition_id").primaryKey().generatedByDefaultAsIdentity(),restriction_text:ti("restriction_text").notNull(),type:Pr("type").notNull(),...ys},e=>[_("tpc_restriction_definitions_type_unique").on(e.type)]);es.table("tpc_restrictions",{tpc_contract_id:tt("tpc_contract_id").notNull(),tpc_restriction_definition_id:tt("tpc_restriction_definition_id").notNull(),...Fs,restriction_override:ti("restriction_override"),...ys},e=>[Qi({name:"tpc_restrictions_pk",columns:[e.tpc_contract_id,e.tpc_restriction_definition_id,e._state]}),c({name:"tpc_restrictions_tpc_contract_fk",columns:[e.tpc_contract_id],foreignColumns:[nr.tpc_contract_id]}),c({name:"tpc_restrictions_tpc_restriction_definition_fk",columns:[e.tpc_restriction_definition_id],foreignColumns:[Tr.tpc_restriction_definition_id]})]),Zn.view("unit_variant_exam_board_specs",{unit_variant_id:tt("unit_variant_id"),exam_board_spec_id:tt("exam_board_spec_id"),position:tt("position"),_state:ts("_state"),is_override:Te("is_override")}).as(t.sql`
7
+ `;await t.execute(Z`CREATE SCHEMA IF NOT EXISTS ${Z.identifier(s)}`),await t.execute(r);const o=(await t.all(Z`select id, hash, created_at from ${Z.identifier(s)}.${Z.identifier(n)} order by created_at desc limit 1`))[0];await t.transaction(async t=>{for await(const i of e)if(!o||Number(o.created_at)<i.folderMillis){for(const e of i.sql)await t.execute(Z.raw(e));await t.execute(Z`insert into ${Z.identifier(s)}.${Z.identifier(n)} ("hash", "created_at") values(${i.hash}, ${i.folderMillis})`)}})}escapeName(e){return`"${e.replace(/"/g,'""')}"`}escapeParam(e){return`$${e+1}`}escapeString(e){return`'${e.replace(/'/g,"''")}'`}buildWithCTE(e){if(!e?.length)return;const t=[Z`with `];for(const[i,n]of e.entries())t.push(Z`${Z.identifier(n._.alias)} as (${n._.sql})`),i<e.length-1&&t.push(Z`, `);return t.push(Z` `),Z.join(t)}buildDeleteQuery({table:e,where:t,returning:i,withList:n}){return Z`${this.buildWithCTE(n)}delete from ${e}${t?Z` where ${t}`:void 0}${i?Z` returning ${this.buildSelection(i,{isSingleTable:!0})}`:void 0}`}buildUpdateSet(e,t){const i=e[K.Symbol.Columns],n=Object.keys(i).filter(e=>void 0!==t[e]||void 0!==i[e]?.onUpdateFn),r=n.length;return Z.join(n.flatMap((e,n)=>{const o=i[e],a=o.onUpdateFn?.(),l=t[e]??(s(a,W)?a:Z.param(a,o)),u=Z`${Z.identifier(this.casing.getColumnCasing(o))} = ${l}`;return n<r-1?[u,Z.raw(", ")]:[u]}))}buildUpdateQuery({table:e,set:t,where:i,returning:n,withList:s,from:r,joins:o}){const a=this.buildWithCTE(s),l=e[Bi.Symbol.Name],u=e[Bi.Symbol.Schema],c=e[Bi.Symbol.OriginalName],_=l===c?void 0:l,d=Z`${u?Z`${Z.identifier(u)}.`:void 0}${Z.identifier(c)}${_&&Z` ${Z.identifier(_)}`}`,m=this.buildUpdateSet(e,t),p=r&&Z.join([Z.raw(" from "),this.buildFromTable(r)]);return Z`${a}update ${d} set ${m}${p}${this.buildJoins(o)}${i?Z` where ${i}`:void 0}${n?Z` returning ${this.buildSelection(n,{isSingleTable:!r})}`:void 0}`}buildSelection(e,{isSingleTable:t=!1}={}){const i=e.length,n=e.flatMap(({field:e},n)=>{const o=[];if(s(e,W.Aliased)&&e.isSelectionField)o.push(Z.identifier(e.fieldAlias));else if(s(e,W.Aliased)||s(e,W)){const i=s(e,W.Aliased)?e.sql:e;t?o.push(new W(i.queryChunks.map(e=>s(e,w)?Z.identifier(this.casing.getColumnCasing(e)):e))):o.push(i),s(e,W.Aliased)&&o.push(Z` as ${Z.identifier(e.fieldAlias)}`)}else if(s(e,r))t?o.push(Z.identifier(this.casing.getColumnCasing(e))):o.push(e);else if(s(e,P)){const t=Object.entries(e._.selectedFields);if(1===t.length){const i=t[0][1],n=s(i,W)?i.decoder:s(i,r)?{mapFromDriverValue:e=>i.mapFromDriverValue(e)}:i.sql.decoder;n&&(e._.sql.decoder=n)}o.push(e)}return n<i-1&&o.push(Z`, `),o});return Z.join(n)}buildJoins(e){if(!e||0===e.length)return;const t=[];for(const[i,n]of e.entries()){0===i&&t.push(Z` `);const r=n.table,o=n.lateral?Z` lateral`:void 0,a=n.on?Z` on ${n.on}`:void 0;if(s(r,Bi)){const e=r[Bi.Symbol.Name],i=r[Bi.Symbol.Schema],s=r[Bi.Symbol.OriginalName],l=e===s?void 0:n.alias;t.push(Z`${Z.raw(n.joinType)} join${o} ${i?Z`${Z.identifier(i)}.`:void 0}${Z.identifier(s)}${l&&Z` ${Z.identifier(l)}`}${a}`)}else if(s(r,ne)){const e=r[A].name,i=r[A].schema,s=r[A].originalName,l=e===s?void 0:n.alias;t.push(Z`${Z.raw(n.joinType)} join${o} ${i?Z`${Z.identifier(i)}.`:void 0}${Z.identifier(s)}${l&&Z` ${Z.identifier(l)}`}${a}`)}else t.push(Z`${Z.raw(n.joinType)} join${o} ${r}${a}`);i<e.length-1&&t.push(Z` `)}return Z.join(t)}buildFromTable(e){if(s(e,K)&&e[K.Symbol.IsAlias]){let t=Z`${Z.identifier(e[K.Symbol.OriginalName])}`;return e[K.Symbol.Schema]&&(t=Z`${Z.identifier(e[K.Symbol.Schema])}.${t}`),Z`${t} ${Z.identifier(e[K.Symbol.Name])}`}return e}buildSelectQuery({withList:e,fields:t,fieldsFlat:i,where:n,having:o,table:a,joins:l,orderBy:u,groupBy:c,limit:_,offset:d,lockingClause:m,distinct:p,setOperators:g}){const f=i??me(t);for(const e of f)if(s(e.field,r)&&U(e.field.table)!==(s(a,P)?a._.alias:s(a,xn)?a[A].name:s(a,W)?void 0:U(a))&&!(e=>l?.some(({alias:t})=>t===(e[K.Symbol.IsAlias]?U(e):e[K.Symbol.BaseName])))(e.field.table)){const t=U(e.field.table);throw new Error(`Your "${e.path.join("->")}" field references a column "${t}"."${e.field.name}", but the table "${t}" is not part of the query! Did you forget to join it?`)}const h=!l||0===l.length,y=this.buildWithCTE(e);let b;p&&(b=!0===p?Z` distinct`:Z` distinct on (${Z.join(p.on,Z`, `)})`);const v=this.buildSelection(f,{isSingleTable:h}),w=this.buildFromTable(a),N=this.buildJoins(l),S=n?Z` where ${n}`:void 0,x=o?Z` having ${o}`:void 0;let k,C;u&&u.length>0&&(k=Z` order by ${Z.join(u,Z`, `)}`),c&&c.length>0&&(C=Z` group by ${Z.join(c,Z`, `)}`);const q="object"==typeof _||"number"==typeof _&&_>=0?Z` limit ${_}`:void 0,$=d?Z` offset ${d}`:void 0,j=Z.empty();if(m){const e=Z` for ${Z.raw(m.strength)}`;m.config.of&&e.append(Z` of ${Z.join(Array.isArray(m.config.of)?m.config.of:[m.config.of],Z`, `)}`),m.config.noWait?e.append(Z` nowait`):m.config.skipLocked&&e.append(Z` skip locked`),j.append(e)}const T=Z`${y}select${b} ${v} from ${w}${N}${S}${C}${x}${k}${q}${$}${j}`;return g.length>0?this.buildSetOperations(T,g):T}buildSetOperations(e,t){const[i,...n]=t;if(!i)throw new Error("Cannot pass undefined values to any set operator");return 0===n.length?this.buildSetOperationQuery({leftSelect:e,setOperator:i}):this.buildSetOperations(this.buildSetOperationQuery({leftSelect:e,setOperator:i}),n)}buildSetOperationQuery({leftSelect:e,setOperator:{type:t,isAll:i,rightSelect:n,limit:r,orderBy:o,offset:a}}){const l=Z`(${e.getSQL()}) `,u=Z`(${n.getSQL()})`;let c;if(o&&o.length>0){const e=[];for(const t of o)if(s(t,w))e.push(Z.identifier(t.name));else if(s(t,W)){for(let e=0;e<t.queryChunks.length;e++){const i=t.queryChunks[e];s(i,w)&&(t.queryChunks[e]=Z.identifier(i.name))}e.push(Z`${t}`)}else e.push(Z`${t}`);c=Z` order by ${Z.join(e,Z`, `)} `}const _="object"==typeof r||"number"==typeof r&&r>=0?Z` limit ${r}`:void 0,d=Z.raw(`${t} ${i?"all ":""}`);return Z`${l}${d}${u}${c}${_}${a?Z` offset ${a}`:void 0}`}buildInsertQuery({table:e,values:t,onConflict:i,returning:n,withList:r,select:o,overridingSystemValue_:a}){const l=[],u=e[K.Symbol.Columns],c=Object.entries(u).filter(([e,t])=>!t.shouldDisableInsert()),_=c.map(([,e])=>Z.identifier(this.casing.getColumnCasing(e)));if(o){const e=t;s(e,W)?l.push(e):l.push(e.getSQL())}else{const e=t;l.push(Z.raw("values "));for(const[t,i]of e.entries()){const n=[];for(const[e,t]of c){const r=i[e];if(void 0===r||s(r,Y)&&void 0===r.value)if(void 0!==t.defaultFn){const e=t.defaultFn(),i=s(e,W)?e:Z.param(e,t);n.push(i)}else if(t.default||void 0===t.onUpdateFn)n.push(Z`default`);else{const e=t.onUpdateFn(),i=s(e,W)?e:Z.param(e,t);n.push(i)}else n.push(r)}l.push(n),t<e.length-1&&l.push(Z`, `)}}const d=this.buildWithCTE(r),m=Z.join(l);return Z`${d}insert into ${e} ${_} ${!0===a?Z`overriding system value `:void 0}${m}${i?Z` on conflict ${i}`:void 0}${n?Z` returning ${this.buildSelection(n,{isSingleTable:!0})}`:void 0}`}buildRefreshMaterializedViewQuery({view:e,concurrently:t,withNoData:i}){return Z`refresh materialized view${t?Z` concurrently`:void 0} ${e}${i?Z` with no data`:void 0}`}prepareTyping(e){return s(e,ut)||s(e,ot)?"json":s(e,St)?"decimal":s(e,ni)?"time":s(e,oi)||s(e,li)?"timestamp":s(e,Ke)||s(e,Me)?"date":s(e,_i)?"uuid":"none"}sqlToQuery(e,t){return e.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:t})}buildRelationalQueryWithoutPK({fullSchema:e,schema:t,tableNamesMap:i,table:n,tableConfig:o,queryConfig:a,tableAlias:l,nestedQueryRelation:u,joinOn:c}){let _,d,m,p=[],g=[];const f=[];if(!0===a){p=Object.entries(o.columns).map(([e,t])=>({dbKey:t.name,tsKey:e,field:ae(t,l),relationTableTsKey:void 0,isJson:!1,selection:[]}))}else{const n=Object.fromEntries(Object.entries(o.columns).map(([e,t])=>[e,ae(t,l)]));if(a.where){const e="function"==typeof a.where?a.where(n,{and:Yi,between:dn,eq:Gi,exists:cn,gt:tn,gte:nn,ilike:fn,inArray:on,isNull:ln,isNotNull:un,like:pn,lt:sn,lte:rn,ne:Xi,not:en,notBetween:mn,notExists:_n,notLike:gn,notIlike:hn,notInArray:an,or:Zi,sql:Z}):a.where;m=e&&ue(e,l)}const u=[];let c=[];if(a.columns){let e=!1;for(const[t,i]of Object.entries(a.columns))void 0!==i&&t in o.columns&&(e||!0!==i||(e=!0),c.push(t));c.length>0&&(c=e?c.filter(e=>!0===a.columns?.[e]):Object.keys(o.columns).filter(e=>!c.includes(e)))}else c=Object.keys(o.columns);for(const e of c){const t=o.columns[e];u.push({tsKey:e,value:t})}let h,y=[];if(a.with&&(y=Object.entries(a.with).filter(e=>!!e[1]).map(([e,t])=>({tsKey:e,queryConfig:t,relation:o.relations[e]}))),a.extras){h="function"==typeof a.extras?a.extras(n,{sql:Z}):a.extras;for(const[e,t]of Object.entries(h))u.push({tsKey:e,value:le(t,l)})}for(const{tsKey:e,value:t}of u)p.push({dbKey:s(t,W.Aliased)?t.fieldAlias:o.columns[e].name,tsKey:e,field:s(t,r)?ae(t,l):t,relationTableTsKey:void 0,isJson:!1,selection:[]});let b="function"==typeof a.orderBy?a.orderBy(n,{sql:Z,asc:yn,desc:bn}):a.orderBy??[];Array.isArray(b)||(b=[b]),g=b.map(e=>s(e,r)?ae(e,l):ue(e,l)),_=a.limit,d=a.offset;for(const{tsKey:n,queryConfig:r,relation:o}of y){const a=Sn(t,i,o),u=i[M(o.referencedTable)],c=`${l}_${n}`,_=Yi(...a.fields.map((e,t)=>Gi(ae(a.references[t],c),ae(e,l)))),d=this.buildRelationalQueryWithoutPK({fullSchema:e,schema:t,tableNamesMap:i,table:e[u],tableConfig:t[u],queryConfig:s(o,wn)?!0===r?{limit:1}:{...r,limit:1}:r,tableAlias:c,joinOn:_,nestedQueryRelation:o}),m=Z`${Z.identifier(c)}.${Z.identifier("data")}`.as(n);f.push({on:Z`true`,table:new P(d.sql,{},c),alias:c,joinType:"left",lateral:!0}),p.push({dbKey:n,tsKey:n,field:m,relationTableTsKey:u,isJson:!0,selection:d.selection})}}if(0===p.length)throw new Wi({message:`No fields selected for table "${o.tsName}" ("${l}")`});let h;if(m=Yi(c,m),u){let e=Z`json_build_array(${Z.join(p.map(({field:e,tsKey:t,isJson:i})=>i?Z`${Z.identifier(`${l}_${t}`)}.${Z.identifier("data")}`:s(e,W.Aliased)?e.sql:e),Z`, `)})`;s(u,Nn)&&(e=Z`coalesce(json_agg(${e}${g.length>0?Z` order by ${Z.join(g,Z`, `)}`:void 0}), '[]'::json)`);const t=[{dbKey:"data",tsKey:"data",field:e.as("data"),isJson:!0,relationTableTsKey:o.tsName,selection:p}];void 0!==_||void 0!==d||g.length>0?(h=this.buildSelectQuery({table:oe(n,l),fields:{},fieldsFlat:[{path:[],field:Z.raw("*")}],where:m,limit:_,offset:d,orderBy:g,setOperators:[]}),m=void 0,_=void 0,d=void 0,g=[]):h=oe(n,l),h=this.buildSelectQuery({table:s(h,Bi)?h:new P(h,{},l),fields:{},fieldsFlat:t.map(({field:e})=>({path:[],field:s(e,r)?ae(e,l):e})),joins:f,where:m,limit:_,offset:d,orderBy:g,setOperators:[]})}else h=this.buildSelectQuery({table:oe(n,l),fields:{},fieldsFlat:p.map(({field:e})=>({path:[],field:s(e,r)?ae(e,l):e})),joins:f,where:m,limit:_,offset:d,orderBy:g,setOperators:[]});return{tableTsKey:o.tsName,sql:h,selection:p}}}class Cn{static[n]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class qn{static[n]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(e){this.fields=e.fields,this.session=e.session,this.dialect=e.dialect,e.withList&&(this.withList=e.withList),this.distinct=e.distinct}authToken;setToken(e){return this.authToken=e,this}from(e){const t=!!this.fields,i=e;let n;return n=this.fields?this.fields:s(i,P)?Object.fromEntries(Object.keys(i._.selectedFields).map(e=>[e,i[e]])):s(i,xn)?i[A].selectedFields:s(i,W)?{}:ge(i),new jn({table:i,fields:n,isPartialSelect:t,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class $n extends Cn{static[n]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;cacheConfig=void 0;usedTables=new Set;constructor({table:e,fields:t,isPartialSelect:i,session:n,dialect:s,withList:r,distinct:o}){super(),this.config={withList:r,table:e,fields:{...t},distinct:o,setOperators:[]},this.isPartialSelect=i,this.session=n,this.dialect=s,this._={selectedFields:t,config:this.config},this.tableName=fe(e),this.joinsNotNullableMap="string"==typeof this.tableName?{[this.tableName]:!0}:{};for(const t of Wn(e))this.usedTables.add(t)}getUsedTables(){return[...this.usedTables]}createJoin(e,t){return(i,n)=>{const r=this.tableName,o=fe(i);for(const e of Wn(i))this.usedTables.add(e);if("string"==typeof o&&this.config.joins?.some(e=>e.alias===o))throw new Error(`Alias "${o}" is already used in this query`);if(!this.isPartialSelect&&(1===Object.keys(this.joinsNotNullableMap).length&&"string"==typeof r&&(this.config.fields={[r]:this.config.fields}),"string"==typeof o&&!s(i,W))){const e=s(i,P)?i._.selectedFields:s(i,ne)?i[A].selectedFields:i[K.Symbol.Columns];this.config.fields[o]=e}if("function"==typeof n&&(n=n(new Proxy(this.config.fields,new ji({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.joins||(this.config.joins=[]),this.config.joins.push({on:n,table:i,joinType:e,alias:o,lateral:t}),"string"==typeof o)switch(e){case"left":this.joinsNotNullableMap[o]=!1;break;case"right":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[o]=!0;break;case"cross":case"inner":this.joinsNotNullableMap[o]=!0;break;case"full":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[o]=!1}return this}}leftJoin=this.createJoin("left",!1);leftJoinLateral=this.createJoin("left",!0);rightJoin=this.createJoin("right",!1);innerJoin=this.createJoin("inner",!1);innerJoinLateral=this.createJoin("inner",!0);fullJoin=this.createJoin("full",!1);crossJoin=this.createJoin("cross",!1);crossJoinLateral=this.createJoin("cross",!0);createSetOperator(e,t){return i=>{const n="function"==typeof i?i(Pn()):i;if(!pe(this.getSelectedFields(),n.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:e,isAll:t,rightSelect:n}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);intersectAll=this.createSetOperator("intersect",!0);except=this.createSetOperator("except",!1);exceptAll=this.createSetOperator("except",!0);addSetOperators(e){return this.config.setOperators.push(...e),this}where(e){return"function"==typeof e&&(e=e(new Proxy(this.config.fields,new ji({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.where=e,this}having(e){return"function"==typeof e&&(e=e(new Proxy(this.config.fields,new ji({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.having=e,this}groupBy(...e){if("function"==typeof e[0]){const t=e[0](new Proxy(this.config.fields,new ji({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(t)?t:[t]}else this.config.groupBy=e;return this}orderBy(...e){if("function"==typeof e[0]){const t=e[0](new Proxy(this.config.fields,new ji({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),i=Array.isArray(t)?t:[t];this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=i:this.config.orderBy=i}else{const t=e;this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=t:this.config.orderBy=t}return this}limit(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).limit=e:this.config.limit=e,this}offset(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).offset=e:this.config.offset=e,this}for(e,t={}){return this.config.lockingClause={strength:e,config:t},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){const{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}as(e){const t=[];if(t.push(...Wn(this.config.table)),this.config.joins)for(const e of this.config.joins)t.push(...Wn(e.table));return new Proxy(new P(this.getSQL(),this.config.fields,e,!1,[...new Set(t)]),new ji({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new ji({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}$withCache(e){return this.cacheConfig=void 0===e?{config:{},enable:!0,autoInvalidate:!0}:!1===e?{enable:!1}:{enable:!0,autoInvalidate:!0,...e},this}}class jn extends $n{static[n]="PgSelect";_prepare(e){const{session:t,config:i,dialect:n,joinsNotNullableMap:s,authToken:r,cacheConfig:o,usedTables:a}=this;if(!t)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");const{fields:l}=i;return D.startActiveSpan("drizzle.prepareQuery",()=>{const i=me(l),u=t.prepareQuery(n.sqlToQuery(this.getSQL()),i,e,!0,void 0,{type:"select",tables:[...a]},o);return u.joinsNotNullableMap=s,u.setToken(r)})}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=e=>D.startActiveSpan("drizzle.operation",()=>this._prepare().execute(e,this.authToken))}function Tn(e,t){return(i,n,...s)=>{const r=[n,...s].map(i=>({type:e,isAll:t,rightSelect:i}));for(const e of r)if(!pe(i.getSelectedFields(),e.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return i.addSetOperators(r)}}!function(e,t){for(const i of t)for(const t of Object.getOwnPropertyNames(i.prototype))"constructor"!==t&&Object.defineProperty(e.prototype,t,Object.getOwnPropertyDescriptor(i.prototype,t)||Object.create(null))}(jn,[$i]);const Pn=()=>({union:Bn,unionAll:Dn,intersect:An,intersectAll:On,except:Ln,exceptAll:In}),Bn=Tn("union",!1),Dn=Tn("union",!0),An=Tn("intersect",!1),On=Tn("intersect",!0),Ln=Tn("except",!1),In=Tn("except",!0);class zn{static[n]="PgQueryBuilder";dialect;dialectConfig;constructor(e){this.dialect=s(e,kn)?e:void 0,this.dialectConfig=s(e,kn)?void 0:e}$with=(e,t)=>{const i=this;return{as:n=>("function"==typeof n&&(n=n(i)),new Proxy(new B(n.getSQL(),t??("getSelectedFields"in n?n.getSelectedFields()??{}:{}),e,!0),new ji({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"})))}};with(...e){const t=this;return{select:function(i){return new qn({fields:i??void 0,session:void 0,dialect:t.getDialect(),withList:e})},selectDistinct:function(e){return new qn({fields:e??void 0,session:void 0,dialect:t.getDialect(),distinct:!0})},selectDistinctOn:function(e,i){return new qn({fields:i??void 0,session:void 0,dialect:t.getDialect(),distinct:{on:e}})}}}select(e){return new qn({fields:e??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(e){return new qn({fields:e??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(e,t){return new qn({fields:t??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:e}})}getDialect(){return this.dialect||(this.dialect=new kn(this.dialectConfig)),this.dialect}}class Fn{constructor(e,t){this.name=e,this.schema=t}static[n]="PgDefaultViewBuilderCore";config={};with(e){return this.config.with=e,this}}class Qn extends Fn{static[n]="PgViewBuilder";as(e){"function"==typeof e&&(e=e(new zn));const t=new ji({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}),i=new Proxy(e.getSelectedFields(),t);return new Proxy(new Mn({pgConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:i,query:e.getSQL().inlineParams()}}),t)}}class Vn extends Fn{static[n]="PgManualViewBuilder";columns;constructor(e,t,i){super(e,i),this.columns=ge(Ai(e,t))}existing(){return new Proxy(new Mn({pgConfig:void 0,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:void 0}}),new ji({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}as(e){return new Proxy(new Mn({pgConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:e.inlineParams()}}),new ji({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}}class En{constructor(e,t){this.name=e,this.schema=t}static[n]="PgMaterializedViewBuilderCore";config={};using(e){return this.config.using=e,this}with(e){return this.config.with=e,this}tablespace(e){return this.config.tablespace=e,this}withNoData(){return this.config.withNoData=!0,this}}class Kn extends En{static[n]="PgMaterializedViewBuilder";as(e){"function"==typeof e&&(e=e(new zn));const t=new ji({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}),i=new Proxy(e.getSelectedFields(),t);return new Proxy(new Jn({pgConfig:{with:this.config.with,using:this.config.using,tablespace:this.config.tablespace,withNoData:this.config.withNoData},config:{name:this.name,schema:this.schema,selectedFields:i,query:e.getSQL().inlineParams()}}),t)}}class Un extends En{static[n]="PgManualMaterializedViewBuilder";columns;constructor(e,t,i){super(e,i),this.columns=ge(Ai(e,t))}existing(){return new Proxy(new Jn({pgConfig:{tablespace:this.config.tablespace,using:this.config.using,with:this.config.with,withNoData:this.config.withNoData},config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:void 0}}),new ji({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}as(e){return new Proxy(new Jn({pgConfig:{tablespace:this.config.tablespace,using:this.config.using,with:this.config.with,withNoData:this.config.withNoData},config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:e.inlineParams()}}),new ji({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}}class Mn extends xn{static[n]="PgView";[Ki];constructor({pgConfig:e,config:t}){super(t),e&&(this[Ki]={with:e.with})}}const Rn=Symbol.for("drizzle:PgMaterializedViewConfig");class Jn extends xn{static[n]="PgMaterializedView";[Rn];constructor({pgConfig:e,config:t}){super(t),this[Rn]={with:e?.with,using:e?.using,tablespace:e?.tablespace,withNoData:e?.withNoData}}}function Wn(e){return s(e,Bi)?[e[O]?`${e[O]}.${e[K.Symbol.BaseName]}`:e[K.Symbol.BaseName]]:s(e,P)?e._.usedTables??[]:s(e,W)?e.usedTables??[]:[]}class Hn{constructor(e,t,i){this.seqName=e,this.seqOptions=t,this.schema=i}static[n]="PgSequence"}class Gn{constructor(e){this.schemaName=e}static[n]="PgSchema";table=(e,t,i)=>Di(e,t,i,this.schemaName);view=(e,t)=>function(e,t,i){return t?new Vn(e,t,i):new Qn(e,i)}(e,t,this.schemaName);materializedView=(e,t)=>function(e,t,i){return t?new Un(e,t,i):new Kn(e,i)}(e,t,this.schemaName);enum(e,t){return Array.isArray(t)?function(e,t,i){const n=Object.assign(e=>new j(e??"",n),{enumName:e,enumValues:t,schema:i,[$]:!0});return n}(e,[...t],this.schemaName):function(e,t,i){const n=Object.assign(e=>new C(e??"",n),{enumName:e,enumValues:Object.values(t),schema:i,[$]:!0});return n}(e,t,this.schemaName)}sequence=(e,t)=>function(e,t,i){return new Hn(e,t,i)}(e,t,this.schemaName);getSQL(){return new W([Z.identifier(this.schemaName)])}shouldOmitSQLParens(){return!0}}function Xn(e){if("public"===e)throw new Error("You can't specify 'public' as schema name. Postgres is using public schema by default. If you want to use 'public' schema, just use pgTable() instead of creating a schema");return new Gn(e)}const Yn=Xn("raw"),Zn=Xn("rendered"),es=Xn("internal");Xn("cached");const ts=Yn.enum("state",["draft","published","expired"]),is=Yn.enum("restriction_level",["ogl_compatible","ogl_equivalent","restricted","highly_restricted"]),ns=Yn.enum("media_classification",["image","photo","artwork","screenshot","map","gif","speech","music","other","film","tv","software","misc_website_content","no_best_fit"]),ss=Yn.enum("media_provenance",["oak_created","oak_illustration","partner_created","creative_commons","pixabay","pexels","unsplash","openverse","freesvg","needpix","bridgeman","shutterstock","dall_e","adobe_firefly","other","legacy_data"]),rs=Yn.enum("acquisition_basis",["oak_owned","public_domain","gratis","paid"]),os=Yn.enum("content_cycle",["cycle_1","cycle_2"]),as=Yn.enum("permission_status",["not_required","granted","denied"]),ls=Yn.enum("territory",["uk","worldwide","worldwide_no_usa","other_territory"]),us=Yn.enum("licence",["cc0","cc_by","cc_by_sa","cc_by_nc","cc_by_nc_sa","cc_by_nc_nd","cc_by_nd","ogl","reusable_perpetuity","reusable_within_term","single_use","restricted_use","internal_use_only","other"]),cs=Yn.enum("question_type",["explanatory-text","match","multiple-choice","order","short-answer","text"]),_s=Yn.enum("tag_category",["discipline","domain","world_view"]),ds=Yn.enum("media_kind",["video","sound"]),ms=Yn.enum("redirect_type",["301","302","307","308"]),ps=Yn.enum("redirect_entity_source",["lessons","units","programmes","subjects"]),gs=es.enum("operation",["insert","update","delete"]),fs=es.enum("media_type_enum",["video","sound","gdrive_file","bucket_file"]),hs=es.enum("lesson_component_type_enum",["document","downloadable","lesson_video","media_clip","quiz"]),ys={created_at:ui("created_at",{withTimezone:!0}).defaultNow(),updated_at:ui("updated_at",{withTimezone:!0}).$onUpdateFn(()=>new Date)},bs={created_at:ui("created_at",{withTimezone:!0}).notNull().defaultNow()},vs=es.enum("release_type",["mathfix","migration"]),ws=es.table("releases",{release_id:tt("release_id").primaryKey().generatedByDefaultAsIdentity(),_authoring_state:ts("_authoring_state").notNull(),approved:Pe("approved").notNull().default(!1),approver:ct("approver"),description:ti("description"),estimated_release_date:Re("estimated_release_date"),locked:Pe("locked").notNull().default(!1),name:ti("name"),notes:ti("notes"),release_type:vs("release_type"),release_uid:Ae("release_uid",{length:16}),...ys}),Ns={_state:ts("_state").notNull()},Ss={_authoring_state:ts("_authoring_state").notNull()},xs={_choice_state:ts("_choice_state").notNull()},ks={_lesson_state:ts("_lesson_state").notNull()},Cs={_programme_state:ts("_programme_state").notNull()},qs={_question_state:ts("_question_state").notNull()},$s={_quiz_state:ts("_quiz_state").notNull()},js={_subject_phase_state:ts("_subject_phase_state").notNull()},Ts={_thread_state:ts("_thread_state").notNull()},Ps={_unit_state:ts("_unit_state").notNull()},Bs={_unit_variant_state:ts("_unit_variant_state").notNull()},Ds={_works_copyright_state:ts("_works_copyright_state").notNull()},As={_choice_state:ts("_choice_state")},Os={_unit_variant_state:ts("_unit_variant_state")},Ls=({name:e,columnA:i,columnB:n})=>de(e,t.sql`${i} = 'expired' or ${n} = 'expired' or ${i} = ${n}`),Is=({name:e,columnA:i,columnB:n})=>de(e,t.sql`${i} = 'expired' or ${n} is null or ${n} = 'expired' or ${i} = ${n}`),zs={_expire_on_release:Pe("_expire_on_release").notNull().default(!1),_release_id:tt("_release_id").references(()=>ws.release_id)},Fs=Ns,Qs=Yn.table("gdrive_files",{gdrive_file_id:tt("gdrive_file_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),epoch:ti("epoch"),google_drive_id:ti("google_drive_id"),google_drive_url:ti("google_drive_url"),opendocument_presentation_bucket_name:ti("opendocument_presentation_bucket_name"),opendocument_presentation_bucket_path:ti("opendocument_presentation_bucket_path"),pdf_bucket_name:ti("pdf_bucket_name"),pdf_bucket_path:ti("pdf_bucket_path"),powerpoint_bucket_name:ti("powerpoint_bucket_name"),powerpoint_bucket_path:ti("powerpoint_bucket_path"),previous_document_id:tt("previous_document_id"),...zs,...ys}),Vs=Yn.table("lessons",{lesson_id:tt("lesson_id").notNull().generatedByDefaultAsIdentity(),...Fs,agf__has_copyright_restrictions:Pe("agf__has_copyright_restrictions"),agf__restricted_download:Pe("agf__restricted_download"),deprecated_fields:ct("deprecated_fields"),equipment_and_resources:ct("equipment_and_resources"),has_tag_practical_not_remote:Pe("has_tag_practical_not_remote").notNull().default(!1),is_sensitive:Pe("is_sensitive").notNull().default(!1),key_learning_points:ct("key_learning_points"),keywords:ct("keywords"),lesson_outline:ct("lesson_outline"),lesson_uid:Ae("lesson_uid",{length:16}).notNull(),misconceptions_and_common_mistakes:ct("misconceptions_and_common_mistakes"),phonics_outcome:ti("phonics_outcome"),pupil_lesson_outcome:ti("pupil_lesson_outcome"),slug:ti("slug").notNull(),teacher_tips:ct("teacher_tips"),title:ti("title").notNull(),...zs,...ys},e=>[Qi({columns:[e.lesson_id,e._state]})]),Es=Yn.enum("document_type",["slidedeck","worksheet","worksheet_answers","supplementary_resource","lesson_guide"]),Ks=Yn.table("documents",{document_id:tt("document_id").notNull().generatedByDefaultAsIdentity(),...Fs,gdrive_file_id:tt("gdrive_file_id").notNull(),lesson_id:tt("lesson_id"),deprecated_fields:ct("deprecated_fields"),document_type:Es("document_type").notNull(),document_uid:Ae("document_uid",{length:16}),previous_lesson_id:tt("previous_lesson_id"),...zs,...ys},e=>[Qi({columns:[e.document_id,e._state]}),c({columns:[e.lesson_id,e._state],foreignColumns:[Vs.lesson_id,Vs._state]}),c({name:"documents_gdrive_file_fk",columns:[e.gdrive_file_id],foreignColumns:[Qs.gdrive_file_id]}),_().on(e.lesson_id,e.document_type,e._state)]),Us=Yn.table("bucket_files",{bucket_file_id:tt("bucket_file_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,bucket_name:ti("bucket_name"),bucket_path:ti("bucket_path"),byte_size:tt("byte_size"),cloudinary_public_id:ti("cloudinary_public_id"),cloudinary_source_url:ti("cloudinary_source_url"),content_type:ti("content_type"),deprecated_fields:ct("deprecated_fields"),filename:ti("filename"),media_description:ti("media_description"),name:ti("name"),previous_downloadable_id:tt("previous_downloadable_id"),...zs,...ys});Yn.table("downloadables",{downloadable_id:tt("downloadable_id").notNull().generatedByDefaultAsIdentity(),...Fs,bucket_file_id:tt("bucket_file_id").notNull(),lesson_id:tt("lesson_id"),custom_title:ti("custom_title"),deprecated_fields:ct("deprecated_fields"),position:tt("position").notNull(),previous_lesson_id:tt("previous_lesson_id"),...zs,...ys},e=>[Qi({columns:[e.downloadable_id,e._state]}),c({columns:[e.lesson_id,e._state],foreignColumns:[Vs.lesson_id,Vs._state]}),c({name:"downloadables_bucket_file_fk",columns:[e.bucket_file_id],foreignColumns:[Us.bucket_file_id]}),Fi("downloadables_lesson_position_unique").on(e.lesson_id,e.position,e._state)]);const Ms=Yn.table("videos",{video_id:tt("video_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,cloudinary_public_id:ti("cloudinary_public_id"),cloudinary_source_url:ti("cloudinary_source_url"),contains_identifiable_face:Pe("contains_identifiable_face"),deprecated_fields:ct("deprecated_fields"),duration_seconds:$t("duration_seconds"),has_bsl:Pe("has_bsl"),ingest_origin:ti("ingest_origin"),media_description:ti("media_description"),mux_asset_id:ti("mux_asset_id"),mux_playback_id:ti("mux_playback_id"),name:ti("name"),previous_lesson_video_id:tt("previous_lesson_video_id"),previous_media_clip_ids:tt("previous_media_clip_ids").array(),raw_mux_data:ct("raw_mux_data"),signed_stream_id:ti("signed_stream_id"),title:ti("title"),url:ti("url"),video_uid:Ae("video_uid",{length:16}),...zs,...ys});Yn.table("lesson_videos",{lesson_video_id:tt("lesson_video_id").notNull().generatedByDefaultAsIdentity(),...Fs,lesson_id:tt("lesson_id"),sign_language_video_id:tt("sign_language_video_id"),video_id:tt("video_id").notNull(),previous_lesson_id:tt("previous_lesson_id"),...zs,...ys},e=>[Qi({columns:[e.lesson_video_id,e._state]}),c({columns:[e.lesson_id,e._state],foreignColumns:[Vs.lesson_id,Vs._state]}),c({columns:[e.video_id],foreignColumns:[Ms.video_id]}),c({name:"lesson_videos_sign_lang_video_fk",columns:[e.sign_language_video_id],foreignColumns:[Ms.video_id]}),Fi("lesson_videos_lesson_unique").on(e.lesson_id,e._state)]);const Rs=Yn.table("media_clip_cycles",{media_clip_cycle_id:tt("media_clip_cycle_id").notNull().generatedByDefaultAsIdentity(),...Fs,lesson_id:tt("lesson_id"),cycle_name:ti("cycle_name"),position:tt("position").notNull(),previous_lesson_id:tt("previous_lesson_id"),...zs,...ys},e=>[Qi({columns:[e.media_clip_cycle_id,e._state]}),c({columns:[e.lesson_id,e._state],foreignColumns:[Vs.lesson_id,Vs._state]}),Fi("media_clip_cycles_lesson_name_unique").on(e.lesson_id,e.cycle_name,e._state),Fi("media_clip_cycles_lesson_position_unique").on(e.lesson_id,e.position,e._state)]),Js=Yn.table("sounds",{sound_id:tt("sound_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,cloudinary_public_id:ti("cloudinary_public_id"),cloudinary_source_url:ti("cloudinary_source_url"),duration_seconds:$t("duration_seconds"),media_description:ti("media_description"),mux_asset_id:ti("mux_asset_id"),mux_playback_id:ti("mux_playback_id"),name:ti("name"),previous_media_clip_ids:tt("previous_media_clip_ids").array(),transcript_vtt_url:ti("transcript_vtt_url"),...zs,...ys});Yn.table("media_clips",{media_clip_id:tt("media_clip_id").notNull().generatedByDefaultAsIdentity(),...Fs,media_clip_cycle_id:tt("media_clip_cycle_id").notNull(),sound_id:tt("sound_id"),video_id:tt("video_id"),custom_title:ti("custom_title"),media_kind:ds("media_kind"),position:tt("position").notNull(),...zs,...ys},e=>[Qi({columns:[e.media_clip_id,e._state]}),c({name:"media_clips_mc_cycle_fk",columns:[e.media_clip_cycle_id,e._state],foreignColumns:[Rs.media_clip_cycle_id,Rs._state]}),c({columns:[e.video_id],foreignColumns:[Ms.video_id]}),c({columns:[e.sound_id],foreignColumns:[Js.sound_id]}),de("media_clip_video_or_sound",t.sql`(video_id IS NOT NULL AND sound_id IS NULL) OR (video_id IS NULL AND sound_id IS NOT NULL)`),Fi("media_clips_cycle_position_unique").on(e.media_clip_cycle_id,e.position,e._state)]);const Ws=Yn.table("images",{image_id:tt("image_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,cloudinary_public_id:ti("cloudinary_public_id"),cloudinary_source_url:ti("cloudinary_source_url"),contains_identifiable_face:Pe("contains_identifiable_face"),height:tt("height"),media_description:ti("media_description"),name:ti("name"),width:tt("width"),...zs,...ys}),Hs=Yn.table("questions",{question_id:tt("question_id").notNull().generatedByDefaultAsIdentity(),...Fs,stem_image_id:tt("stem_image_id"),deprecated_fields:ct("deprecated_fields"),feedback:ti("feedback"),hint:ti("hint"),question_type:cs("question_type").notNull(),question_uid:Ae("question_uid",{length:16}).notNull(),stem_text:ti("stem_text"),...zs,...ys},e=>[Qi({columns:[e.question_id,e._state]}),c({columns:[e.stem_image_id],foreignColumns:[Ws.image_id]})]);Yn.table("question_options",{option_id:tt("option_id").notNull().generatedByDefaultAsIdentity(),...Fs,body_image_id:tt("body_image_id"),match_partner_image_id:tt("match_partner_image_id"),question_id:tt("question_id").notNull(),body_text:ti("body_text"),correct_order:tt("correct_order"),is_correct:Pe("is_correct"),match_partner_text:ti("match_partner_text"),position:tt("position"),...zs,...ys},e=>[Qi({columns:[e.option_id,e._state]}),c({name:"question_options_question_fk",columns:[e.question_id,e._state],foreignColumns:[Hs.question_id,Hs._state]}),c({name:"question_options_body_image_fk",columns:[e.body_image_id],foreignColumns:[Ws.image_id]}),c({name:"question_options_match_partner_image_fk",columns:[e.match_partner_image_id],foreignColumns:[Ws.image_id]})]);const Gs=Yn.table("units",{unit_id:tt("unit_id").notNull().generatedByDefaultAsIdentity(),...Ns,deprecated_fields:ct("deprecated_fields"),description:ti("description").notNull(),slug:ti("slug"),title:ti("title").notNull(),unit_uid:Ae("unit_uid",{length:16}),why_this_why_now:ti("why_this_why_now"),...zs,...ys},e=>[Qi({columns:[e.unit_id,e._state]})]);Yn.table("question_units",{question_id:tt("question_id").notNull(),unit_id:tt("unit_id").notNull(),...qs,...Ps,...zs,...ys},e=>[Qi({name:"question_units_pk",columns:[e.question_id,e.unit_id,e._question_state,e._unit_state]}),c({name:"question_units_question_fk",columns:[e.question_id,e._question_state],foreignColumns:[Hs.question_id,Hs._state]}),c({name:"question_units_unit_fk",columns:[e.unit_id,e._unit_state],foreignColumns:[Gs.unit_id,Gs._state]}),Ls({name:"question_units_state_coherence",columnA:e._question_state,columnB:e._unit_state})]);const Xs=Yn.enum("quiz_role",["starter","exit"]),Ys=Yn.table("quizzes",{quiz_id:tt("quiz_id").notNull().generatedByDefaultAsIdentity(),...Fs,lesson_id:tt("lesson_id"),deprecated_fields:ct("deprecated_fields"),previous_lesson_id:tt("previous_lesson_id"),quiz_answers_pdf_bucket_name:ti("quiz_answers_pdf_bucket_name"),quiz_answers_pdf_bucket_path:ti("quiz_answers_pdf_bucket_path"),quiz_pdf_bucket_name:ti("quiz_pdf_bucket_name"),quiz_pdf_bucket_path:ti("quiz_pdf_bucket_path"),quiz_role:Xs("quiz_role").notNull(),quiz_uid:Ae("quiz_uid",{length:16}).notNull(),...zs,...ys},e=>[Qi({columns:[e.quiz_id,e._state]}),c({columns:[e.lesson_id,e._state],foreignColumns:[Vs.lesson_id,Vs._state]}),Fi("quizzes_lesson_role_unique").on(e.lesson_id,e.quiz_role,e._state)]);Yn.table("quiz_questions",{quiz_id:tt("quiz_id").notNull(),question_id:tt("question_id").notNull(),...$s,...qs,position:tt("position").notNull(),...zs,...ys},e=>[Qi({name:"quiz_questions_pk",columns:[e.quiz_id,e.question_id,e._quiz_state,e._question_state]}),c({name:"quiz_questions_quiz_fk",columns:[e.quiz_id,e._quiz_state],foreignColumns:[Ys.quiz_id,Ys._state]}),c({name:"quiz_questions_question_fk",columns:[e.question_id,e._question_state],foreignColumns:[Hs.question_id,Hs._state]}),Ls({name:"quiz_questions_state_coherence",columnA:e._quiz_state,columnB:e._question_state})]);const Zs=Yn.table("urls",{url_id:tt("url_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,cloudinary_public_id:ti("cloudinary_public_id"),cloudinary_source_url:ti("cloudinary_source_url"),name:ti("name"),url:ti("url"),...zs,...ys}),er=Yn.table("media_copyright",{media_copyright_id:tt("media_copyright_id").notNull().generatedByDefaultAsIdentity(),...Fs,bucket_file_id:tt("bucket_file_id"),image_id:tt("image_id"),sound_id:tt("sound_id"),url_id:tt("url_id"),video_id:tt("video_id"),acquisition_basis:rs("acquisition_basis"),additional_restrictions:ti("additional_restrictions"),attribution:ti("attribution"),attribution_required:Pe("attribution_required"),content_cycle:os("content_cycle"),media_copyright_uid:ti("media_copyright_uid"),deprecated_fields:ct("deprecated_fields"),expiry_date_override:Re("expiry_date_override"),licence:us("licence"),media_classification:ns("media_classification"),media_provenance:ss("media_provenance"),media_provenance_url:ti("media_provenance_url"),partner_name:ti("partner_name"),permission_status:as("permission_status"),restriction_level_override:is("restriction_level_override"),territory_other:ti("territory_other"),territory_override:ls("territory_override"),third_party_id:ti("third_party_id"),usage_notes:ti("usage_notes"),...zs,...ys},e=>[Qi({columns:[e.media_copyright_id,e._state]}),c({columns:[e.image_id],foreignColumns:[Ws.image_id]}),c({columns:[e.sound_id],foreignColumns:[Js.sound_id]}),c({columns:[e.video_id],foreignColumns:[Ms.video_id]}),c({name:"media_copyright_bucket_file_fk",columns:[e.bucket_file_id],foreignColumns:[Us.bucket_file_id]}),c({columns:[e.url_id],foreignColumns:[Zs.url_id]}),de("media_copyright_has_exactly_one_media",t.sql`(image_id IS NOT NULL)::int + (sound_id IS NOT NULL)::int + (video_id IS NOT NULL)::int + (bucket_file_id IS NOT NULL)::int + (url_id IS NOT NULL)::int = 1`),_("media_copyright_image_unique").on(e.image_id,e._state),_("media_copyright_sound_unique").on(e.sound_id,e._state),_("media_copyright_video_unique").on(e.video_id,e._state),_("media_copyright_bucket_file_unique").on(e.bucket_file_id,e._state),_("media_copyright_url_unique").on(e.url_id,e._state)]),tr=es.enum("contract_territory",["worldwide","worldwide_excl_usa","worldwide_excl_canada_and_usa","uk_only","uk_and_commonwealth","uk_and_commonwealth_excl_canada","uk_and_eire"]),ir=es.table("tpc_contracts",{tpc_contract_id:tt("tpc_contract_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,effective_date:Re("effective_date"),end_date:Re("end_date"),geo_restricted:Pe().notNull().default(!1),juro_id:ti("juro_id"),juro_url:ti("juro_url"),login_required:Pe().notNull().default(!1),name:ti("name").notNull(),raw_contract:ct("raw_contract"),restricted_download:Pe().notNull().default(!1),restriction_level:is(),signing_side:ti("signing_side"),territory:tr("territory"),tpc_contract_uid:Ae("tpc_contract_uid",{length:16}).notNull(),...ys},()=>[]);Yn.table("media_copyright_tpc_contracts",{media_copyright_id:tt("media_copyright_id").notNull(),tpc_contract_id:tt("tpc_contract_id").notNull(),...Fs,...zs,_release_id:tt("_release_id"),...ys},e=>[Qi({name:"media_copyright_tpc_contracts_pk",columns:[e.media_copyright_id,e.tpc_contract_id,e._state]}),c({name:"media_copyright_tpc_contract_media_copyright_fk",columns:[e.media_copyright_id,e._state],foreignColumns:[er.media_copyright_id,er._state]}),c({name:"media_copyright_tpc_contract_tpc_contract_fk",columns:[e.tpc_contract_id],foreignColumns:[ir.tpc_contract_id]}),c({name:"media_copyright_tpc_contracts_release_fk",columns:[e._release_id],foreignColumns:[ws.release_id]})]),Yn.table("gdrive_file_images",{gdrive_file_id:tt("gdrive_file_id").notNull(),image_id:tt("image_id").notNull(),...Ss,...zs,...ys},e=>[Qi({columns:[e.gdrive_file_id,e.image_id]}),c({name:"gdrive_file_images_gdrive_file_fk",columns:[e.gdrive_file_id],foreignColumns:[Qs.gdrive_file_id]}),c({columns:[e.image_id],foreignColumns:[Ws.image_id]})]),Yn.table("lesson_media",{lesson_media_id:tt("lesson_media_id").notNull().generatedByDefaultAsIdentity(),...Ns,lesson_id:tt("lesson_id").notNull(),bucket_file_id:tt("bucket_file_id"),image_id:tt("image_id"),sound_id:tt("sound_id"),url_id:tt("url_id"),video_id:tt("video_id"),...zs,...ys},e=>[Qi({name:"lesson_media_pk",columns:[e.lesson_media_id,e._state]}),c({name:"lesson_media_lesson_fk",columns:[e.lesson_id,e._state],foreignColumns:[Vs.lesson_id,Vs._state]}),c({name:"lesson_media_image_fk",columns:[e.image_id],foreignColumns:[Ws.image_id]}),c({name:"lesson_media_sound_fk",columns:[e.sound_id],foreignColumns:[Js.sound_id]}),c({name:"lesson_media_video_fk",columns:[e.video_id],foreignColumns:[Ms.video_id]}),c({name:"lesson_media_bucket_file_fk",columns:[e.bucket_file_id],foreignColumns:[Us.bucket_file_id]}),c({name:"lesson_media_url_fk",columns:[e.url_id],foreignColumns:[Zs.url_id]}),de("lesson_media_has_exactly_one_media",t.sql`(image_id IS NOT NULL)::int + (sound_id IS NOT NULL)::int + (video_id IS NOT NULL)::int + (bucket_file_id IS NOT NULL)::int + (url_id IS NOT NULL)::int = 1`),_("lesson_media_lesson_asset_unique").on(e.lesson_id,e._state,e.image_id,e.sound_id,e.video_id,e.bucket_file_id,e.url_id).nullsNotDistinct()]);const nr=Yn.table("works_copyright",{works_copyright_id:tt("works_copyright_id").notNull().generatedByDefaultAsIdentity(),...Ns,attribution:ti("attribution"),author:ti("author"),deprecated_fields:ct("deprecated_fields"),raw_juro_data:ct("raw_juro_data"),restriction_level:is("restriction_level"),title:ti("title"),works_copyright_uid:Ae("works_copyright_uid",{length:16}),...zs,...ys},e=>[Qi({columns:[e.works_copyright_id,e._state]})]);Yn.table("lesson_works_copyright",{lesson_id:tt("lesson_id").notNull(),works_copyright_id:tt("works_copyright_id").notNull(),...ks,...Ds,...zs,...ys},e=>[Qi({name:"lesson_works_copyright_pk",columns:[e.lesson_id,e.works_copyright_id,e._lesson_state,e._works_copyright_state]}),c({name:"lesson_works_copyright_lesson_fk",columns:[e.lesson_id,e._lesson_state],foreignColumns:[Vs.lesson_id,Vs._state]}),c({name:"lesson_works_copyright_works_copyright_fk",columns:[e.works_copyright_id,e._works_copyright_state],foreignColumns:[nr.works_copyright_id,nr._state]}),Ls({name:"lesson_works_copyright_state_coherence",columnA:e._lesson_state,columnB:e._works_copyright_state})]);const sr=Yn.table("features",{feature_id:tt("feature_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,key:ti("key").notNull(),...zs,...ys},e=>[_("features_key_unique").on(e.key)]);Yn.table("lesson_features",{lesson_id:tt("lesson_id").notNull(),feature_id:tt("feature_id").notNull(),...Fs,value:ti("value"),...zs,...ys},e=>[Qi({columns:[e.lesson_id,e.feature_id,e._state]}),c({columns:[e.lesson_id,e._state],foreignColumns:[Vs.lesson_id,Vs._state]}),c({name:"lesson_features_feature_fk",columns:[e.feature_id],foreignColumns:[sr.feature_id]})]),Yn.table("video_captions",{video_id:tt("video_id").notNull(),...Ns,bad_language_detected:Pe("bad_language_detected"),deprecated_fields:ct("deprecated_fields"),inappropriate_words:ct("inappropriate_words"),language_approved:Pe("language_approved"),transcript:ti("transcript"),transcript_vtt_url:ti("transcript_vtt_url"),...zs,...ys},e=>[Qi({columns:[e.video_id,e._state]}),c({columns:[e.video_id],foreignColumns:[Ms.video_id]})]),Yn.table("works_copyright_tpc_contracts",{works_copyright_id:tt("works_copyright_id").notNull(),tpc_contract_id:tt("tpc_contract_id").notNull(),...Fs,...zs,_release_id:tt("_release_id"),...ys},e=>[Qi({name:"works_copyright_tpc_contracts_pk",columns:[e.works_copyright_id,e.tpc_contract_id,e._state]}),c({name:"works_copyright_tpc_contract_works_copyright_fk",columns:[e.works_copyright_id,e._state],foreignColumns:[nr.works_copyright_id,nr._state]}),c({name:"works_copyright_tpc_contract_tpc_contract_fk",columns:[e.tpc_contract_id],foreignColumns:[ir.tpc_contract_id]}),c({name:"works_copyright_tpc_contracts_release_fk",columns:[e._release_id],foreignColumns:[ws.release_id]})]),Yn.table("videos_works_copyright",{video_id:tt("video_id").notNull(),works_copyright_id:tt("works_copyright_id").notNull(),...Ns,...zs,...ys},e=>[Qi({columns:[e.video_id,e.works_copyright_id,e._state]}),c({name:"videos_works_copyright_video_fk",columns:[e.video_id],foreignColumns:[Ms.video_id]}),c({name:"videos_works_copyright_works_copyright_fk",columns:[e.works_copyright_id,e._state],foreignColumns:[nr.works_copyright_id,nr._state]})]);const rr=Yn.table("supervision_levels",{supervision_level_id:tt("supervision_level_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),description:ti("description"),global_position:tt("global_position").notNull(),supervision_level_rating:tt("supervision_level_rating"),title:ti("title").notNull(),...zs,...ys}),or=Yn.table("content_guidance",{content_guidance_id:tt("content_guidance_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,supervision_level_id:tt("supervision_level_id").notNull(),content_guidance_area:ti("content_guidance_area"),content_guidance_code:ti("content_guidance_code"),content_guidance_description:ti("content_guidance_description"),content_guidance_label:ti("content_guidance_label"),deprecated_fields:ct("deprecated_fields"),...zs,...ys},e=>[c({name:"content_guid_super_level_fk",columns:[e.supervision_level_id],foreignColumns:[rr.supervision_level_id]})]),ar=Yn.table("key_stages",{key_stage_id:tt("key_stage_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),description:ti("description"),global_position:tt("global_position").notNull(),key_stage:ti("key_stage"),slug:ti("slug"),...zs,...ys}),lr=Yn.table("phases",{phase_id:tt("phase_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),description:ti("description"),global_position:tt("global_position").notNull(),phase:ti("phase"),slug:ti("slug"),...zs,...ys}),ur=Yn.table("subjects",{subject_id:tt("subject_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,subject_parent_id:tt("subject_parent_id"),deprecated_fields:ct("deprecated_fields"),description:ti("description"),global_position:tt("global_position").notNull(),non_curriculum:Pe("non_curriculum"),slug:ti("slug"),subject:ti("subject"),...zs,...ys},e=>[c({name:"subjects_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[e.subject_id]})]),cr=Yn.table("years",{year_id:tt("year_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,key_stage_id:tt("key_stage_id").notNull(),phase_id:tt("phase_id").notNull(),deprecated_fields:ct("deprecated_fields"),description:ti("description"),global_position:tt("global_position").notNull(),slug:ti("slug"),year:ti("year"),...zs,...ys},e=>[c({columns:[e.key_stage_id],foreignColumns:[ar.key_stage_id]}),c({columns:[e.phase_id],foreignColumns:[lr.phase_id]})]);Yn.table("content_guidance_scopes",{scope_id:tt("scope_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,content_guidance_id:tt("content_guidance_id").notNull(),key_stage_id:tt("key_stage_id"),phase_id:tt("phase_id"),subject_id:tt("subject_id"),subject_parent_id:tt("subject_parent_id"),year_id:tt("year_id"),...zs,...ys},e=>[c({name:"content_guid_scopes_content_guid_fk",columns:[e.content_guidance_id],foreignColumns:[or.content_guidance_id]}),c({name:"content_guid_scopes_subject_fk",columns:[e.subject_id],foreignColumns:[ur.subject_id]}),c({name:"content_guid_scopes_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[ur.subject_id]}),c({name:"content_guid_scopes_phase_fk",columns:[e.phase_id],foreignColumns:[lr.phase_id]}),c({name:"content_guid_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[ar.key_stage_id]}),c({columns:[e.year_id],foreignColumns:[cr.year_id]})]);const _r=Yn.table("exam_board_specs",{exam_board_spec_id:tt("exam_board_spec_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),description:ti("description"),title:ti("title").notNull(),...zs,...ys});Yn.table("exam_board_spec_scopes",{scope_id:tt("scope_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,exam_board_spec_id:tt("exam_board_spec_id").notNull(),key_stage_id:tt("key_stage_id"),phase_id:tt("phase_id"),subject_id:tt("subject_id"),subject_parent_id:tt("subject_parent_id"),year_id:tt("year_id"),...zs,...ys},e=>[c({name:"exam_spec_scopes_exam_spec_fk",columns:[e.exam_board_spec_id],foreignColumns:[_r.exam_board_spec_id]}),c({name:"exam_spec_scopes_subject_fk",columns:[e.subject_id],foreignColumns:[ur.subject_id]}),c({name:"exam_spec_scopes_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[ur.subject_id]}),c({name:"exam_spec_scopes_phase_fk",columns:[e.phase_id],foreignColumns:[lr.phase_id]}),c({name:"exam_spec_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[ar.key_stage_id]}),c({columns:[e.year_id],foreignColumns:[cr.year_id]})]),Yn.table("lesson_content_guidance",{lesson_id:tt("lesson_id").notNull(),content_guidance_id:tt("content_guidance_id").notNull(),...Fs,position:tt("position").notNull(),...zs,...ys},e=>[Qi({name:"lesson_content_guid_pk",columns:[e.lesson_id,e.content_guidance_id,e._state]}),c({name:"lesson_content_guid_lesson_fk",columns:[e.lesson_id,e._state],foreignColumns:[Vs.lesson_id,Vs._state]}),c({name:"lesson_content_guid_content_guid_fk",columns:[e.content_guidance_id],foreignColumns:[or.content_guidance_id]})]);const dr=Yn.table("tags",{tag_id:tt("tag_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),tag_category:_s("tag_category"),title:ti("title").notNull(),...zs,...ys});Yn.table("lesson_tags",{lesson_id:tt("lesson_id").notNull(),tag_id:tt("tag_id").notNull(),...Fs,position:tt("position").notNull(),...zs,...ys},e=>[Qi({columns:[e.lesson_id,e.tag_id,e._state]}),c({columns:[e.lesson_id,e._state],foreignColumns:[Vs.lesson_id,Vs._state]}),c({columns:[e.tag_id],foreignColumns:[dr.tag_id]})]);const mr=Yn.table("national_curriculum",{national_curriculum_id:tt("national_curriculum_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),description:ti("description"),title:ti("title").notNull(),...zs,...ys});Yn.table("national_curriculum_scopes",{scope_id:tt("scope_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,key_stage_id:tt("key_stage_id"),national_curriculum_id:tt("national_curriculum_id").notNull(),phase_id:tt("phase_id"),subject_id:tt("subject_id"),subject_parent_id:tt("subject_parent_id"),year_id:tt("year_id"),...zs,...ys},e=>[c({name:"nat_curric_scopes_nat_curric_fk",columns:[e.national_curriculum_id],foreignColumns:[mr.national_curriculum_id]}),c({name:"nat_curric_scopes_subject_fk",columns:[e.subject_id],foreignColumns:[ur.subject_id]}),c({name:"nat_curric_scopes_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[ur.subject_id]}),c({name:"nat_curric_scopes_phase_fk",columns:[e.phase_id],foreignColumns:[lr.phase_id]}),c({name:"nat_curric_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[ar.key_stage_id]}),c({name:"nat_curric_scopes_year_fk",columns:[e.year_id],foreignColumns:[cr.year_id]})]);const pr=Yn.table("subject_categories",{subject_category_id:tt("subject_category_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),description:ti("description"),slug:ti("slug"),title:ti("title").notNull(),...zs,...ys});Yn.table("subject_category_scopes",{scope_id:tt("scope_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,key_stage_id:tt("key_stage_id"),phase_id:tt("phase_id"),subject_category_id:tt("subject_category_id").notNull(),subject_id:tt("subject_id"),subject_parent_id:tt("subject_parent_id"),year_id:tt("year_id"),...zs,...ys},e=>[c({name:"subj_cat_scopes_subj_cat_fk",columns:[e.subject_category_id],foreignColumns:[pr.subject_category_id]}),c({name:"subj_cat_scopes_subject_fk",columns:[e.subject_id],foreignColumns:[ur.subject_id]}),c({name:"subj_cat_scopes_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[ur.subject_id]}),c({name:"subj_cat_scopes_phase_fk",columns:[e.phase_id],foreignColumns:[lr.phase_id]}),c({name:"subj_cat_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[ar.key_stage_id]}),c({columns:[e.year_id],foreignColumns:[cr.year_id]})]),Yn.table("tag_scopes",{scope_id:tt("scope_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,key_stage_id:tt("key_stage_id"),phase_id:tt("phase_id"),subject_id:tt("subject_id"),subject_parent_id:tt("subject_parent_id"),tag_id:tt("tag_id").notNull(),year_id:tt("year_id"),...zs,...ys},e=>[c({columns:[e.tag_id],foreignColumns:[dr.tag_id]}),c({columns:[e.subject_id],foreignColumns:[ur.subject_id]}),c({name:"tag_scopes_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[ur.subject_id]}),c({columns:[e.phase_id],foreignColumns:[lr.phase_id]}),c({name:"tag_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[ar.key_stage_id]}),c({columns:[e.year_id],foreignColumns:[cr.year_id]})]),Yn.table("unit_exam_board_specs",{unit_id:tt("unit_id").notNull(),exam_board_spec_id:tt("exam_board_spec_id").notNull(),...Fs,position:tt("position").notNull(),...zs,...ys},e=>[Qi({columns:[e.unit_id,e.exam_board_spec_id,e._state]}),c({columns:[e.unit_id,e._state],foreignColumns:[Gs.unit_id,Gs._state]}),c({name:"unit_exam_spec_exam_spec_fk",columns:[e.exam_board_spec_id],foreignColumns:[_r.exam_board_spec_id]})]),Yn.table("unit_national_curriculum",{unit_id:tt("unit_id").notNull(),national_curriculum_id:tt("national_curriculum_id").notNull(),...Fs,position:tt("position").notNull(),...zs,...ys},e=>[Qi({name:"unit_nat_curric_pk",columns:[e.unit_id,e.national_curriculum_id,e._state]}),c({name:"unit_nat_curric_unit_fk",columns:[e.unit_id,e._state],foreignColumns:[Gs.unit_id,Gs._state]}),c({name:"unit_nat_curric_nat_curric_fk",columns:[e.national_curriculum_id],foreignColumns:[mr.national_curriculum_id]})]),Yn.table("unit_subject_categories",{unit_id:tt("unit_id").notNull(),subject_category_id:tt("subject_category_id").notNull(),...Fs,position:tt("position").notNull(),...zs,...ys},e=>[Qi({columns:[e.unit_id,e.subject_category_id,e._state]}),c({columns:[e.unit_id,e._state],foreignColumns:[Gs.unit_id,Gs._state]}),c({name:"unit_subj_cat_subj_cat_fk",columns:[e.subject_category_id],foreignColumns:[pr.subject_category_id]})]);const gr=Yn.table("exam_boards",{exam_board_id:tt("exam_board_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),description:ti("description"),exam_board:ti("exam_board"),global_position:tt("global_position").notNull(),slug:ti("slug"),...zs,...ys}),fr=Yn.table("pathways",{pathway_id:tt("pathway_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),description:ti("description"),global_position:tt("global_position").notNull(),pathway:ti("pathway"),slug:ti("slug"),...zs,...ys}),hr=Yn.table("tiers",{tier_id:tt("tier_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),description:ti("description"),global_position:tt("global_position").notNull(),slug:ti("slug"),tier:ti("tier"),...zs,...ys}),yr=Yn.table("unit_variants",{unit_variant_id:tt("unit_variant_id").notNull().generatedByDefaultAsIdentity(),...Fs,exam_board_id:tt("exam_board_id"),pathway_id:tt("pathway_id"),subject_id:tt("subject_id"),tier_id:tt("tier_id"),unit_id:tt("unit_id").notNull(),deprecated_fields:ct("deprecated_fields"),description_override:ti("description_override"),optionality:ti("optionality"),planned_number_of_lessons_override:tt("planned_number_of_lessons_override"),prior_knowledge_requirements_override:ti("prior_knowledge_requirements_override").array(),title_override:ti("title_override"),unit_variant_uid:Ae("unit_variant_uid",{length:16}),why_this_why_now_override:ti("why_this_why_now_override"),...zs,...ys},e=>[Qi({columns:[e.unit_variant_id,e._state]}),c({name:"unit_variants_exam_board_fk",columns:[e.exam_board_id],foreignColumns:[gr.exam_board_id]}),c({columns:[e.pathway_id],foreignColumns:[fr.pathway_id]}),c({columns:[e.subject_id],foreignColumns:[ur.subject_id]}),c({columns:[e.tier_id],foreignColumns:[hr.tier_id]}),c({columns:[e.unit_id,e._state],foreignColumns:[Gs.unit_id,Gs._state]}),_("unit_variants_unit_scope_unique").on(e.unit_id,e.subject_id,e.tier_id,e.exam_board_id,e.pathway_id,e.optionality,e._state).nullsNotDistinct()]);Yn.table("unit_variant_exam_board_specs_override",{unit_variant_id:tt("unit_variant_id").notNull(),exam_board_spec_id:tt("exam_board_spec_id").notNull(),...Fs,position:tt("position").notNull(),...zs,_release_id:tt("_release_id"),...ys},e=>[Qi({name:"unit_variant_exam_board_specs_override_pk",columns:[e.unit_variant_id,e.exam_board_spec_id,e._state]}),c({name:"unit_var_exam_spec_ovr_release_fk",columns:[e._release_id],foreignColumns:[ws.release_id]}),c({name:"unit_var_exam_spec_ovr_unit_var_fk",columns:[e.unit_variant_id,e._state],foreignColumns:[yr.unit_variant_id,yr._state]}),c({name:"unit_var_exam_spec_ovr_exam_spec_fk",columns:[e.exam_board_spec_id],foreignColumns:[_r.exam_board_spec_id]})]),Yn.table("unit_variant_national_curriculum_override",{unit_variant_id:tt("unit_variant_id").notNull(),national_curriculum_id:tt("national_curriculum_id").notNull(),...Fs,position:tt("position").notNull(),...zs,_release_id:tt("_release_id"),...ys},e=>[Qi({name:"unit_variant_national_curriculum_override_pk",columns:[e.unit_variant_id,e.national_curriculum_id,e._state]}),c({name:"unit_var_nat_curric_ovr_release_fk",columns:[e._release_id],foreignColumns:[ws.release_id]}),c({name:"unit_var_nat_curric_ovr_unit_var_fk",columns:[e.unit_variant_id,e._state],foreignColumns:[yr.unit_variant_id,yr._state]}),c({name:"unit_var_nat_curric_ovr_nat_curric_fk",columns:[e.national_curriculum_id],foreignColumns:[mr.national_curriculum_id]})]),Yn.table("unit_variant_subject_categories_override",{unit_variant_id:tt("unit_variant_id").notNull(),subject_category_id:tt("subject_category_id").notNull(),...Fs,position:tt("position").notNull(),...zs,_release_id:tt("_release_id"),...ys},e=>[Qi({name:"unit_variant_subject_categories_override_pk",columns:[e.unit_variant_id,e.subject_category_id,e._state]}),c({name:"unit_var_subj_cat_ovr_release_fk",columns:[e._release_id],foreignColumns:[ws.release_id]}),c({name:"unit_var_subj_cat_ovr_unit_var_fk",columns:[e.unit_variant_id,e._state],foreignColumns:[yr.unit_variant_id,yr._state]}),c({name:"unit_var_subj_cat_ovr_subj_cat_fk",columns:[e.subject_category_id],foreignColumns:[pr.subject_category_id]})]);const br=Yn.table("actions",{action_id:tt("action_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,key:ti("key").notNull(),...zs,...ys},e=>[_("actions_key_unique").on(e.key)]),vr=Yn.table("overrides_and_exceptions",{overrides_and_exceptions_id:tt("overrides_and_exceptions_id").notNull().generatedByDefaultAsIdentity(),...Ns,description:ti("description"),temporary_fields:ct("temporary_fields"),used_by_queries:ct("used_by_queries").notNull().default([]),...zs,...ys},e=>[Qi({columns:[e.overrides_and_exceptions_id,e._state]})]);Yn.table("overrides_and_exceptions_actions",{overrides_and_exceptions_id:tt("overrides_and_exceptions_id").notNull(),action_id:tt("action_id").notNull(),...Ns,value:ct("value").notNull(),...zs,_release_id:tt("_release_id"),...ys},e=>[Qi({name:"ovr_exc_actions_pk",columns:[e.overrides_and_exceptions_id,e.action_id,e._state]}),c({name:"ovr_exc_actions_release_fk",columns:[e._release_id],foreignColumns:[ws.release_id]}),c({name:"ovr_exc_actions_ovr_exc_fk",columns:[e.overrides_and_exceptions_id,e._state],foreignColumns:[vr.overrides_and_exceptions_id,vr._state]}),c({name:"ovr_exc_actions_action_fk",columns:[e.action_id],foreignColumns:[br.action_id]})]),Yn.table("overrides_and_exceptions_feature_scopes",{overrides_and_exceptions_id:tt("overrides_and_exceptions_id").notNull(),condition_id:tt("condition_id").notNull(),feature_id:tt("feature_id").notNull(),...Ns,value:ti("value").notNull(),...zs,_release_id:tt("_release_id"),...ys},e=>[Qi({name:"ovr_exc_feature_scopes_pk",columns:[e.overrides_and_exceptions_id,e.condition_id,e.feature_id,e._state]}),c({name:"ovr_exc_feature_scopes_release_fk",columns:[e._release_id],foreignColumns:[ws.release_id]}),c({name:"ovr_exc_feature_scopes_ovr_exc_fk",columns:[e.overrides_and_exceptions_id,e._state],foreignColumns:[vr.overrides_and_exceptions_id,vr._state]}),c({name:"ovr_exc_feature_scopes_feature_fk",columns:[e.feature_id],foreignColumns:[sr.feature_id]})]),Yn.table("overrides_and_exceptions_programme_scopes",{scope_id:tt("scope_id").notNull().generatedByDefaultAsIdentity(),...Ns,key_stage_id:tt("key_stage_id"),overrides_and_exceptions_id:tt("overrides_and_exceptions_id").notNull(),pathway_id:tt("pathway_id"),phase_id:tt("phase_id"),subject_id:tt("subject_id"),tier_id:tt("tier_id"),legacy:Pe("legacy"),subject_slug:ti("subject_slug"),...zs,_release_id:tt("_release_id"),...ys},e=>[Qi({name:"ovr_exc_programme_scopes_pk",columns:[e.scope_id,e._state]}),c({name:"ovr_exc_programme_scopes_release_fk",columns:[e._release_id],foreignColumns:[ws.release_id]}),c({name:"ovr_exc_programme_scopes_ovr_exc_fk",columns:[e.overrides_and_exceptions_id,e._state],foreignColumns:[vr.overrides_and_exceptions_id,vr._state]}),c({name:"ovr_exc_programme_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[ar.key_stage_id]}),c({name:"ovr_exc_programme_scopes_pathway_fk",columns:[e.pathway_id],foreignColumns:[fr.pathway_id]}),c({name:"ovr_exc_programme_scopes_phase_fk",columns:[e.phase_id],foreignColumns:[lr.phase_id]}),c({name:"ovr_exc_programme_scopes_subject_fk",columns:[e.subject_id],foreignColumns:[ur.subject_id]}),c({name:"ovr_exc_programme_scopes_tier_fk",columns:[e.tier_id],foreignColumns:[hr.tier_id]})]),Yn.table("redirects",{entity_id:tt("entity_id").notNull(),entity_source:ps("entity_source").notNull(),...Fs,description:ti("description"),redirect_entity_id:tt("redirect_entity_id"),redirect_entity_source:ps("redirect_entity_source"),redirect_type:ms("redirect_type").notNull(),redirect_url:ti("redirect_url"),...zs,...ys},e=>[Qi({columns:[e.entity_id,e.entity_source,e._state]}),de("redirect_has_exactly_one_target",t.sql`(redirect_url IS NOT NULL)::int + (redirect_entity_id IS NOT NULL)::int = 1`),de("redirect_entity_ref_complete",t.sql`(redirect_entity_id IS NULL) = (redirect_entity_source IS NULL)`)]);const wr=Yn.table("choices",{choice_id:tt("choice_id").notNull().generatedByDefaultAsIdentity(),...Fs,unit_id:tt("unit_id").notNull(),...zs,...ys},e=>[Qi({columns:[e.choice_id,e._state]}),c({columns:[e.unit_id,e._state],foreignColumns:[Gs.unit_id,Gs._state]})]);Yn.table("choices_unit_variants",{unit_variant_id:tt("unit_variant_id").notNull(),choice_id:tt("choice_id").notNull(),...Bs,...xs,position:tt("position").notNull(),...zs,...ys},e=>[Qi({name:"choices_unit_var_pk",columns:[e.unit_variant_id,e.choice_id,e._unit_variant_state,e._choice_state]}),c({name:"choices_unit_var_unit_var_fk",columns:[e.unit_variant_id,e._unit_variant_state],foreignColumns:[yr.unit_variant_id,yr._state]}),c({name:"choices_unit_var_choice_fk",columns:[e.choice_id,e._choice_state],foreignColumns:[wr.choice_id,wr._state]}),Ls({name:"choices_unit_var_state_coherence",columnA:e._unit_variant_state,columnB:e._choice_state})]);const Nr=Yn.table("programmes",{programme_id:tt("programme_id").notNull().generatedByDefaultAsIdentity(),...Fs,exam_board_id:tt("exam_board_id"),pathway_id:tt("pathway_id"),subject_id:tt("subject_id").notNull(),tier_id:tt("tier_id"),year_id:tt("year_id").notNull(),deprecated_fields:ct("deprecated_fields"),legacy:Pe("legacy").notNull().default(!1),national_curriculum_content:Pe("national_curriculum_content").notNull().default(!1),programme_uid:Ae("programme_uid",{length:16}),...zs,...ys},e=>[Qi({columns:[e.programme_id,e._state]}),c({columns:[e.subject_id],foreignColumns:[ur.subject_id]}),c({columns:[e.year_id],foreignColumns:[cr.year_id]}),c({columns:[e.tier_id],foreignColumns:[hr.tier_id]}),c({name:"programmes_exam_board_fk",columns:[e.exam_board_id],foreignColumns:[gr.exam_board_id]}),c({columns:[e.pathway_id],foreignColumns:[fr.pathway_id]}),_("programmes_factor_scope_unique").on(e.subject_id,e.year_id,e.tier_id,e.exam_board_id,e.pathway_id,e.legacy,e._state).nullsNotDistinct()]);Yn.table("inclusions",{programme_id:tt("programme_id").notNull(),position:tt("position").notNull(),...Cs,...As,...Os,choice_id:tt("choice_id"),unit_variant_id:tt("unit_variant_id"),...zs,...ys},e=>[Qi({name:"inclusions_pk",columns:[e.programme_id,e.position,e._programme_state]}),de("inclusions_xor_variant_choice",t.sql`num_nonnulls(${e.unit_variant_id}, ${e.choice_id}) = 1`),de("inclusions_choice_state_matches",t.sql`(${e.choice_id} is null) = (${e._choice_state} is null)`),de("inclusions_unit_variant_state_matches",t.sql`(${e.unit_variant_id} is null) = (${e._unit_variant_state} is null)`),Fi("inclusions_choice_unique").on(e.choice_id,e._choice_state).where(t.sql`${e.choice_id} is not null`),Fi("inclusions_programme_unit_variant_unique").on(e.programme_id,e.unit_variant_id,e._programme_state,e._unit_variant_state).where(t.sql`${e.unit_variant_id} is not null`),c({name:"inclusions_programme_fk",columns:[e.programme_id,e._programme_state],foreignColumns:[Nr.programme_id,Nr._state]}),c({name:"inclusions_choice_fk",columns:[e.choice_id,e._choice_state],foreignColumns:[wr.choice_id,wr._state]}),c({name:"inclusions_unit_var_fk",columns:[e.unit_variant_id,e._unit_variant_state],foreignColumns:[yr.unit_variant_id,yr._state]}),Is({name:"inclusions_choice_state_coherence",columnA:e._programme_state,columnB:e._choice_state}),Is({name:"inclusions_unit_var_state_coherence",columnA:e._programme_state,columnB:e._unit_variant_state})]);const Sr=Yn.table("subject_phases",{subject_id:tt("subject_id").notNull(),phase_id:tt("phase_id").notNull(),...Fs,curriculum_intent:ti("curriculum_intent"),deprecated_fields:ct("deprecated_fields"),prior_knowledge_requirements:Pe("prior_knowledge_requirements").notNull().default(!1),related_units:Pe("related_units").notNull().default(!1),unit_description:Pe("unit_description").notNull().default(!1),...zs,...ys},e=>[Qi({columns:[e.subject_id,e.phase_id,e._state]}),c({columns:[e.subject_id],foreignColumns:[ur.subject_id]}),c({columns:[e.phase_id],foreignColumns:[lr.phase_id]})]),xr=Yn.table("threads",{thread_id:tt("thread_id").notNull().generatedByDefaultAsIdentity(),...Ns,deprecated_fields:ct("deprecated_fields"),description:ti("description"),slug:ti("slug"),thread_uid:Ae("thread_uid",{length:16}),title:ti("title"),...zs,...ys},e=>[Qi({columns:[e.thread_id,e._state]})]);Yn.table("subject_phase_threads",{subject_id:tt("subject_id").notNull(),phase_id:tt("phase_id").notNull(),thread_id:tt("thread_id").notNull(),...js,...Ts,deprecated_fields:ct("deprecated_fields"),position:tt("position").notNull(),...zs,...ys},e=>[Qi({name:"subject_phase_threads_pk",columns:[e.subject_id,e.phase_id,e.thread_id,e._subject_phase_state,e._thread_state]}),c({name:"subject_phase_threads_subject_phase_fk",columns:[e.subject_id,e.phase_id,e._subject_phase_state],foreignColumns:[Sr.subject_id,Sr.phase_id,Sr._state]}),c({name:"subject_phase_threads_thread_fk",columns:[e.thread_id,e._thread_state],foreignColumns:[xr.thread_id,xr._state]}),Ls({name:"subject_phase_threads_state_coherence",columnA:e._subject_phase_state,columnB:e._thread_state})]),Yn.table("unit_threads",{thread_id:tt("thread_id").notNull(),unit_id:tt("unit_id").notNull(),...Ts,...Ps,deprecated_fields:ct("deprecated_fields"),position:tt("position").notNull(),...zs,...ys},e=>[Qi({name:"unit_threads_pk",columns:[e.thread_id,e.unit_id,e._thread_state,e._unit_state]}),c({name:"unit_threads_thread_fk",columns:[e.thread_id,e._thread_state],foreignColumns:[xr.thread_id,xr._state]}),c({name:"unit_threads_unit_fk",columns:[e.unit_id,e._unit_state],foreignColumns:[Gs.unit_id,Gs._state]}),Ls({name:"unit_threads_state_coherence",columnA:e._thread_state,columnB:e._unit_state})]),Yn.table("unit_catalogue",{subject_id:tt("subject_id").notNull(),year_id:tt("year_id").notNull(),unit_id:tt("unit_id").notNull(),...Fs,...zs,...ys},e=>[Qi({columns:[e.subject_id,e.year_id,e.unit_id,e._state]}),c({columns:[e.unit_id,e._state],foreignColumns:[Gs.unit_id,Gs._state]}),c({columns:[e.subject_id],foreignColumns:[ur.subject_id]}),c({columns:[e.year_id],foreignColumns:[cr.year_id]})]),Yn.table("unit_lessons",{unit_id:tt("unit_id").notNull(),lesson_id:tt("lesson_id").notNull(),...Ps,...ks,position:tt("position").notNull(),...zs,...ys},e=>[Qi({name:"unit_lessons_pk",columns:[e.unit_id,e.lesson_id,e._unit_state,e._lesson_state]}),c({name:"unit_lessons_unit_fk",columns:[e.unit_id,e._unit_state],foreignColumns:[Gs.unit_id,Gs._state]}),c({name:"unit_lessons_lesson_fk",columns:[e.lesson_id,e._lesson_state],foreignColumns:[Vs.lesson_id,Vs._state]}),Ls({name:"unit_lessons_state_coherence",columnA:e._unit_state,columnB:e._lesson_state})]),Yn.table("unit_variant_lessons",{unit_variant_id:tt("unit_variant_id").notNull(),lesson_id:tt("lesson_id").notNull(),...Bs,...ks,deprecated_fields:ct("deprecated_fields"),position:tt("position").notNull(),...zs,...ys},e=>[Qi({name:"unit_var_lessons_pk",columns:[e.unit_variant_id,e.lesson_id,e._unit_variant_state,e._lesson_state]}),c({name:"unit_var_lessons_unit_var_fk",columns:[e.unit_variant_id,e._unit_variant_state],foreignColumns:[yr.unit_variant_id,yr._state]}),c({name:"unit_var_lessons_lesson_fk",columns:[e.lesson_id,e._lesson_state],foreignColumns:[Vs.lesson_id,Vs._state]}),Ls({name:"unit_var_lessons_state_coherence",columnA:e._unit_variant_state,columnB:e._lesson_state})]),Yn.table("unit_features",{unit_id:tt("unit_id").notNull(),feature_id:tt("feature_id").notNull(),...Fs,value:ti("value"),...zs,...ys},e=>[Qi({columns:[e.unit_id,e.feature_id,e._state]}),c({columns:[e.unit_id,e._state],foreignColumns:[Gs.unit_id,Gs._state]}),c({columns:[e.feature_id],foreignColumns:[sr.feature_id]})]);const kr=es.enum("lesson_component_operation_status_enum",["api_neutral","api_in_progress","api_failed","ingest_queued","ingest_in_progress","ingest_failed","ingest_completed"]),Cr=es.enum("lesson_component_status_retirement_enum",["superseded","draft_discarded","component_expired","component_removed","orphaned"]),qr=es.table("lesson_component_status",{lesson_component_status_id:di("lesson_component_status_id").primaryKey().defaultRandom(),lesson_component_id:tt("lesson_component_id").notNull(),lesson_component_type:hs("lesson_component_type").notNull(),active_media_id:tt("active_media_id"),active_media_type:fs("active_media_type"),last_error_location:ti("last_error_location"),last_error_message:ti("last_error_message"),last_error_timestamp:ui("last_error_timestamp"),last_ingest_id:di("last_ingest_id"),operation_status:kr("operation_status").notNull().default("api_neutral"),retired_at:ui("retired_at",{withTimezone:!0}),retired_reason:Cr("retired_reason"),...ys},e=>[de("lesson_comp_status_retired_both",t.sql`(${e.retired_at} is null) = (${e.retired_reason} is null)`),Fi("lesson_comp_status_live_unq").on(e.lesson_component_id,e.lesson_component_type).where(t.sql`${e.retired_at} is null`)]),$r=es.enum("lesson_status_enum",["api_neutral","ingest_queued","ingest_in_progress","ingest_complete","ingest_failed"]);es.table("lesson_status",{lesson_id:tt("lesson_id").primaryKey(),approved:Pe("approved").notNull().default(!1),last_approved:ui("last_approved"),last_error_location:ti("last_error_location"),last_error_message:ti("last_error_message"),last_error_timestamp:ui("last_error_timestamp"),status:$r("status").notNull().default("api_neutral"),...ys});const jr=es.enum("media_status_enum",["neutral","in_progress","failed"]),Tr=es.enum("media_status_retirement_enum",["superseded","media_retired","orphaned"]);es.table("media_status",{media_status_id:di("media_status_id").primaryKey().defaultRandom(),media_id:tt("media_id").notNull(),media_type:fs("media_type").notNull(),last_error_location:ti("last_error_location"),last_error_message:ti("last_error_message"),last_error_timestamp:ui("last_error_timestamp"),last_lesson_component_id:tt("last_lesson_component_id"),last_lesson_component_type:hs("last_lesson_component_type"),retired_at:ui("retired_at",{withTimezone:!0}),retired_reason:Tr("retired_reason"),status:jr("status").notNull().default("neutral"),...ys},e=>[de("media_status_retired_both",t.sql`(${e.retired_at} is null) = (${e.retired_reason} is null)`),Fi("media_status_live_unq").on(e.media_id,e.media_type).where(t.sql`${e.retired_at} is null`)]),es.table("mutations_log",{mutations_log_id:di("mutations_log_id").primaryKey().defaultRandom(),actor_role:ti("actor_role"),actor_type:ti("actor_type"),app_id:ti("app_id"),changes:ct("changes").notNull(),operation:gs("operation").notNull(),record_key:ct("record_key").notNull(),table_name:ti("table_name").notNull(),...bs},e=>[zi("idx_mutations_log_record_key").using("gin",e.record_key)]),es.table("release_snapshots",{release_snapshot_id:di("release_snapshot_id").primaryKey().defaultRandom(),_release_id:tt("_release_id"),source_created_at:ui("source_created_at"),source_id:tt("source_id"),source_row:ct("source_row"),source_schema:ti("source_schema").default(""),source_state:ts("source_state").notNull(),source_table:ti("source_table").default(""),source_uid:Ae("source_uid",{length:16}),source_updated_at:ui("source_updated_at")},e=>[c({columns:[e._release_id],foreignColumns:[ws.release_id]}),zi("release_snapshots_source_idx").on(e.source_schema,e.source_table,e.source_id),zi("release_snapshots_release_idx").on(e._release_id)]);const Pr=es.enum("contract_log_event_type_enum",["works_change","contract_change","works_added_to_contract"]);es.table("tpc_contract_log",{tpc_contract_log_id:tt("tpc_contract_log_id").primaryKey().generatedByDefaultAsIdentity(),tpc_contract_id:tt("tpc_contract_id").notNull(),changed_at:ui("changed_at",{withTimezone:!0}).notNull(),event_type:Pr("event_type").notNull(),payload:ct("payload")},e=>[c({name:"tpc_contract_log_tpc_contract_fk",columns:[e.tpc_contract_id],foreignColumns:[ir.tpc_contract_id]})]);const Br=es.enum("restrictions_type_enum",["Restrictions 1","Restrictions 2","Restrictions 3","Restrictions 4","Restrictions 5","Restrictions 6","Restrictions 7","Additional Restrictions"]),Dr=es.table("tpc_restriction_definitions",{tpc_restriction_definition_id:tt("tpc_restriction_definition_id").primaryKey().generatedByDefaultAsIdentity(),restriction_text:ti("restriction_text").notNull(),type:Br("type").notNull(),...ys},e=>[_("tpc_restriction_definitions_type_unique").on(e.type)]);es.table("tpc_restrictions",{tpc_contract_id:tt("tpc_contract_id").notNull(),tpc_restriction_definition_id:tt("tpc_restriction_definition_id").notNull(),...Fs,restriction_override:ti("restriction_override"),...ys},e=>[Qi({name:"tpc_restrictions_pk",columns:[e.tpc_contract_id,e.tpc_restriction_definition_id,e._state]}),c({name:"tpc_restrictions_tpc_contract_fk",columns:[e.tpc_contract_id],foreignColumns:[ir.tpc_contract_id]}),c({name:"tpc_restrictions_tpc_restriction_definition_fk",columns:[e.tpc_restriction_definition_id],foreignColumns:[Dr.tpc_restriction_definition_id]})]),Zn.view("unit_variant_exam_board_specs",{unit_variant_id:tt("unit_variant_id"),exam_board_spec_id:tt("exam_board_spec_id"),position:tt("position"),_state:ts("_state"),is_override:Pe("is_override")}).as(t.sql`
8
8
  SELECT ovr.unit_variant_id, ovr.exam_board_spec_id, ovr.position,
9
9
  ovr._state, true AS is_override
10
10
  FROM raw.unit_variant_exam_board_specs_override ovr
@@ -21,7 +21,7 @@
21
21
  WHERE ovr.unit_variant_id = uv.unit_variant_id
22
22
  AND ovr._state = uv._state
23
23
  )
24
- `),Zn.view("unit_variant_national_curriculum",{unit_variant_id:tt("unit_variant_id"),national_curriculum_id:tt("national_curriculum_id"),position:tt("position"),_state:ts("_state"),is_override:Te("is_override")}).as(t.sql`
24
+ `),Zn.view("unit_variant_national_curriculum",{unit_variant_id:tt("unit_variant_id"),national_curriculum_id:tt("national_curriculum_id"),position:tt("position"),_state:ts("_state"),is_override:Pe("is_override")}).as(t.sql`
25
25
  SELECT ovr.unit_variant_id, ovr.national_curriculum_id, ovr.position,
26
26
  ovr._state, true AS is_override
27
27
  FROM raw.unit_variant_national_curriculum_override ovr
@@ -38,7 +38,7 @@
38
38
  WHERE ovr.unit_variant_id = uv.unit_variant_id
39
39
  AND ovr._state = uv._state
40
40
  )
41
- `),Zn.view("unit_variant_subject_categories",{unit_variant_id:tt("unit_variant_id"),subject_category_id:tt("subject_category_id"),position:tt("position"),_state:ts("_state"),is_override:Te("is_override")}).as(t.sql`
41
+ `),Zn.view("unit_variant_subject_categories",{unit_variant_id:tt("unit_variant_id"),subject_category_id:tt("subject_category_id"),position:tt("position"),_state:ts("_state"),is_override:Pe("is_override")}).as(t.sql`
42
42
  SELECT ovr.unit_variant_id, ovr.subject_category_id, ovr.position,
43
43
  ovr._state, true AS is_override
44
44
  FROM raw.unit_variant_subject_categories_override ovr
@@ -55,5 +55,5 @@
55
55
  WHERE ovr.unit_variant_id = uv.unit_variant_id
56
56
  AND ovr._state = uv._state
57
57
  )
58
- `);const Br=e.createSelectSchema(Us),Dr=e.createInsertSchema(Us),Ar=e.createSelectSchema(Es),Or=e.createInsertSchema(Es),Lr=Ar.extend({_state:i.z.literal("published")}),Ir=e.createSelectSchema(Cr),zr=e.createInsertSchema(Cr);exports.documentInsertSchema=Dr,exports.documentSelectSchema=Br,exports.lessonComponentStatusInsertSchema=zr,exports.lessonComponentStatusSelectSchema=Ir,exports.lessonInsertSchema=Or,exports.lessonPublishedSchema=Lr,exports.lessonSelectSchema=Ar;
58
+ `);const Ar=e.createSelectSchema(Ks),Or=e.createInsertSchema(Ks),Lr=e.createSelectSchema(Vs),Ir=e.createInsertSchema(Vs),zr=Lr.extend({_state:i.z.literal("published")}),Fr=e.createSelectSchema(qr),Qr=e.createInsertSchema(qr);exports.documentInsertSchema=Or,exports.documentSelectSchema=Ar,exports.lessonComponentStatusInsertSchema=Qr,exports.lessonComponentStatusSelectSchema=Fr,exports.lessonInsertSchema=Ir,exports.lessonPublishedSchema=zr,exports.lessonSelectSchema=Lr;
59
59
  //# sourceMappingURL=index.cjs.map