@oaknational/oak-curriculum-schema-v2 0.0.1
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/README.md +38 -0
- package/cjs/index.cjs +59 -0
- package/cjs/index.cjs.map +1 -0
- package/esm/index.js +59 -0
- package/esm/index.js.map +1 -0
- package/package.json +23 -0
- package/src/index.ts +1 -0
- package/src/schema/lesson.ts +14 -0
- package/types.d.ts +649 -0
package/esm/index.js
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import{createSelectSchema as e,createInsertSchema as t}from"drizzle-zod";import{sql as i}from"drizzle-orm";import{z as n}from"zod";const s=Symbol.for("drizzle:entityKind");function r(e,t){if(!e||"object"!=typeof e)return!1;if(e instanceof t)return!0;if(!Object.prototype.hasOwnProperty.call(t,s))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(s in i&&i[s]===t[s])return!0;i=Object.getPrototypeOf(i)}return!1}class o{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[s]="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 a{static[s]="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 l=Symbol.for("drizzle:Name");class u{static[s]="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 c(e,this)}}class c{constructor(e,t){this.table=e,this.reference=t.reference,this.onUpdate=t._onUpdate,this.onDelete=t._onDelete}static[s]="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[l],...n,i[0].table[l],...s];return e??`${r.join("_")}_fk`}}function _(e){return new u(function(){const{name:t,columns:i,foreignColumns:n}=e;return{name:t,columns:i,foreignColumns:n}})}function d(e){return new g(e)}function m(e,t){return`${e[l]}_${t.join("_")}_unique`}class p{constructor(e,t){this.name=t,this.columns=e}static[s]="PgUniqueConstraintBuilder";columns;nullsNotDistinctConfig=!1;nullsNotDistinct(){return this.nullsNotDistinctConfig=!0,this}build(e){return new f(e,this.columns,this.nullsNotDistinctConfig,this.name)}}class g{static[s]="PgUniqueOnConstraintBuilder";name;constructor(e){this.name=e}on(...e){return new p(e,this.name)}}class f{constructor(e,t,i,n){this.table=e,this.columns=t,this.name=n??m(this.table,this.columns.map(e=>e.name)),this.nullsNotDistinct=i}static[s]="PgUniqueConstraint";columns;name;nullsNotDistinct=!1;getName(){return this.name}}function h(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 y(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]=h(e,n+1,!0);i.push(t),n=s;continue}if("}"===r)return[i,n+1];if("{"===r){const[t,s]=y(e,n+1);i.push(t),n=s;continue}const[o,a]=h(e,n,!1);i.push(o),n=a}return[i,n]}function b(e){const[t]=y(e,1);return t}function v(e){return`{${e.map(e=>Array.isArray(e)?v(e):"string"==typeof e?`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`:`${e}`).join(",")}}`}class w extends a{foreignKeyConfigs=[];static[s]="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 u(()=>{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 S(e,this.config)}}class N extends o{constructor(e,t){t.uniqueName||(t.uniqueName=m(e,[t.name])),super(e,t),this.table=e}static[s]="PgColumn"}class S extends N{static[s]="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 x{static[s]="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 w{static[s]="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 C(e,this.config,t)}}class C extends N{constructor(e,t,i,n){super(e,t),this.baseColumn=i,this.range=n,this.size=t.size}size;static[s]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${"number"==typeof this.size?this.size:""}]`}mapFromDriverValue(e){return"string"==typeof e&&(e=b(e)),e.map(e=>this.baseColumn.mapFromDriverValue(e))}mapToDriverValue(e,t=!1){const i=e.map(e=>null===e?null:r(this.baseColumn,C)?this.baseColumn.mapToDriverValue(e,!0):this.baseColumn.mapToDriverValue(e));return t?i:v(i)}}class P extends w{static[s]="PgEnumObjectColumnBuilder";constructor(e,t){super(e,"string","PgEnumObjectColumn"),this.config.enum=t}build(e){return new $(e,this.config)}}class $ extends N{static[s]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(e,t){super(e,t),this.enum=t.enum}getSQLType(){return this.enum.enumName}}const T=Symbol.for("drizzle:isPgEnum");class j extends w{static[s]="PgEnumColumnBuilder";constructor(e,t){super(e,"string","PgEnumColumn"),this.config.enum=t}build(e){return new q(e,this.config)}}class q extends N{static[s]="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 B{static[s]="Subquery";constructor(e,t,i,n=!1,s=[]){this._={brand:"Subquery",sql:e,selectedFields:t,alias:i,isWith:n,usedTables:s}}}class D extends B{static[s]="WithSubquery"}const A={startActiveSpan:(e,t)=>t()},O=Symbol.for("drizzle:ViewBaseConfig"),L=Symbol.for("drizzle:Schema"),I=Symbol.for("drizzle:Columns"),z=Symbol.for("drizzle:ExtraConfigColumns"),F=Symbol.for("drizzle:OriginalName"),Q=Symbol.for("drizzle:BaseName"),V=Symbol.for("drizzle:IsAlias"),E=Symbol.for("drizzle:ExtraConfigBuilder"),U=Symbol.for("drizzle:IsDrizzleTable");class M{static[s]="Table";static Symbol={Name:l,Schema:L,OriginalName:F,Columns:I,ExtraConfigColumns:z,BaseName:Q,IsAlias:V,ExtraConfigBuilder:E};[l];[F];[L];[I];[z];[Q];[V]=!1;[U]=!0;[E]=void 0;constructor(e,t,i){this[l]=this[F]=e,this[L]=t,this[Q]=i}}function J(e){return e[l]}function R(e){return`${e[L]??"public"}.${e[l]}`}function K(e){return null!=e&&"function"==typeof e.getSQL}class W{static[s]="StringChunk";value;constructor(e){this.value=Array.isArray(e)?e:[e]}getSQL(){return new H([this])}}class H{constructor(e){this.queryChunks=e;for(const t of e)if(r(t,M)){const e=t[M.Symbol.Schema];this.usedTables.push(void 0===e?t[M.Symbol.Name]:e+"."+t[M.Symbol.Name])}}static[s]="SQL";decoder=X;shouldInlineParams=!1;usedTables=[];append(e){return this.queryChunks.push(...e.queryChunks),this}toQuery(e){return A.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:s,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(r(e,W))return{sql:e.value.join(""),params:[]};if(r(e,G))return{sql:s(e.value),params:[]};if(void 0===e)return{sql:"",params:[]};if(Array.isArray(e)){const t=[new W("(")];for(const[i,n]of e.entries())t.push(n),i<e.length-1&&t.push(new W(", "));return t.push(new W(")")),this.buildQueryFromSourceParams(t,i)}if(r(e,H))return this.buildQueryFromSourceParams(e.queryChunks,{...i,inlineParams:u||e.shouldInlineParams});if(r(e,M)){const t=e[M.Symbol.Schema],i=e[M.Symbol.Name];return{sql:void 0===t||e[V]?s(i):s(t)+"."+s(i),params:[]}}if(r(e,o)){const i=n.getColumnCasing(e);if("indexes"===t.invokeSource)return{sql:s(i),params:[]};const r=e.table[M.Symbol.Schema];return{sql:e.table[V]||void 0===r?s(e.table[M.Symbol.Name])+"."+s(i):s(r)+"."+s(e.table[M.Symbol.Name])+"."+s(i),params:[]}}if(r(e,se)){const t=e[O].schema,i=e[O].name;return{sql:void 0===t||e[O].isAlias?s(i):s(t)+"."+s(i),params:[]}}if(r(e,Z)){if(r(e.value,ie))return{sql:a(c.value++,e),params:[e],typings:["none"]};const t=null===e.value?null:e.encoder.mapToDriverValue(e.value);if(r(t,H))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 r(e,ie)?{sql:a(c.value++,e),params:[e],typings:["none"]}:r(e,H.Aliased)&&void 0!==e.fieldAlias?{sql:s(e.fieldAlias),params:[]}:r(e,B)?e._.isWith?{sql:s(e._.alias),params:[]}:this.buildQueryFromSourceParams([new W("("),e._.sql,new W(") "),new G(e._.alias)],i):(_=e)&&"function"==typeof _&&T in _&&!0===_[T]?e.schema?{sql:s(e.schema)+"."+s(e.enumName),params:[]}:{sql:s(e.enumName),params:[]}:K(e)?e.shouldOmitSQLParens?.()?this.buildQueryFromSourceParams([e.getSQL()],i):this.buildQueryFromSourceParams([new W("("),e.getSQL(),new W(")")],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 H.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 G{constructor(e){this.value=e}static[s]="Name";brand;getSQL(){return new H([this])}}const X={mapFromDriverValue:e=>e},Y={mapToDriverValue:e=>e};class Z{constructor(e,t=Y){this.value=e,this.encoder=t}static[s]="Param";brand;getSQL(){return new H([this])}}function ee(e,...t){const i=[];(t.length>0||e.length>0&&""!==e[0])&&i.push(new W(e[0]));for(const[n,s]of t.entries())i.push(s,new W(e[n+1]));return new H(i)}var te;(te=ee||(ee={})).empty=function(){return new H([])},te.fromList=function(e){return new H(e)},te.raw=function(e){return new H([new W(e)])},te.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 H(i)},te.identifier=function(e){return new G(e)},te.placeholder=function(e){return new ie(e)},te.param=function(e,t){return new Z(e,t)},(e=>{class t{constructor(e,t){this.sql=e,this.fieldAlias=t}static[s]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new t(this.sql,this.fieldAlias)}}e.Aliased=t})(H||(H={}));class ie{constructor(e){this.name=e}static[s]="Placeholder";getSQL(){return new H([this])}}const ne=Symbol.for("drizzle:IsDrizzleView");class se{static[s]="View";[O];[ne]=!0;constructor({name:e,schema:t,selectedFields:i,query:n}){this[O]={name:e,originalName:e,schema:t,selectedFields:i,query:n,isExisting:!n,isAlias:!1}}getSQL(){return new H([this])}}o.prototype.getSQL=function(){return new H([this])},M.prototype.getSQL=function(){return new H([this])},B.prototype.getSQL=function(){return new H([this])};class re{constructor(e){this.table=e}static[s]="ColumnAliasProxyHandler";get(e,t){return"table"===t?this.table:e[t]}}class oe{constructor(e,t){this.alias=e,this.replaceOriginalName=t}static[s]="TableAliasProxyHandler";get(e,t){if(t===M.Symbol.IsAlias)return!0;if(t===M.Symbol.Name)return this.alias;if(this.replaceOriginalName&&t===M.Symbol.OriginalName)return this.alias;if(t===O)return{...e[O],name:this.alias,isAlias:!0};if(t===M.Symbol.Columns){const t=e[M.Symbol.Columns];if(!t)return t;const i={};return Object.keys(t).map(n=>{i[n]=new Proxy(t[n],new re(new Proxy(e,this)))}),i}const i=e[t];return r(i,o)?new Proxy(i,new re(new Proxy(e,this))):i}}function ae(e,t){return new Proxy(e,new oe(t,!1))}function le(e,t){return new Proxy(e,new re(new Proxy(e.table,new oe(t,!1))))}function ue(e,t){return new H.Aliased(ce(e.sql,t),e.fieldAlias)}function ce(e,t){return ee.join(e.queryChunks.map(e=>r(e,o)?le(e,t):r(e,H)?ce(e,t):r(e,H.Aliased)?ue(e,t):e))}class _e{constructor(e,t){this.name=e,this.value=t}static[s]="PgCheckBuilder";brand;build(e){return new de(e,this)}}class de{constructor(e,t){this.table=e,this.name=t.name,this.value=t.value}static[s]="PgCheck";name;value}function me(e,t){return new _e(e,t)}function pe(e,t){return Object.entries(e).reduce((e,[i,n])=>{if("string"!=typeof i)return e;const s=t?[...t,i]:[i];return r(n,o)||r(n,H)||r(n,H.Aliased)||r(n,B)?e.push({path:s,field:n}):r(n,M)?e.push(...pe(n[M.Symbol.Columns],s)):e.push(...pe(n,s)),e},[])}function ge(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 fe(e){return e[M.Symbol.Columns]}function he(e){return r(e,B)?e._.alias:r(e,se)?e[O].name:r(e,H)?void 0:e[M.Symbol.IsAlias]?e[M.Symbol.Name]:e[M.Symbol.BaseName]}function ye(e,t){return{name:"string"==typeof e&&e.length>0?e:"",config:"object"==typeof e?e:t}}"undefined"!=typeof TextDecoder&&new TextDecoder;class be extends w{static[s]="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 ve extends be{static[s]="PgBigInt53Builder";constructor(e){super(e,"number","PgBigInt53")}build(e){return new we(e,this.config)}}class we extends N{static[s]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(e){return"number"==typeof e?e:Number(e)}}class Ne extends be{static[s]="PgBigInt64Builder";constructor(e){super(e,"bigint","PgBigInt64")}build(e){return new Se(e,this.config)}}class Se extends N{static[s]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(e){return BigInt(e)}}function xe(e,t){const{name:i,config:n}=ye(e,t);return"number"===n.mode?new ve(i):new Ne(i)}class ke extends w{static[s]="PgBigSerial53Builder";constructor(e){super(e,"number","PgBigSerial53"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new Ce(e,this.config)}}class Ce extends N{static[s]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(e){return"number"==typeof e?e:Number(e)}}class Pe extends w{static[s]="PgBigSerial64Builder";constructor(e){super(e,"bigint","PgBigSerial64"),this.config.hasDefault=!0}build(e){return new $e(e,this.config)}}class $e extends N{static[s]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(e){return BigInt(e)}}function Te(e,t){const{name:i,config:n}=ye(e,t);return"number"===n.mode?new ke(i):new Pe(i)}class je extends w{static[s]="PgBooleanBuilder";constructor(e){super(e,"boolean","PgBoolean")}build(e){return new qe(e,this.config)}}class qe extends N{static[s]="PgBoolean";getSQLType(){return"boolean"}}function Be(e){return new je(e??"")}class De extends w{static[s]="PgCharBuilder";constructor(e,t){super(e,"string","PgChar"),this.config.length=t.length,this.config.enumValues=t.enum}build(e){return new Ae(e,this.config)}}class Ae extends N{static[s]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return void 0===this.length?"char":`char(${this.length})`}}function Oe(e,t={}){const{name:i,config:n}=ye(e,t);return new De(i,n)}class Le extends w{static[s]="PgCidrBuilder";constructor(e){super(e,"string","PgCidr")}build(e){return new Ie(e,this.config)}}class Ie extends N{static[s]="PgCidr";getSQLType(){return"cidr"}}function ze(e){return new Le(e??"")}class Fe extends w{static[s]="PgCustomColumnBuilder";constructor(e,t,i){super(e,"custom","PgCustomColumn"),this.config.fieldConfig=t,this.config.customTypeParams=i}build(e){return new Qe(e,this.config)}}class Qe extends N{static[s]="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 Ve(e){return(t,i)=>{const{name:n,config:s}=ye(t,i);return new Fe(n,s,e)}}class Ee extends w{static[s]="PgDateColumnBaseBuilder";defaultNow(){return this.default(ee`now()`)}}class Ue extends Ee{static[s]="PgDateBuilder";constructor(e){super(e,"date","PgDate")}build(e){return new Me(e,this.config)}}class Me extends N{static[s]="PgDate";getSQLType(){return"date"}mapFromDriverValue(e){return"string"==typeof e?new Date(e):e}mapToDriverValue(e){return e.toISOString()}}class Je extends Ee{static[s]="PgDateStringBuilder";constructor(e){super(e,"string","PgDateString")}build(e){return new Re(e,this.config)}}class Re extends N{static[s]="PgDateString";getSQLType(){return"date"}mapFromDriverValue(e){return"string"==typeof e?e:e.toISOString().slice(0,-14)}}function Ke(e,t){const{name:i,config:n}=ye(e,t);return"date"===n?.mode?new Ue(i):new Je(i)}class We extends w{static[s]="PgDoublePrecisionBuilder";constructor(e){super(e,"number","PgDoublePrecision")}build(e){return new He(e,this.config)}}class He extends N{static[s]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(e){return"string"==typeof e?Number.parseFloat(e):e}}function Ge(e){return new We(e??"")}class Xe extends w{static[s]="PgInetBuilder";constructor(e){super(e,"string","PgInet")}build(e){return new Ye(e,this.config)}}class Ye extends N{static[s]="PgInet";getSQLType(){return"inet"}}function Ze(e){return new Xe(e??"")}class et extends be{static[s]="PgIntegerBuilder";constructor(e){super(e,"number","PgInteger")}build(e){return new tt(e,this.config)}}class tt extends N{static[s]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(e){return"string"==typeof e?Number.parseInt(e):e}}function it(e){return new et(e??"")}class nt extends w{static[s]="PgIntervalBuilder";constructor(e,t){super(e,"string","PgInterval"),this.config.intervalConfig=t}build(e){return new st(e,this.config)}}class st extends N{static[s]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){return`interval${this.fields?` ${this.fields}`:""}${this.precision?`(${this.precision})`:""}`}}function rt(e,t={}){const{name:i,config:n}=ye(e,t);return new nt(i,n)}class ot extends w{static[s]="PgJsonBuilder";constructor(e){super(e,"json","PgJson")}build(e){return new at(e,this.config)}}class at extends N{static[s]="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 lt(e){return new ot(e??"")}class ut extends w{static[s]="PgJsonbBuilder";constructor(e){super(e,"json","PgJsonb")}build(e){return new ct(e,this.config)}}class ct extends N{static[s]="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 _t(e){return new ut(e??"")}class dt extends w{static[s]="PgLineBuilder";constructor(e){super(e,"array","PgLine")}build(e){return new mt(e,this.config)}}class mt extends N{static[s]="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 pt extends w{static[s]="PgLineABCBuilder";constructor(e){super(e,"json","PgLineABC")}build(e){return new gt(e,this.config)}}class gt extends N{static[s]="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 ft(e,t){const{name:i,config:n}=ye(e,t);return n?.mode&&"tuple"!==n.mode?new pt(i):new dt(i)}class ht extends w{static[s]="PgMacaddrBuilder";constructor(e){super(e,"string","PgMacaddr")}build(e){return new yt(e,this.config)}}class yt extends N{static[s]="PgMacaddr";getSQLType(){return"macaddr"}}function bt(e){return new ht(e??"")}class vt extends w{static[s]="PgMacaddr8Builder";constructor(e){super(e,"string","PgMacaddr8")}build(e){return new wt(e,this.config)}}class wt extends N{static[s]="PgMacaddr8";getSQLType(){return"macaddr8"}}function Nt(e){return new vt(e??"")}class St extends w{static[s]="PgNumericBuilder";constructor(e,t,i){super(e,"string","PgNumeric"),this.config.precision=t,this.config.scale=i}build(e){return new xt(e,this.config)}}class xt extends N{static[s]="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 w{static[s]="PgNumericNumberBuilder";constructor(e,t,i){super(e,"number","PgNumericNumber"),this.config.precision=t,this.config.scale=i}build(e){return new Ct(e,this.config)}}class Ct extends N{static[s]="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 Pt extends w{static[s]="PgNumericBigIntBuilder";constructor(e,t,i){super(e,"bigint","PgNumericBigInt"),this.config.precision=t,this.config.scale=i}build(e){return new $t(e,this.config)}}class $t extends N{static[s]="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 Tt(e,t){const{name:i,config:n}=ye(e,t),s=n?.mode;return"number"===s?new kt(i,n?.precision,n?.scale):"bigint"===s?new Pt(i,n?.precision,n?.scale):new St(i,n?.precision,n?.scale)}class jt extends w{static[s]="PgPointTupleBuilder";constructor(e){super(e,"array","PgPointTuple")}build(e){return new qt(e,this.config)}}class qt extends N{static[s]="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 Bt extends w{static[s]="PgPointObjectBuilder";constructor(e){super(e,"json","PgPointObject")}build(e){return new Dt(e,this.config)}}class Dt extends N{static[s]="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 At(e,t){const{name:i,config:n}=ye(e,t);return n?.mode&&"tuple"!==n.mode?new Bt(i):new jt(i)}function Ot(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 Lt(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=Ot(t,i);i+=8;const n=Ot(t,i);return i+=8,[e,n]}throw new Error("Unsupported geometry type")}class It extends w{static[s]="PgGeometryBuilder";constructor(e){super(e,"array","PgGeometry")}build(e){return new zt(e,this.config)}}class zt extends N{static[s]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(e){return Lt(e)}mapToDriverValue(e){return`point(${e[0]} ${e[1]})`}}class Ft extends w{static[s]="PgGeometryObjectBuilder";constructor(e){super(e,"json","PgGeometryObject")}build(e){return new Qt(e,this.config)}}class Qt extends N{static[s]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(e){const t=Lt(e);return{x:t[0],y:t[1]}}mapToDriverValue(e){return`point(${e.x} ${e.y})`}}function Vt(e,t){const{name:i,config:n}=ye(e,t);return n?.mode&&"tuple"!==n.mode?new Ft(i):new It(i)}class Et extends w{static[s]="PgRealBuilder";constructor(e,t){super(e,"number","PgReal"),this.config.length=t}build(e){return new Ut(e,this.config)}}class Ut extends N{static[s]="PgReal";constructor(e,t){super(e,t)}getSQLType(){return"real"}mapFromDriverValue=e=>"string"==typeof e?Number.parseFloat(e):e}function Mt(e){return new Et(e??"")}class Jt extends w{static[s]="PgSerialBuilder";constructor(e){super(e,"number","PgSerial"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new Rt(e,this.config)}}class Rt extends N{static[s]="PgSerial";getSQLType(){return"serial"}}function Kt(e){return new Jt(e??"")}class Wt extends be{static[s]="PgSmallIntBuilder";constructor(e){super(e,"number","PgSmallInt")}build(e){return new Ht(e,this.config)}}class Ht extends N{static[s]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=e=>"string"==typeof e?Number(e):e}function Gt(e){return new Wt(e??"")}class Xt extends w{static[s]="PgSmallSerialBuilder";constructor(e){super(e,"number","PgSmallSerial"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new Yt(e,this.config)}}class Yt extends N{static[s]="PgSmallSerial";getSQLType(){return"smallserial"}}function Zt(e){return new Xt(e??"")}class ei extends w{static[s]="PgTextBuilder";constructor(e,t){super(e,"string","PgText"),this.config.enumValues=t.enum}build(e){return new ti(e,this.config)}}class ti extends N{static[s]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function ii(e,t={}){const{name:i,config:n}=ye(e,t);return new ei(i,n)}class ni extends Ee{constructor(e,t,i){super(e,"string","PgTime"),this.withTimezone=t,this.precision=i,this.config.withTimezone=t,this.config.precision=i}static[s]="PgTimeBuilder";build(e){return new si(e,this.config)}}class si extends N{static[s]="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 ri(e,t={}){const{name:i,config:n}=ye(e,t);return new ni(i,n.withTimezone??!1,n.precision)}class oi extends Ee{static[s]="PgTimestampBuilder";constructor(e,t,i){super(e,"date","PgTimestamp"),this.config.withTimezone=t,this.config.precision=i}build(e){return new ai(e,this.config)}}class ai extends N{static[s]="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 li extends Ee{static[s]="PgTimestampStringBuilder";constructor(e,t,i){super(e,"string","PgTimestampString"),this.config.withTimezone=t,this.config.precision=i}build(e){return new ui(e,this.config)}}class ui extends N{static[s]="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 ci(e,t={}){const{name:i,config:n}=ye(e,t);return"string"===n?.mode?new li(i,n.withTimezone??!1,n.precision):new oi(i,n?.withTimezone??!1,n?.precision)}class _i extends w{static[s]="PgUUIDBuilder";constructor(e){super(e,"string","PgUUID")}defaultRandom(){return this.default(ee`gen_random_uuid()`)}build(e){return new di(e,this.config)}}class di extends N{static[s]="PgUUID";getSQLType(){return"uuid"}}function mi(e){return new _i(e??"")}class pi extends w{static[s]="PgVarcharBuilder";constructor(e,t){super(e,"string","PgVarchar"),this.config.length=t.length,this.config.enumValues=t.enum}build(e){return new gi(e,this.config)}}class gi extends N{static[s]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return void 0===this.length?"varchar":`varchar(${this.length})`}}function fi(e,t={}){const{name:i,config:n}=ye(e,t);return new pi(i,n)}class hi extends w{static[s]="PgBinaryVectorBuilder";constructor(e,t){super(e,"string","PgBinaryVector"),this.config.dimensions=t.dimensions}build(e){return new yi(e,this.config)}}class yi extends N{static[s]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function bi(e,t){const{name:i,config:n}=ye(e,t);return new hi(i,n)}class vi extends w{static[s]="PgHalfVectorBuilder";constructor(e,t){super(e,"array","PgHalfVector"),this.config.dimensions=t.dimensions}build(e){return new wi(e,this.config)}}class wi extends N{static[s]="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 Ni(e,t){const{name:i,config:n}=ye(e,t);return new vi(i,n)}class Si extends w{static[s]="PgSparseVectorBuilder";constructor(e,t){super(e,"string","PgSparseVector"),this.config.dimensions=t.dimensions}build(e){return new xi(e,this.config)}}class xi extends N{static[s]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function ki(e,t){const{name:i,config:n}=ye(e,t);return new Si(i,n)}class Ci extends w{static[s]="PgVectorBuilder";constructor(e,t){super(e,"array","PgVector"),this.config.dimensions=t.dimensions}build(e){return new Pi(e,this.config)}}class Pi extends N{static[s]="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 $i(e,t){const{name:i,config:n}=ye(e,t);return new Ci(i,n)}class Ti{static[s]="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[s]="SelectionProxyHandler";config;constructor(e){this.config={...e}}get(e,t){if("_"===t)return{...e._,selectedFields:new Proxy(e._.selectedFields,this)};if(t===O)return{...e[O],selectedFields:new Proxy(e[O].selectedFields,this)};if("symbol"==typeof t)return e[t];const i=(r(e,B)?e._.selectedFields:r(e,se)?e[O].selectedFields:e)[t];if(r(i,H.Aliased)){if("sql"===this.config.sqlAliasedBehavior&&!i.isSelectionField)return i.sql;const e=i.clone();return e.isSelectionField=!0,e}if(r(i,H)){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 r(i,o)?this.config.alias?new Proxy(i,new re(new Proxy(i.table,new oe(this.config.alias,this.config.replaceOriginalName??!1)))):i:"object"!=typeof i||null===i?i:new Proxy(i,new ji(this.config))}}const qi=Symbol.for("drizzle:PgInlineForeignKeys"),Bi=Symbol.for("drizzle:EnableRLS");class Di extends M{static[s]="PgTable";static Symbol=Object.assign({},M.Symbol,{InlineForeignKeys:qi,EnableRLS:Bi});[qi]=[];[Bi]=!1;[M.Symbol.ExtraConfigBuilder]=void 0;[M.Symbol.ExtraConfigColumns]={}}function Ai(e,t,i,n,s=e){const r=new Di(e,n,s),o="function"==typeof t?t({bigint:xe,bigserial:Te,boolean:Be,char:Oe,cidr:ze,customType:Ve,date:Ke,doublePrecision:Ge,inet:Ze,integer:it,interval:rt,json:lt,jsonb:_t,line:ft,macaddr:bt,macaddr8:Nt,numeric:Tt,point:At,geometry:Vt,real:Mt,serial:Kt,smallint:Gt,smallserial:Zt,text:ii,time:ri,timestamp:ci,uuid:mi,varchar:fi,bit:bi,halfvec:Ni,sparsevec:ki,vector:$i}):t,a=Object.fromEntries(Object.entries(o).map(([e,t])=>{const i=t;i.setName(e);const n=i.build(r);return r[qi].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[M.Symbol.Columns]=a,u[M.Symbol.ExtraConfigColumns]=l,i&&(u[Di.Symbol.ExtraConfigBuilder]=i),Object.assign(u,{enableRLS:()=>(u[Di.Symbol.EnableRLS]=!0,u)})}const Oi=(e,t,i)=>Ai(e,t,i,void 0);class Li{constructor(e,t){this.unique=e,this.name=t}static[s]="PgIndexBuilderOn";on(...e){return new Ii(e.map(e=>{if(r(e,H))return e;const t=new x(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 Ii(e.map(e=>{if(r(e,H))return e;const t=new x(e.name,!!e.keyAsName,e.columnType,e.indexConfig);return e.indexConfig=e.defaultConfig,t}),this.unique,!0,this.name)}using(e,...t){return new Ii(t.map(e=>{if(r(e,H))return e;const t=new x(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 Ii{static[s]="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 zi(this.config,e)}}class zi{static[s]="PgIndex";config;constructor(e,t){this.config={...e,table:t}}}function Fi(e){return new Li(!1,e)}function Qi(e){return new Li(!0,e)}function Vi(...e){return e[0].columns?new Ei(e[0].columns,e[0].name):new Ei(e)}class Ei{static[s]="PgPrimaryKeyBuilder";columns;name;constructor(e,t){this.columns=e,this.name=t}build(e){return new Ui(e,this.columns,this.name)}}class Ui{constructor(e,t,i){this.table=e,this.columns=t,this.name=i}static[s]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[Di.Symbol.Name]}_${this.columns.map(e=>e.name).join("_")}_pk`}}const Mi=Symbol.for("drizzle:PgViewConfig");function Ji(e){return(e.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map(e=>e.toLowerCase()).join("_")}function Ri(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 Ki(e){return e}class Wi{static[s]="CasingCache";cache={};cachedTables={};convert;constructor(e){this.convert="snake_case"===e?Ji:"camelCase"===e?Ri:Ki}getColumnCasing(e){if(!e.keyAsName)return e.name;const t=`${e.table[M.Symbol.Schema]??"public"}.${e.table[M.Symbol.OriginalName]}.${e.name}`;return this.cache[t]||this.cacheTable(e.table),this.cache[t]}cacheTable(e){const t=`${e[M.Symbol.Schema]??"public"}.${e[M.Symbol.OriginalName]}`;if(!this.cachedTables[t]){for(const i of Object.values(e[M.Symbol.Columns])){const e=`${t}.${i.name}`;this.cache[e]=this.convert(i.name)}this.cachedTables[t]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class Hi extends Error{static[s]="DrizzleError";constructor({message:e,cause:t}){super(e),this.name="DrizzleError",this.cause=t}}function Gi(e,t){return!function(e){return"object"==typeof e&&null!==e&&"mapToDriverValue"in e&&"function"==typeof e.mapToDriverValue}(t)||K(e)||r(e,Z)||r(e,ie)||r(e,o)||r(e,M)||r(e,se)?e:new Z(e,t)}const Xi=(e,t)=>ee`${e} = ${Gi(t,e)}`,Yi=(e,t)=>ee`${e} <> ${Gi(t,e)}`;function Zi(...e){const t=e.filter(e=>void 0!==e);if(0!==t.length)return 1===t.length?new H(t):new H([new W("("),ee.join(t,new W(" and ")),new W(")")])}function en(...e){const t=e.filter(e=>void 0!==e);if(0!==t.length)return 1===t.length?new H(t):new H([new W("("),ee.join(t,new W(" or ")),new W(")")])}function tn(e){return ee`not ${e}`}const nn=(e,t)=>ee`${e} > ${Gi(t,e)}`,sn=(e,t)=>ee`${e} >= ${Gi(t,e)}`,rn=(e,t)=>ee`${e} < ${Gi(t,e)}`,on=(e,t)=>ee`${e} <= ${Gi(t,e)}`;function an(e,t){return Array.isArray(t)?0===t.length?ee`false`:ee`${e} in ${t.map(t=>Gi(t,e))}`:ee`${e} in ${Gi(t,e)}`}function ln(e,t){return Array.isArray(t)?0===t.length?ee`true`:ee`${e} not in ${t.map(t=>Gi(t,e))}`:ee`${e} not in ${Gi(t,e)}`}function un(e){return ee`${e} is null`}function cn(e){return ee`${e} is not null`}function _n(e){return ee`exists ${e}`}function dn(e){return ee`not exists ${e}`}function mn(e,t,i){return ee`${e} between ${Gi(t,e)} and ${Gi(i,e)}`}function pn(e,t,i){return ee`${e} not between ${Gi(t,e)} and ${Gi(i,e)}`}function gn(e,t){return ee`${e} like ${t}`}function fn(e,t){return ee`${e} not like ${t}`}function hn(e,t){return ee`${e} ilike ${t}`}function yn(e,t){return ee`${e} not ilike ${t}`}function bn(e){return ee`${e} asc`}function vn(e){return ee`${e} desc`}class wn{constructor(e,t,i){this.sourceTable=e,this.referencedTable=t,this.relationName=i,this.referencedTableName=t[M.Symbol.Name]}static[s]="Relation";referencedTableName;fieldName}class Nn extends wn{constructor(e,t,i,n){super(e,t,i?.relationName),this.config=i,this.isNullable=n}static[s]="One";withFieldName(e){const t=new Nn(this.sourceTable,this.referencedTable,this.config,this.isNullable);return t.fieldName=e,t}}class Sn extends wn{constructor(e,t,i){super(e,t,i?.relationName),this.config=i}static[s]="Many";withFieldName(e){const t=new Sn(this.sourceTable,this.referencedTable,this.config);return t.fieldName=e,t}}function xn(e,t,i){if(r(i,Nn)&&i.config)return{fields:i.config.fields,references:i.config.references};const n=t[R(i.referencedTable)];if(!n)throw new Error(`Table "${i.referencedTable[M.Symbol.Name]}" not found in schema`);const s=e[n];if(!s)throw new Error(`Table "${n}" not found in schema`);const o=i.sourceTable,a=t[R(o)];if(!a)throw new Error(`Table "${o[M.Symbol.Name]}" not found in schema`);const l=[];for(const e of Object.values(s.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[M.Symbol.Name]}". Please specify relation name`);if(l[0]&&r(l[0],Nn)&&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 se{static[s]="PgViewBase"}class Cn{static[s]="PgDialect";casing;constructor(e){this.casing=new Wi(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=ee`
|
|
2
|
+
CREATE TABLE IF NOT EXISTS ${ee.identifier(s)}.${ee.identifier(n)} (
|
|
3
|
+
id SERIAL PRIMARY KEY,
|
|
4
|
+
hash text NOT NULL,
|
|
5
|
+
created_at bigint
|
|
6
|
+
)
|
|
7
|
+
`;await t.execute(ee`CREATE SCHEMA IF NOT EXISTS ${ee.identifier(s)}`),await t.execute(r);const o=(await t.all(ee`select id, hash, created_at from ${ee.identifier(s)}.${ee.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(ee.raw(e));await t.execute(ee`insert into ${ee.identifier(s)}.${ee.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=[ee`with `];for(const[i,n]of e.entries())t.push(ee`${ee.identifier(n._.alias)} as (${n._.sql})`),i<e.length-1&&t.push(ee`, `);return t.push(ee` `),ee.join(t)}buildDeleteQuery({table:e,where:t,returning:i,withList:n}){return ee`${this.buildWithCTE(n)}delete from ${e}${t?ee` where ${t}`:void 0}${i?ee` returning ${this.buildSelection(i,{isSingleTable:!0})}`:void 0}`}buildUpdateSet(e,t){const i=e[M.Symbol.Columns],n=Object.keys(i).filter(e=>void 0!==t[e]||void 0!==i[e]?.onUpdateFn),s=n.length;return ee.join(n.flatMap((e,n)=>{const o=i[e],a=o.onUpdateFn?.(),l=t[e]??(r(a,H)?a:ee.param(a,o)),u=ee`${ee.identifier(this.casing.getColumnCasing(o))} = ${l}`;return n<s-1?[u,ee.raw(", ")]:[u]}))}buildUpdateQuery({table:e,set:t,where:i,returning:n,withList:s,from:r,joins:o}){const a=this.buildWithCTE(s),l=e[Di.Symbol.Name],u=e[Di.Symbol.Schema],c=e[Di.Symbol.OriginalName],_=l===c?void 0:l,d=ee`${u?ee`${ee.identifier(u)}.`:void 0}${ee.identifier(c)}${_&&ee` ${ee.identifier(_)}`}`,m=this.buildUpdateSet(e,t),p=r&&ee.join([ee.raw(" from "),this.buildFromTable(r)]);return ee`${a}update ${d} set ${m}${p}${this.buildJoins(o)}${i?ee` where ${i}`:void 0}${n?ee` returning ${this.buildSelection(n,{isSingleTable:!r})}`:void 0}`}buildSelection(e,{isSingleTable:t=!1}={}){const i=e.length,n=e.flatMap(({field:e},n)=>{const s=[];if(r(e,H.Aliased)&&e.isSelectionField)s.push(ee.identifier(e.fieldAlias));else if(r(e,H.Aliased)||r(e,H)){const i=r(e,H.Aliased)?e.sql:e;t?s.push(new H(i.queryChunks.map(e=>r(e,N)?ee.identifier(this.casing.getColumnCasing(e)):e))):s.push(i),r(e,H.Aliased)&&s.push(ee` as ${ee.identifier(e.fieldAlias)}`)}else if(r(e,o))t?s.push(ee.identifier(this.casing.getColumnCasing(e))):s.push(e);else if(r(e,B)){const t=Object.entries(e._.selectedFields);if(1===t.length){const i=t[0][1],n=r(i,H)?i.decoder:r(i,o)?{mapFromDriverValue:e=>i.mapFromDriverValue(e)}:i.sql.decoder;n&&(e._.sql.decoder=n)}s.push(e)}return n<i-1&&s.push(ee`, `),s});return ee.join(n)}buildJoins(e){if(!e||0===e.length)return;const t=[];for(const[i,n]of e.entries()){0===i&&t.push(ee` `);const s=n.table,o=n.lateral?ee` lateral`:void 0,a=n.on?ee` on ${n.on}`:void 0;if(r(s,Di)){const e=s[Di.Symbol.Name],i=s[Di.Symbol.Schema],r=s[Di.Symbol.OriginalName],l=e===r?void 0:n.alias;t.push(ee`${ee.raw(n.joinType)} join${o} ${i?ee`${ee.identifier(i)}.`:void 0}${ee.identifier(r)}${l&&ee` ${ee.identifier(l)}`}${a}`)}else if(r(s,se)){const e=s[O].name,i=s[O].schema,r=s[O].originalName,l=e===r?void 0:n.alias;t.push(ee`${ee.raw(n.joinType)} join${o} ${i?ee`${ee.identifier(i)}.`:void 0}${ee.identifier(r)}${l&&ee` ${ee.identifier(l)}`}${a}`)}else t.push(ee`${ee.raw(n.joinType)} join${o} ${s}${a}`);i<e.length-1&&t.push(ee` `)}return ee.join(t)}buildFromTable(e){if(r(e,M)&&e[M.Symbol.IsAlias]){let t=ee`${ee.identifier(e[M.Symbol.OriginalName])}`;return e[M.Symbol.Schema]&&(t=ee`${ee.identifier(e[M.Symbol.Schema])}.${t}`),ee`${t} ${ee.identifier(e[M.Symbol.Name])}`}return e}buildSelectQuery({withList:e,fields:t,fieldsFlat:i,where:n,having:s,table:a,joins:l,orderBy:u,groupBy:c,limit:_,offset:d,lockingClause:m,distinct:p,setOperators:g}){const f=i??pe(t);for(const e of f)if(r(e.field,o)&&J(e.field.table)!==(r(a,B)?a._.alias:r(a,kn)?a[O].name:r(a,H)?void 0:J(a))&&!(e=>l?.some(({alias:t})=>t===(e[M.Symbol.IsAlias]?J(e):e[M.Symbol.BaseName])))(e.field.table)){const t=J(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?ee` distinct`:ee` distinct on (${ee.join(p.on,ee`, `)})`);const v=this.buildSelection(f,{isSingleTable:h}),w=this.buildFromTable(a),N=this.buildJoins(l),S=n?ee` where ${n}`:void 0,x=s?ee` having ${s}`:void 0;let k,C;u&&u.length>0&&(k=ee` order by ${ee.join(u,ee`, `)}`),c&&c.length>0&&(C=ee` group by ${ee.join(c,ee`, `)}`);const P="object"==typeof _||"number"==typeof _&&_>=0?ee` limit ${_}`:void 0,$=d?ee` offset ${d}`:void 0,T=ee.empty();if(m){const e=ee` for ${ee.raw(m.strength)}`;m.config.of&&e.append(ee` of ${ee.join(Array.isArray(m.config.of)?m.config.of:[m.config.of],ee`, `)}`),m.config.noWait?e.append(ee` nowait`):m.config.skipLocked&&e.append(ee` skip locked`),T.append(e)}const j=ee`${y}select${b} ${v} from ${w}${N}${S}${C}${x}${k}${P}${$}${T}`;return g.length>0?this.buildSetOperations(j,g):j}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:s,orderBy:o,offset:a}}){const l=ee`(${e.getSQL()}) `,u=ee`(${n.getSQL()})`;let c;if(o&&o.length>0){const e=[];for(const t of o)if(r(t,N))e.push(ee.identifier(t.name));else if(r(t,H)){for(let e=0;e<t.queryChunks.length;e++){const i=t.queryChunks[e];r(i,N)&&(t.queryChunks[e]=ee.identifier(i.name))}e.push(ee`${t}`)}else e.push(ee`${t}`);c=ee` order by ${ee.join(e,ee`, `)} `}const _="object"==typeof s||"number"==typeof s&&s>=0?ee` limit ${s}`:void 0,d=ee.raw(`${t} ${i?"all ":""}`);return ee`${l}${d}${u}${c}${_}${a?ee` offset ${a}`:void 0}`}buildInsertQuery({table:e,values:t,onConflict:i,returning:n,withList:s,select:o,overridingSystemValue_:a}){const l=[],u=e[M.Symbol.Columns],c=Object.entries(u).filter(([e,t])=>!t.shouldDisableInsert()),_=c.map(([,e])=>ee.identifier(this.casing.getColumnCasing(e)));if(o){const e=t;r(e,H)?l.push(e):l.push(e.getSQL())}else{const e=t;l.push(ee.raw("values "));for(const[t,i]of e.entries()){const n=[];for(const[e,t]of c){const s=i[e];if(void 0===s||r(s,Z)&&void 0===s.value)if(void 0!==t.defaultFn){const e=t.defaultFn(),i=r(e,H)?e:ee.param(e,t);n.push(i)}else if(t.default||void 0===t.onUpdateFn)n.push(ee`default`);else{const e=t.onUpdateFn(),i=r(e,H)?e:ee.param(e,t);n.push(i)}else n.push(s)}l.push(n),t<e.length-1&&l.push(ee`, `)}}const d=this.buildWithCTE(s),m=ee.join(l);return ee`${d}insert into ${e} ${_} ${!0===a?ee`overriding system value `:void 0}${m}${i?ee` on conflict ${i}`:void 0}${n?ee` returning ${this.buildSelection(n,{isSingleTable:!0})}`:void 0}`}buildRefreshMaterializedViewQuery({view:e,concurrently:t,withNoData:i}){return ee`refresh materialized view${t?ee` concurrently`:void 0} ${e}${i?ee` with no data`:void 0}`}prepareTyping(e){return r(e,ct)||r(e,at)?"json":r(e,xt)?"decimal":r(e,si)?"time":r(e,ai)||r(e,ui)?"timestamp":r(e,Me)||r(e,Re)?"date":r(e,di)?"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:s,queryConfig:a,tableAlias:l,nestedQueryRelation:u,joinOn:c}){let _,d,m,p=[],g=[];const f=[];if(!0===a){p=Object.entries(s.columns).map(([e,t])=>({dbKey:t.name,tsKey:e,field:le(t,l),relationTableTsKey:void 0,isJson:!1,selection:[]}))}else{const n=Object.fromEntries(Object.entries(s.columns).map(([e,t])=>[e,le(t,l)]));if(a.where){const e="function"==typeof a.where?a.where(n,{and:Zi,between:mn,eq:Xi,exists:_n,gt:nn,gte:sn,ilike:hn,inArray:an,isNull:un,isNotNull:cn,like:gn,lt:rn,lte:on,ne:Yi,not:tn,notBetween:pn,notExists:dn,notLike:fn,notIlike:yn,notInArray:ln,or:en,sql:ee}):a.where;m=e&&ce(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 s.columns&&(e||!0!==i||(e=!0),c.push(t));c.length>0&&(c=e?c.filter(e=>!0===a.columns?.[e]):Object.keys(s.columns).filter(e=>!c.includes(e)))}else c=Object.keys(s.columns);for(const e of c){const t=s.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:s.relations[e]}))),a.extras){h="function"==typeof a.extras?a.extras(n,{sql:ee}):a.extras;for(const[e,t]of Object.entries(h))u.push({tsKey:e,value:ue(t,l)})}for(const{tsKey:e,value:t}of u)p.push({dbKey:r(t,H.Aliased)?t.fieldAlias:s.columns[e].name,tsKey:e,field:r(t,o)?le(t,l):t,relationTableTsKey:void 0,isJson:!1,selection:[]});let b="function"==typeof a.orderBy?a.orderBy(n,{sql:ee,asc:bn,desc:vn}):a.orderBy??[];Array.isArray(b)||(b=[b]),g=b.map(e=>r(e,o)?le(e,l):ce(e,l)),_=a.limit,d=a.offset;for(const{tsKey:n,queryConfig:s,relation:o}of y){const a=xn(t,i,o),u=i[R(o.referencedTable)],c=`${l}_${n}`,_=Zi(...a.fields.map((e,t)=>Xi(le(a.references[t],c),le(e,l)))),d=this.buildRelationalQueryWithoutPK({fullSchema:e,schema:t,tableNamesMap:i,table:e[u],tableConfig:t[u],queryConfig:r(o,Nn)?!0===s?{limit:1}:{...s,limit:1}:s,tableAlias:c,joinOn:_,nestedQueryRelation:o}),m=ee`${ee.identifier(c)}.${ee.identifier("data")}`.as(n);f.push({on:ee`true`,table:new B(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 Hi({message:`No fields selected for table "${s.tsName}" ("${l}")`});let h;if(m=Zi(c,m),u){let e=ee`json_build_array(${ee.join(p.map(({field:e,tsKey:t,isJson:i})=>i?ee`${ee.identifier(`${l}_${t}`)}.${ee.identifier("data")}`:r(e,H.Aliased)?e.sql:e),ee`, `)})`;r(u,Sn)&&(e=ee`coalesce(json_agg(${e}${g.length>0?ee` order by ${ee.join(g,ee`, `)}`:void 0}), '[]'::json)`);const t=[{dbKey:"data",tsKey:"data",field:e.as("data"),isJson:!0,relationTableTsKey:s.tsName,selection:p}];void 0!==_||void 0!==d||g.length>0?(h=this.buildSelectQuery({table:ae(n,l),fields:{},fieldsFlat:[{path:[],field:ee.raw("*")}],where:m,limit:_,offset:d,orderBy:g,setOperators:[]}),m=void 0,_=void 0,d=void 0,g=[]):h=ae(n,l),h=this.buildSelectQuery({table:r(h,Di)?h:new B(h,{},l),fields:{},fieldsFlat:t.map(({field:e})=>({path:[],field:r(e,o)?le(e,l):e})),joins:f,where:m,limit:_,offset:d,orderBy:g,setOperators:[]})}else h=this.buildSelectQuery({table:ae(n,l),fields:{},fieldsFlat:p.map(({field:e})=>({path:[],field:r(e,o)?le(e,l):e})),joins:f,where:m,limit:_,offset:d,orderBy:g,setOperators:[]});return{tableTsKey:s.tsName,sql:h,selection:p}}}class Pn{static[s]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class $n{static[s]="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:r(i,B)?Object.fromEntries(Object.keys(i._.selectedFields).map(e=>[e,i[e]])):r(i,kn)?i[O].selectedFields:r(i,H)?{}:fe(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 Tn extends Pn{static[s]="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=he(e),this.joinsNotNullableMap="string"==typeof this.tableName?{[this.tableName]:!0}:{};for(const t of Hn(e))this.usedTables.add(t)}getUsedTables(){return[...this.usedTables]}createJoin(e,t){return(i,n)=>{const s=this.tableName,o=he(i);for(const e of Hn(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 s&&(this.config.fields={[s]:this.config.fields}),"string"==typeof o&&!r(i,H))){const e=r(i,B)?i._.selectedFields:r(i,se)?i[O].selectedFields:i[M.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(Bn()):i;if(!ge(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(...Hn(this.config.table)),this.config.joins)for(const e of this.config.joins)t.push(...Hn(e.table));return new Proxy(new B(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 Tn{static[s]="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 A.startActiveSpan("drizzle.prepareQuery",()=>{const i=pe(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=>A.startActiveSpan("drizzle.operation",()=>this._prepare().execute(e,this.authToken))}function qn(e,t){return(i,n,...s)=>{const r=[n,...s].map(i=>({type:e,isAll:t,rightSelect:i}));for(const e of r)if(!ge(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,[Ti]);const Bn=()=>({union:Dn,unionAll:An,intersect:On,intersectAll:Ln,except:In,exceptAll:zn}),Dn=qn("union",!1),An=qn("union",!0),On=qn("intersect",!1),Ln=qn("intersect",!0),In=qn("except",!1),zn=qn("except",!0);class Fn{static[s]="PgQueryBuilder";dialect;dialectConfig;constructor(e){this.dialect=r(e,Cn)?e:void 0,this.dialectConfig=r(e,Cn)?void 0:e}$with=(e,t)=>{const i=this;return{as:n=>("function"==typeof n&&(n=n(i)),new Proxy(new D(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 $n({fields:i??void 0,session:void 0,dialect:t.getDialect(),withList:e})},selectDistinct:function(e){return new $n({fields:e??void 0,session:void 0,dialect:t.getDialect(),distinct:!0})},selectDistinctOn:function(e,i){return new $n({fields:i??void 0,session:void 0,dialect:t.getDialect(),distinct:{on:e}})}}}select(e){return new $n({fields:e??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(e){return new $n({fields:e??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(e,t){return new $n({fields:t??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:e}})}getDialect(){return this.dialect||(this.dialect=new Cn(this.dialectConfig)),this.dialect}}class Qn{constructor(e,t){this.name=e,this.schema=t}static[s]="PgDefaultViewBuilderCore";config={};with(e){return this.config.with=e,this}}class Vn extends Qn{static[s]="PgViewBuilder";as(e){"function"==typeof e&&(e=e(new Fn));const t=new ji({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}),i=new Proxy(e.getSelectedFields(),t);return new Proxy(new Rn({pgConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:i,query:e.getSQL().inlineParams()}}),t)}}class En extends Qn{static[s]="PgManualViewBuilder";columns;constructor(e,t,i){super(e,i),this.columns=fe(Oi(e,t))}existing(){return new Proxy(new Rn({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 Rn({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 Un{constructor(e,t){this.name=e,this.schema=t}static[s]="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 Mn extends Un{static[s]="PgMaterializedViewBuilder";as(e){"function"==typeof e&&(e=e(new Fn));const t=new ji({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}),i=new Proxy(e.getSelectedFields(),t);return new Proxy(new Wn({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 Jn extends Un{static[s]="PgManualMaterializedViewBuilder";columns;constructor(e,t,i){super(e,i),this.columns=fe(Oi(e,t))}existing(){return new Proxy(new Wn({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 Wn({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 Rn extends kn{static[s]="PgView";[Mi];constructor({pgConfig:e,config:t}){super(t),e&&(this[Mi]={with:e.with})}}const Kn=Symbol.for("drizzle:PgMaterializedViewConfig");class Wn extends kn{static[s]="PgMaterializedView";[Kn];constructor({pgConfig:e,config:t}){super(t),this[Kn]={with:e?.with,using:e?.using,tablespace:e?.tablespace,withNoData:e?.withNoData}}}function Hn(e){return r(e,Di)?[e[L]?`${e[L]}.${e[M.Symbol.BaseName]}`:e[M.Symbol.BaseName]]:r(e,B)?e._.usedTables??[]:r(e,H)?e.usedTables??[]:[]}class Gn{constructor(e,t,i){this.seqName=e,this.seqOptions=t,this.schema=i}static[s]="PgSequence"}class Xn{constructor(e){this.schemaName=e}static[s]="PgSchema";table=(e,t,i)=>Ai(e,t,i,this.schemaName);view=(e,t)=>function(e,t,i){return t?new En(e,t,i):new Vn(e,i)}(e,t,this.schemaName);materializedView=(e,t)=>function(e,t,i){return t?new Jn(e,t,i):new Mn(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,[T]:!0});return n}(e,[...t],this.schemaName):function(e,t,i){const n=Object.assign(e=>new P(e??"",n),{enumName:e,enumValues:Object.values(t),schema:i,[T]:!0});return n}(e,t,this.schemaName)}sequence=(e,t)=>function(e,t,i){return new Gn(e,t,i)}(e,t,this.schemaName);getSQL(){return new H([ee.identifier(this.schemaName)])}shouldOmitSQLParens(){return!0}}function Yn(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 Xn(e)}const Zn=Yn("raw"),es=Yn("rendered"),ts=Yn("internal");Yn("cached");const is=Zn.enum("state",["draft","published","expired"]),ns=Zn.enum("restriction_level",["ogl_compatible","ogl_equivalent","restricted","highly_restricted"]),ss=Zn.enum("media_classification",["image","photo","artwork","screenshot","map","gif","speech","music","other","film","tv","software","misc_website_content","no_best_fit"]),rs=Zn.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"]),os=Zn.enum("acquisition_basis",["oak_owned","public_domain","gratis","paid"]),as=Zn.enum("content_cycle",["cycle_1","cycle_2"]),ls=Zn.enum("permission_status",["not_required","granted","denied"]),us=Zn.enum("territory",["uk","worldwide","worldwide_no_usa","other_territory"]),cs=Zn.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"]),_s=Zn.enum("question_type",["explanatory-text","match","multiple-choice","order","short-answer","text"]),ds=Zn.enum("tag_category",["discipline","domain","world_view"]),ms=Zn.enum("media_kind",["video","sound"]),ps=Zn.enum("redirect_type",["301","302","307","308"]),gs=Zn.enum("redirect_entity_source",["lessons","units","programmes","subjects"]),fs=ts.enum("operation",["insert","update","delete"]),hs=ts.enum("media_type_enum",["video","sound","gdrive_file","bucket_file"]),ys=ts.enum("lesson_component_type_enum",["document","downloadable","lesson_video","media_clip","quiz"]),bs={created_at:ci("created_at",{withTimezone:!0}).defaultNow(),updated_at:ci("updated_at",{withTimezone:!0}).$onUpdateFn(()=>new Date)},vs={created_at:ci("created_at",{withTimezone:!0}).notNull().defaultNow()},ws=ts.enum("release_type",["mathfix","migration"]),Ns=ts.table("releases",{release_id:it("release_id").primaryKey().generatedByDefaultAsIdentity(),_state:is("_state").notNull(),approved:Be("approved").notNull().default(!1),approver:_t("approver"),description:ii("description"),estimated_release_date:Ke("estimated_release_date"),locked:Be("locked").notNull().default(!1),name:ii("name"),notes:ii("notes"),release_type:ws("release_type"),release_uid:Oe("release_uid",{length:16}),...bs}),Ss={_state:is("_state").notNull()},xs={_expire_on_release:Be("_expire_on_release").notNull().default(!1),_release_id:it("_release_id").references(()=>Ns.release_id)},ks=Zn.table("gdrive_files",{gdrive_file_id:it("gdrive_file_id").notNull().generatedByDefaultAsIdentity(),...Ss,epoch:ii("epoch"),google_drive_id:ii("google_drive_id"),google_drive_url:ii("google_drive_url"),opendocument_presentation_bucket_name:ii("opendocument_presentation_bucket_name"),opendocument_presentation_bucket_path:ii("opendocument_presentation_bucket_path"),pdf_bucket_name:ii("pdf_bucket_name"),pdf_bucket_path:ii("pdf_bucket_path"),powerpoint_bucket_name:ii("powerpoint_bucket_name"),powerpoint_bucket_path:ii("powerpoint_bucket_path"),previous_document_id:it("previous_document_id"),...xs,...bs},e=>[Vi({columns:[e.gdrive_file_id,e._state]})]),Cs=Zn.table("supervision_levels",{supervision_level_id:it("supervision_level_id").notNull().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:_t("deprecated_fields"),description:ii("description"),global_position:it("global_position").notNull(),supervision_level_rating:it("supervision_level_rating"),title:ii("title").notNull(),...xs,...bs},e=>[Vi({columns:[e.supervision_level_id,e._state]})]),Ps=Zn.table("lessons",{lesson_id:it("lesson_id").notNull().generatedByDefaultAsIdentity(),...Ss,supervision_level_id:it("supervision_level_id"),deprecated_fields:_t("deprecated_fields"),equipment_and_resources:_t("equipment_and_resources"),key_learning_points:_t("key_learning_points"),keywords:_t("keywords"),lesson_outline:_t("lesson_outline"),misconceptions_and_common_mistakes:_t("misconceptions_and_common_mistakes"),phonics_outcome:ii("phonics_outcome"),pupil_lesson_outcome:ii("pupil_lesson_outcome"),slug:ii("slug").notNull(),teacher_tips:_t("teacher_tips"),title:ii("title").notNull(),...xs,...bs},e=>[Vi({columns:[e.lesson_id,e._state]}),_({name:"lessons_super_level_fk",columns:[e.supervision_level_id,e._state],foreignColumns:[Cs.supervision_level_id,Cs._state]})]),$s=Zn.enum("document_type",["slidedeck","worksheet","worksheet_answers","supplementary_resource","lesson_guide"]);Zn.table("documents",{document_id:it("document_id").notNull().generatedByDefaultAsIdentity(),...Ss,gdrive_file_id:it("gdrive_file_id").notNull(),lesson_id:it("lesson_id").notNull(),deprecated_fields:_t("deprecated_fields"),document_type:$s("document_type").notNull(),document_uid:Oe("document_uid",{length:16}),...xs,...bs},e=>[Vi({columns:[e.document_id,e._state]}),_({columns:[e.lesson_id,e._state],foreignColumns:[Ps.lesson_id,Ps._state]}),_({name:"documents_gdrive_file_fk",columns:[e.gdrive_file_id,e._state],foreignColumns:[ks.gdrive_file_id,ks._state]}),d().on(e.lesson_id,e.document_type,e._state)]);const Ts=Zn.table("bucket_files",{bucket_file_id:it("bucket_file_id").notNull().generatedByDefaultAsIdentity(),...Ss,bucket_name:ii("bucket_name"),bucket_path:ii("bucket_path"),byte_size:it("byte_size"),cloudinary_public_id:ii("cloudinary_public_id"),cloudinary_source_url:ii("cloudinary_source_url"),content_type:ii("content_type"),deprecated_fields:_t("deprecated_fields"),filename:ii("filename"),media_description:ii("media_description"),name:ii("name"),previous_downloadable_id:it("previous_downloadable_id"),...xs,...bs},e=>[Vi({columns:[e.bucket_file_id,e._state]})]);Zn.table("downloadables",{downloadable_id:it("downloadable_id").notNull().generatedByDefaultAsIdentity(),...Ss,bucket_file_id:it("bucket_file_id").notNull(),lesson_id:it("lesson_id").notNull(),custom_title:ii("custom_title"),deprecated_fields:_t("deprecated_fields"),position:it("position").notNull(),...xs,...bs},e=>[Vi({columns:[e.downloadable_id,e._state]}),_({columns:[e.lesson_id,e._state],foreignColumns:[Ps.lesson_id,Ps._state]}),_({name:"downloadables_bucket_file_fk",columns:[e.bucket_file_id,e._state],foreignColumns:[Ts.bucket_file_id,Ts._state]}),Qi("downloadables_lesson_position_unique").on(e.lesson_id,e.position,e._state)]);const js=Zn.table("videos",{video_id:it("video_id").notNull().generatedByDefaultAsIdentity(),...Ss,bad_language_detected:Be("bad_language_detected"),caption_vtt_url:ii("caption_vtt_url"),cloudinary_public_id:ii("cloudinary_public_id"),cloudinary_source_url:ii("cloudinary_source_url"),contains_identifiable_face:Be("contains_identifiable_face"),deprecated_fields:_t("deprecated_fields"),duration_seconds:Tt("duration_seconds"),has_bsl:Be("has_bsl"),inappropriate_words:_t("inappropriate_words"),ingest_origin:ii("ingest_origin"),language_approved:Be("language_approved"),media_description:ii("media_description"),mux_asset_id:ii("mux_asset_id"),mux_playback_id:ii("mux_playback_id"),name:ii("name"),previous_lesson_video_id:it("previous_lesson_video_id"),previous_media_clip_ids:it("previous_media_clip_ids").array(),raw_mux_data:_t("raw_mux_data"),signed_stream_id:ii("signed_stream_id"),title:ii("title"),transcript:ii("transcript"),url:ii("url"),video_uid:Oe("video_uid",{length:16}),...xs,...bs},e=>[Vi({columns:[e.video_id,e._state]})]);Zn.table("lesson_videos",{lesson_video_id:it("lesson_video_id").notNull().generatedByDefaultAsIdentity(),...Ss,lesson_id:it("lesson_id").notNull(),sign_language_video_id:it("sign_language_video_id"),video_id:it("video_id").notNull(),...xs,...bs},e=>[Vi({columns:[e.lesson_video_id,e._state]}),_({columns:[e.lesson_id,e._state],foreignColumns:[Ps.lesson_id,Ps._state]}),_({columns:[e.video_id,e._state],foreignColumns:[js.video_id,js._state]}),_({name:"lesson_videos_sign_lang_video_fk",columns:[e.sign_language_video_id,e._state],foreignColumns:[js.video_id,js._state]}),Qi("lesson_videos_lesson_unique").on(e.lesson_id,e._state)]);const qs=Zn.table("media_clip_cycles",{media_clip_cycle_id:it("media_clip_cycle_id").notNull().generatedByDefaultAsIdentity(),...Ss,lesson_id:it("lesson_id").notNull(),cycle_name:ii("cycle_name"),position:it("position").notNull(),...xs,...bs},e=>[Vi({columns:[e.media_clip_cycle_id,e._state]}),_({columns:[e.lesson_id,e._state],foreignColumns:[Ps.lesson_id,Ps._state]}),Qi("media_clip_cycles_lesson_name_unique").on(e.lesson_id,e.cycle_name,e._state),Qi("media_clip_cycles_lesson_position_unique").on(e.lesson_id,e.position,e._state)]),Bs=Zn.table("sounds",{sound_id:it("sound_id").notNull().generatedByDefaultAsIdentity(),...Ss,cloudinary_public_id:ii("cloudinary_public_id"),cloudinary_source_url:ii("cloudinary_source_url"),duration_seconds:Tt("duration_seconds"),media_description:ii("media_description"),mux_asset_id:ii("mux_asset_id"),mux_playback_id:ii("mux_playback_id"),name:ii("name"),previous_media_clip_ids:it("previous_media_clip_ids").array(),transcript_vtt_url:ii("transcript_vtt_url"),...xs,...bs},e=>[Vi({columns:[e.sound_id,e._state]})]);Zn.table("media_clips",{media_clip_id:it("media_clip_id").notNull().generatedByDefaultAsIdentity(),...Ss,media_clip_cycle_id:it("media_clip_cycle_id").notNull(),sound_id:it("sound_id"),video_id:it("video_id"),custom_title:ii("custom_title"),media_kind:ms("media_kind"),position:it("position").notNull(),...xs,...bs},e=>[Vi({columns:[e.media_clip_id,e._state]}),_({name:"media_clips_mc_cycle_fk",columns:[e.media_clip_cycle_id,e._state],foreignColumns:[qs.media_clip_cycle_id,qs._state]}),_({columns:[e.video_id,e._state],foreignColumns:[js.video_id,js._state]}),_({columns:[e.sound_id,e._state],foreignColumns:[Bs.sound_id,Bs._state]}),me("media_clip_video_or_sound",i`(video_id IS NOT NULL AND sound_id IS NULL) OR (video_id IS NULL AND sound_id IS NOT NULL)`),Qi("media_clips_cycle_position_unique").on(e.media_clip_cycle_id,e.position,e._state)]);const Ds=Zn.table("images",{image_id:it("image_id").notNull().generatedByDefaultAsIdentity(),...Ss,cloudinary_public_id:ii("cloudinary_public_id"),cloudinary_source_url:ii("cloudinary_source_url"),contains_identifiable_face:Be("contains_identifiable_face"),height:it("height"),media_description:ii("media_description"),name:ii("name"),width:it("width"),...xs,...bs},e=>[Vi({columns:[e.image_id,e._state]})]),As=Zn.table("questions",{question_id:it("question_id").notNull().generatedByDefaultAsIdentity(),...Ss,stem_image_id:it("stem_image_id"),deprecated_fields:_t("deprecated_fields"),feedback:ii("feedback"),hint:ii("hint"),question_type:_s("question_type").notNull(),question_uid:Oe("question_uid",{length:16}).notNull(),stem_text:ii("stem_text"),...xs,...bs},e=>[Vi({columns:[e.question_id,e._state]}),_({columns:[e.stem_image_id,e._state],foreignColumns:[Ds.image_id,Ds._state]})]);Zn.table("question_options",{option_id:it("option_id").notNull().generatedByDefaultAsIdentity(),...Ss,body_image_id:it("body_image_id"),match_partner_image_id:it("match_partner_image_id"),question_id:it("question_id").notNull(),body_text:ii("body_text"),correct_order:it("correct_order"),is_correct:Be("is_correct"),match_partner_text:ii("match_partner_text"),position:it("position"),...xs,...bs},e=>[Vi({columns:[e.option_id,e._state]}),_({name:"question_options_question_fk",columns:[e.question_id,e._state],foreignColumns:[As.question_id,As._state]}),_({name:"question_options_body_image_fk",columns:[e.body_image_id,e._state],foreignColumns:[Ds.image_id,Ds._state]}),_({name:"question_options_match_partner_image_fk",columns:[e.match_partner_image_id,e._state],foreignColumns:[Ds.image_id,Ds._state]})]);const Os=Zn.table("units",{unit_id:it("unit_id").notNull().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:_t("deprecated_fields"),description:ii("description").notNull(),slug:ii("slug"),title:ii("title").notNull(),unit_uid:Oe("unit_uid",{length:16}),why_this_why_now:ii("why_this_why_now"),...xs,...bs},e=>[Vi({columns:[e.unit_id,e._state]})]);Zn.table("question_units",{question_id:it("question_id").notNull(),unit_id:it("unit_id").notNull(),...Ss,...xs,...bs},e=>[Vi({columns:[e.question_id,e.unit_id,e._state]}),_({name:"question_units_question_fk",columns:[e.question_id,e._state],foreignColumns:[As.question_id,As._state]}),_({columns:[e.unit_id,e._state],foreignColumns:[Os.unit_id,Os._state]})]);const Ls=Zn.enum("quiz_role",["starter","exit"]),Is=Zn.table("quizzes",{quiz_id:it("quiz_id").notNull().generatedByDefaultAsIdentity(),...Ss,lesson_id:it("lesson_id").notNull(),deprecated_fields:_t("deprecated_fields"),quiz_answers_pdf_bucket_name:ii("quiz_answers_pdf_bucket_name"),quiz_answers_pdf_bucket_path:ii("quiz_answers_pdf_bucket_path"),quiz_pdf_bucket_name:ii("quiz_pdf_bucket_name"),quiz_pdf_bucket_path:ii("quiz_pdf_bucket_path"),quiz_role:Ls("quiz_role").notNull(),quiz_uid:Oe("quiz_uid",{length:16}).notNull(),...xs,...bs},e=>[Vi({columns:[e.quiz_id,e._state]}),_({columns:[e.lesson_id,e._state],foreignColumns:[Ps.lesson_id,Ps._state]}),Qi("quizzes_lesson_role_unique").on(e.lesson_id,e.quiz_role,e._state)]);Zn.table("quiz_questions",{quiz_id:it("quiz_id").notNull(),question_id:it("question_id").notNull(),...Ss,position:it("position").notNull(),...xs,...bs},e=>[Vi({columns:[e.quiz_id,e.question_id,e._state]}),_({columns:[e.quiz_id,e._state],foreignColumns:[Is.quiz_id,Is._state]}),_({name:"quiz_questions_question_fk",columns:[e.question_id,e._state],foreignColumns:[As.question_id,As._state]})]);const zs=Zn.table("urls",{url_id:it("url_id").notNull().generatedByDefaultAsIdentity(),...Ss,cloudinary_public_id:ii("cloudinary_public_id"),cloudinary_source_url:ii("cloudinary_source_url"),name:ii("name"),url:ii("url"),...xs,...bs},e=>[Vi({columns:[e.url_id,e._state]})]),Fs=Zn.table("media_copyright",{media_copyright_id:it("media_copyright_id").notNull().generatedByDefaultAsIdentity(),...Ss,bucket_file_id:it("bucket_file_id"),image_id:it("image_id"),sound_id:it("sound_id"),url_id:it("url_id"),video_id:it("video_id"),acquisition_basis:os("acquisition_basis"),additional_restrictions:ii("additional_restrictions"),attribution:ii("attribution"),attribution_required:Be("attribution_required"),content_cycle:as("content_cycle"),media_copyright_uid:ii("media_copyright_uid"),deprecated_fields:_t("deprecated_fields"),expiry_date_override:Ke("expiry_date_override"),licence:cs("licence"),media_classification:ss("media_classification"),media_provenance:rs("media_provenance"),media_provenance_url:ii("media_provenance_url"),partner_name:ii("partner_name"),permission_status:ls("permission_status"),restriction_level_override:ns("restriction_level_override"),territory_other:ii("territory_other"),territory_override:us("territory_override"),third_party_id:ii("third_party_id"),usage_notes:ii("usage_notes"),...xs,...bs},e=>[Vi({columns:[e.media_copyright_id,e._state]}),_({columns:[e.image_id,e._state],foreignColumns:[Ds.image_id,Ds._state]}),_({columns:[e.sound_id,e._state],foreignColumns:[Bs.sound_id,Bs._state]}),_({columns:[e.video_id,e._state],foreignColumns:[js.video_id,js._state]}),_({name:"media_copyright_bucket_file_fk",columns:[e.bucket_file_id,e._state],foreignColumns:[Ts.bucket_file_id,Ts._state]}),_({columns:[e.url_id,e._state],foreignColumns:[zs.url_id,zs._state]}),me("media_copyright_has_exactly_one_media",i`(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`)]),Qs=ts.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"]),Vs=ts.table("tpc_contracts",{tpc_contract_id:it("tpc_contract_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,effective_date:Ke("effective_date"),end_date:Ke("end_date"),geo_restricted:Be().notNull().default(!1),juro_id:ii("juro_id").notNull(),juro_url:ii("juro_url"),login_required:Be().notNull().default(!1),name:ii("name").notNull(),raw_contract:_t("raw_contract"),restricted_download:Be().notNull().default(!1),restriction_level:ns(),signing_side:ii("signing_side"),territory:Qs("territory"),tpc_contract_uid:Oe("tpc_contract_uid",{length:16}).notNull(),...bs},()=>[]);Zn.table("media_copyright_tpc_contracts",{media_copyright_id:it("media_copyright_id").notNull(),tpc_contract_id:it("tpc_contract_id").notNull(),...Ss,...xs,_release_id:it("_release_id"),...bs},e=>[Vi({name:"media_copyright_tpc_contracts_pk",columns:[e.media_copyright_id,e.tpc_contract_id,e._state]}),_({name:"media_copyright_tpc_contract_media_copyright_fk",columns:[e.media_copyright_id,e._state],foreignColumns:[Fs.media_copyright_id,Fs._state]}),_({name:"media_copyright_tpc_contract_tpc_contract_fk",columns:[e.tpc_contract_id],foreignColumns:[Vs.tpc_contract_id]}),_({name:"media_copyright_tpc_contracts_release_fk",columns:[e._release_id],foreignColumns:[Ns.release_id]})]),Zn.table("gdrive_file_images",{gdrive_file_id:it("gdrive_file_id").notNull(),image_id:it("image_id").notNull(),...Ss,...xs,...bs},e=>[Vi({columns:[e.gdrive_file_id,e.image_id,e._state]}),_({name:"gdrive_file_images_gdrive_file_fk",columns:[e.gdrive_file_id,e._state],foreignColumns:[ks.gdrive_file_id,ks._state]}),_({columns:[e.image_id,e._state],foreignColumns:[Ds.image_id,Ds._state]})]),Zn.table("lesson_media_copyright",{lesson_id:it("lesson_id").notNull(),media_copyright_id:it("media_copyright_id").notNull(),...Ss,...xs,...bs},e=>[Vi({columns:[e.lesson_id,e.media_copyright_id,e._state]}),_({name:"lesson_media_copyright_lesson_fk",columns:[e.lesson_id,e._state],foreignColumns:[Ps.lesson_id,Ps._state]}),_({name:"lesson_media_copyright_media_copyright_fk",columns:[e.media_copyright_id,e._state],foreignColumns:[Fs.media_copyright_id,Fs._state]})]);const Es=Zn.table("works_copyright",{works_copyright_id:it("works_copyright_id").notNull().generatedByDefaultAsIdentity(),...Ss,attribution:ii("attribution"),author:ii("author"),raw_juro_data:_t("raw_juro_data"),restriction_level:ns("restriction_level"),title:ii("title"),works_copyright_uid:Oe("works_copyright_uid",{length:16}),...xs,...bs},e=>[Vi({columns:[e.works_copyright_id,e._state]})]);Zn.table("lesson_works_copyright",{lesson_id:it("lesson_id").notNull(),works_copyright_id:it("works_copyright_id").notNull(),...Ss,...xs,...bs},e=>[Vi({columns:[e.lesson_id,e.works_copyright_id,e._state]}),_({name:"lesson_works_copyright_lesson_fk",columns:[e.lesson_id,e._state],foreignColumns:[Ps.lesson_id,Ps._state]}),_({name:"lesson_works_copyright_works_copyright_fk",columns:[e.works_copyright_id,e._state],foreignColumns:[Es.works_copyright_id,Es._state]})]);const Us=Zn.table("features",{feature_id:it("feature_id").notNull().generatedByDefaultAsIdentity(),...Ss,key:ii("key").notNull(),...xs,...bs},e=>[Vi({columns:[e.feature_id,e._state]}),d("features_key_unique").on(e.key,e._state)]);Zn.table("lesson_features",{lesson_id:it("lesson_id").notNull(),feature_id:it("feature_id").notNull(),...Ss,value:ii("value"),...xs,...bs},e=>[Vi({columns:[e.lesson_id,e.feature_id,e._state]}),_({columns:[e.lesson_id,e._state],foreignColumns:[Ps.lesson_id,Ps._state]}),_({name:"lesson_features_feature_fk",columns:[e.feature_id,e._state],foreignColumns:[Us.feature_id,Us._state]})]),Zn.table("works_copyright_tpc_contracts",{works_copyright_id:it("works_copyright_id").notNull(),tpc_contract_id:it("tpc_contract_id").notNull(),...Ss,...xs,_release_id:it("_release_id"),...bs},e=>[Vi({name:"works_copyright_tpc_contracts_pk",columns:[e.works_copyright_id,e.tpc_contract_id,e._state]}),_({name:"works_copyright_tpc_contract_works_copyright_fk",columns:[e.works_copyright_id,e._state],foreignColumns:[Es.works_copyright_id,Es._state]}),_({name:"works_copyright_tpc_contract_tpc_contract_fk",columns:[e.tpc_contract_id],foreignColumns:[Vs.tpc_contract_id]}),_({name:"works_copyright_tpc_contracts_release_fk",columns:[e._release_id],foreignColumns:[Ns.release_id]})]),Zn.table("videos_works_copyright",{video_id:it("video_id").notNull(),works_copyright_id:it("works_copyright_id").notNull(),...Ss,...xs,...bs},e=>[Vi({columns:[e.video_id,e.works_copyright_id,e._state]}),_({name:"videos_works_copyright_video_fk",columns:[e.video_id,e._state],foreignColumns:[js.video_id,js._state]}),_({name:"videos_works_copyright_works_copyright_fk",columns:[e.works_copyright_id,e._state],foreignColumns:[Es.works_copyright_id,Es._state]})]);const Ms=Zn.table("content_guidance",{content_guidance_id:it("content_guidance_id").notNull().generatedByDefaultAsIdentity(),...Ss,supervision_level_id:it("supervision_level_id").notNull(),content_guidance_area:ii("content_guidance_area"),content_guidance_code:ii("content_guidance_code"),content_guidance_description:ii("content_guidance_description"),content_guidance_label:ii("content_guidance_label"),deprecated_fields:_t("deprecated_fields"),...xs,...bs},e=>[Vi({columns:[e.content_guidance_id,e._state]}),_({name:"content_guid_super_level_fk",columns:[e.supervision_level_id,e._state],foreignColumns:[Cs.supervision_level_id,Cs._state]})]),Js=Zn.table("key_stages",{key_stage_id:it("key_stage_id").notNull().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:_t("deprecated_fields"),description:ii("description"),global_position:it("global_position").notNull(),key_stage:ii("key_stage"),slug:ii("slug"),...xs,...bs},e=>[Vi({columns:[e.key_stage_id,e._state]})]),Rs=Zn.table("phases",{phase_id:it("phase_id").notNull().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:_t("deprecated_fields"),description:ii("description"),global_position:it("global_position").notNull(),phase:ii("phase"),slug:ii("slug"),...xs,...bs},e=>[Vi({columns:[e.phase_id,e._state]})]),Ks=Zn.table("subjects",{subject_id:it("subject_id").notNull().generatedByDefaultAsIdentity(),...Ss,subject_parent_id:it("subject_parent_id"),deprecated_fields:_t("deprecated_fields"),description:ii("description"),global_position:it("global_position").notNull(),non_curriculum:Be("non_curriculum"),slug:ii("slug"),subject:ii("subject"),...xs,...bs},e=>[Vi({columns:[e.subject_id,e._state]}),_({name:"subjects_subj_parent_fk",columns:[e.subject_parent_id,e._state],foreignColumns:[e.subject_id,e._state]})]),Ws=Zn.table("years",{year_id:it("year_id").notNull().generatedByDefaultAsIdentity(),...Ss,key_stage_id:it("key_stage_id").notNull(),phase_id:it("phase_id").notNull(),deprecated_fields:_t("deprecated_fields"),description:ii("description"),global_position:it("global_position").notNull(),slug:ii("slug"),year:ii("year"),...xs,...bs},e=>[Vi({columns:[e.year_id,e._state]}),_({columns:[e.key_stage_id,e._state],foreignColumns:[Js.key_stage_id,Js._state]}),_({columns:[e.phase_id,e._state],foreignColumns:[Rs.phase_id,Rs._state]})]);Zn.table("content_guidance_scopes",{scope_id:it("scope_id").notNull().generatedByDefaultAsIdentity(),...Ss,content_guidance_id:it("content_guidance_id").notNull(),key_stage_id:it("key_stage_id"),phase_id:it("phase_id"),subject_id:it("subject_id"),subject_parent_id:it("subject_parent_id"),year_id:it("year_id"),...xs,...bs},e=>[Vi({columns:[e.scope_id,e._state]}),_({name:"content_guid_scopes_content_guid_fk",columns:[e.content_guidance_id,e._state],foreignColumns:[Ms.content_guidance_id,Ms._state]}),_({name:"content_guid_scopes_subject_fk",columns:[e.subject_id,e._state],foreignColumns:[Ks.subject_id,Ks._state]}),_({name:"content_guid_scopes_subj_parent_fk",columns:[e.subject_parent_id,e._state],foreignColumns:[Ks.subject_id,Ks._state]}),_({name:"content_guid_scopes_phase_fk",columns:[e.phase_id,e._state],foreignColumns:[Rs.phase_id,Rs._state]}),_({name:"content_guid_scopes_key_stage_fk",columns:[e.key_stage_id,e._state],foreignColumns:[Js.key_stage_id,Js._state]}),_({columns:[e.year_id,e._state],foreignColumns:[Ws.year_id,Ws._state]})]);const Hs=Zn.table("exam_board_specs",{exam_board_spec_id:it("exam_board_spec_id").notNull().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:_t("deprecated_fields"),description:ii("description"),title:ii("title").notNull(),...xs,...bs},e=>[Vi({columns:[e.exam_board_spec_id,e._state]})]);Zn.table("exam_board_spec_scopes",{scope_id:it("scope_id").notNull().generatedByDefaultAsIdentity(),...Ss,exam_board_spec_id:it("exam_board_spec_id").notNull(),key_stage_id:it("key_stage_id"),phase_id:it("phase_id"),subject_id:it("subject_id"),subject_parent_id:it("subject_parent_id"),year_id:it("year_id"),...xs,...bs},e=>[Vi({columns:[e.scope_id,e._state]}),_({name:"exam_spec_scopes_exam_spec_fk",columns:[e.exam_board_spec_id,e._state],foreignColumns:[Hs.exam_board_spec_id,Hs._state]}),_({name:"exam_spec_scopes_subject_fk",columns:[e.subject_id,e._state],foreignColumns:[Ks.subject_id,Ks._state]}),_({name:"exam_spec_scopes_subj_parent_fk",columns:[e.subject_parent_id,e._state],foreignColumns:[Ks.subject_id,Ks._state]}),_({name:"exam_spec_scopes_phase_fk",columns:[e.phase_id,e._state],foreignColumns:[Rs.phase_id,Rs._state]}),_({name:"exam_spec_scopes_key_stage_fk",columns:[e.key_stage_id,e._state],foreignColumns:[Js.key_stage_id,Js._state]}),_({columns:[e.year_id,e._state],foreignColumns:[Ws.year_id,Ws._state]})]),Zn.table("lesson_content_guidance",{lesson_id:it("lesson_id").notNull(),content_guidance_id:it("content_guidance_id").notNull(),...Ss,position:it("position").notNull(),...xs,...bs},e=>[Vi({name:"lesson_content_guid_pk",columns:[e.lesson_id,e.content_guidance_id,e._state]}),_({name:"lesson_content_guid_lesson_fk",columns:[e.lesson_id,e._state],foreignColumns:[Ps.lesson_id,Ps._state]}),_({name:"lesson_content_guid_content_guid_fk",columns:[e.content_guidance_id,e._state],foreignColumns:[Ms.content_guidance_id,Ms._state]})]);const Gs=Zn.table("tags",{tag_id:it("tag_id").notNull().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:_t("deprecated_fields"),tag_category:ds("tag_category"),title:ii("title").notNull(),...xs,...bs},e=>[Vi({columns:[e.tag_id,e._state]})]);Zn.table("lesson_tags",{lesson_id:it("lesson_id").notNull(),tag_id:it("tag_id").notNull(),...Ss,position:it("position").notNull(),...xs,...bs},e=>[Vi({columns:[e.lesson_id,e.tag_id,e._state]}),_({columns:[e.lesson_id,e._state],foreignColumns:[Ps.lesson_id,Ps._state]}),_({columns:[e.tag_id,e._state],foreignColumns:[Gs.tag_id,Gs._state]})]);const Xs=Zn.table("national_curriculum",{national_curriculum_id:it("national_curriculum_id").notNull().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:_t("deprecated_fields"),description:ii("description"),title:ii("title").notNull(),...xs,...bs},e=>[Vi({columns:[e.national_curriculum_id,e._state]})]);Zn.table("national_curriculum_scopes",{scope_id:it("scope_id").notNull().generatedByDefaultAsIdentity(),...Ss,key_stage_id:it("key_stage_id"),national_curriculum_id:it("national_curriculum_id").notNull(),phase_id:it("phase_id"),subject_id:it("subject_id"),subject_parent_id:it("subject_parent_id"),year_id:it("year_id"),...xs,...bs},e=>[Vi({columns:[e.scope_id,e._state]}),_({name:"nat_curric_scopes_nat_curric_fk",columns:[e.national_curriculum_id,e._state],foreignColumns:[Xs.national_curriculum_id,Xs._state]}),_({name:"nat_curric_scopes_subject_fk",columns:[e.subject_id,e._state],foreignColumns:[Ks.subject_id,Ks._state]}),_({name:"nat_curric_scopes_subj_parent_fk",columns:[e.subject_parent_id,e._state],foreignColumns:[Ks.subject_id,Ks._state]}),_({name:"nat_curric_scopes_phase_fk",columns:[e.phase_id,e._state],foreignColumns:[Rs.phase_id,Rs._state]}),_({name:"nat_curric_scopes_key_stage_fk",columns:[e.key_stage_id,e._state],foreignColumns:[Js.key_stage_id,Js._state]}),_({name:"nat_curric_scopes_year_fk",columns:[e.year_id,e._state],foreignColumns:[Ws.year_id,Ws._state]})]);const Ys=Zn.table("subject_categories",{subject_category_id:it("subject_category_id").notNull().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:_t("deprecated_fields"),description:ii("description"),slug:ii("slug"),title:ii("title").notNull(),...xs,...bs},e=>[Vi({columns:[e.subject_category_id,e._state]})]);Zn.table("subject_category_scopes",{scope_id:it("scope_id").notNull().generatedByDefaultAsIdentity(),...Ss,key_stage_id:it("key_stage_id"),phase_id:it("phase_id"),subject_category_id:it("subject_category_id").notNull(),subject_id:it("subject_id"),subject_parent_id:it("subject_parent_id"),year_id:it("year_id"),...xs,...bs},e=>[Vi({columns:[e.scope_id,e._state]}),_({name:"subj_cat_scopes_subj_cat_fk",columns:[e.subject_category_id,e._state],foreignColumns:[Ys.subject_category_id,Ys._state]}),_({name:"subj_cat_scopes_subject_fk",columns:[e.subject_id,e._state],foreignColumns:[Ks.subject_id,Ks._state]}),_({name:"subj_cat_scopes_subj_parent_fk",columns:[e.subject_parent_id,e._state],foreignColumns:[Ks.subject_id,Ks._state]}),_({name:"subj_cat_scopes_phase_fk",columns:[e.phase_id,e._state],foreignColumns:[Rs.phase_id,Rs._state]}),_({name:"subj_cat_scopes_key_stage_fk",columns:[e.key_stage_id,e._state],foreignColumns:[Js.key_stage_id,Js._state]}),_({columns:[e.year_id,e._state],foreignColumns:[Ws.year_id,Ws._state]})]),Zn.table("tag_scopes",{scope_id:it("scope_id").notNull().generatedByDefaultAsIdentity(),...Ss,key_stage_id:it("key_stage_id"),phase_id:it("phase_id"),subject_id:it("subject_id"),subject_parent_id:it("subject_parent_id"),tag_id:it("tag_id").notNull(),year_id:it("year_id"),...xs,...bs},e=>[Vi({columns:[e.scope_id,e._state]}),_({columns:[e.tag_id,e._state],foreignColumns:[Gs.tag_id,Gs._state]}),_({columns:[e.subject_id,e._state],foreignColumns:[Ks.subject_id,Ks._state]}),_({name:"tag_scopes_subj_parent_fk",columns:[e.subject_parent_id,e._state],foreignColumns:[Ks.subject_id,Ks._state]}),_({columns:[e.phase_id,e._state],foreignColumns:[Rs.phase_id,Rs._state]}),_({name:"tag_scopes_key_stage_fk",columns:[e.key_stage_id,e._state],foreignColumns:[Js.key_stage_id,Js._state]}),_({columns:[e.year_id,e._state],foreignColumns:[Ws.year_id,Ws._state]})]),Zn.table("unit_exam_board_specs",{unit_id:it("unit_id").notNull(),exam_board_spec_id:it("exam_board_spec_id").notNull(),...Ss,position:it("position").notNull(),...xs,...bs},e=>[Vi({columns:[e.unit_id,e.exam_board_spec_id,e._state]}),_({columns:[e.unit_id,e._state],foreignColumns:[Os.unit_id,Os._state]}),_({name:"unit_exam_spec_exam_spec_fk",columns:[e.exam_board_spec_id,e._state],foreignColumns:[Hs.exam_board_spec_id,Hs._state]})]),Zn.table("unit_national_curriculum",{unit_id:it("unit_id").notNull(),national_curriculum_id:it("national_curriculum_id").notNull(),...Ss,position:it("position").notNull(),...xs,...bs},e=>[Vi({name:"unit_nat_curric_pk",columns:[e.unit_id,e.national_curriculum_id,e._state]}),_({name:"unit_nat_curric_unit_fk",columns:[e.unit_id,e._state],foreignColumns:[Os.unit_id,Os._state]}),_({name:"unit_nat_curric_nat_curric_fk",columns:[e.national_curriculum_id,e._state],foreignColumns:[Xs.national_curriculum_id,Xs._state]})]),Zn.table("unit_subject_categories",{unit_id:it("unit_id").notNull(),subject_category_id:it("subject_category_id").notNull(),...Ss,position:it("position").notNull(),...xs,...bs},e=>[Vi({columns:[e.unit_id,e.subject_category_id,e._state]}),_({columns:[e.unit_id,e._state],foreignColumns:[Os.unit_id,Os._state]}),_({name:"unit_subj_cat_subj_cat_fk",columns:[e.subject_category_id,e._state],foreignColumns:[Ys.subject_category_id,Ys._state]})]);const Zs=Zn.table("exam_boards",{exam_board_id:it("exam_board_id").notNull().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:_t("deprecated_fields"),description:ii("description"),exam_board:ii("exam_board"),global_position:it("global_position").notNull(),slug:ii("slug"),...xs,...bs},e=>[Vi({columns:[e.exam_board_id,e._state]})]),er=Zn.table("pathways",{pathway_id:it("pathway_id").notNull().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:_t("deprecated_fields"),description:ii("description"),global_position:it("global_position").notNull(),pathway:ii("pathway"),slug:ii("slug"),...xs,...bs},e=>[Vi({columns:[e.pathway_id,e._state]})]),tr=Zn.table("tiers",{tier_id:it("tier_id").notNull().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:_t("deprecated_fields"),description:ii("description"),global_position:it("global_position").notNull(),slug:ii("slug"),tier:ii("tier"),...xs,...bs},e=>[Vi({columns:[e.tier_id,e._state]})]),ir=Zn.table("unit_variants",{unit_variant_id:it("unit_variant_id").notNull().generatedByDefaultAsIdentity(),...Ss,exam_board_id:it("exam_board_id"),pathway_id:it("pathway_id"),tier_id:it("tier_id"),unit_id:it("unit_id").notNull(),deprecated_fields:_t("deprecated_fields"),description_override:ii("description_override"),planned_number_of_lessons_override:it("planned_number_of_lessons_override"),prior_knowledge_requirements_override:ii("prior_knowledge_requirements_override").array(),title_override:ii("title_override"),unit_variant_uid:Oe("unit_variant_uid",{length:16}),why_this_why_now_override:ii("why_this_why_now_override"),...xs,...bs},e=>[Vi({columns:[e.unit_variant_id,e._state]}),_({name:"unit_variants_exam_board_fk",columns:[e.exam_board_id,e._state],foreignColumns:[Zs.exam_board_id,Zs._state]}),_({columns:[e.pathway_id,e._state],foreignColumns:[er.pathway_id,er._state]}),_({columns:[e.tier_id,e._state],foreignColumns:[tr.tier_id,tr._state]}),_({columns:[e.unit_id,e._state],foreignColumns:[Os.unit_id,Os._state]}),d("unit_variants_unit_scope_unique").on(e.unit_id,e.tier_id,e.exam_board_id,e.pathway_id,e._state).nullsNotDistinct()]);Zn.table("unit_variant_exam_board_specs_override",{unit_variant_id:it("unit_variant_id").notNull(),exam_board_spec_id:it("exam_board_spec_id").notNull(),...Ss,position:it("position").notNull(),...xs,_release_id:it("_release_id"),...bs},e=>[Vi({name:"unit_variant_exam_board_specs_override_pk",columns:[e.unit_variant_id,e.exam_board_spec_id,e._state]}),_({name:"unit_var_exam_spec_ovr_release_fk",columns:[e._release_id],foreignColumns:[Ns.release_id]}),_({name:"unit_var_exam_spec_ovr_unit_var_fk",columns:[e.unit_variant_id,e._state],foreignColumns:[ir.unit_variant_id,ir._state]}),_({name:"unit_var_exam_spec_ovr_exam_spec_fk",columns:[e.exam_board_spec_id,e._state],foreignColumns:[Hs.exam_board_spec_id,Hs._state]})]),Zn.table("unit_variant_national_curriculum_override",{unit_variant_id:it("unit_variant_id").notNull(),national_curriculum_id:it("national_curriculum_id").notNull(),...Ss,position:it("position").notNull(),...xs,_release_id:it("_release_id"),...bs},e=>[Vi({name:"unit_variant_national_curriculum_override_pk",columns:[e.unit_variant_id,e.national_curriculum_id,e._state]}),_({name:"unit_var_nat_curric_ovr_release_fk",columns:[e._release_id],foreignColumns:[Ns.release_id]}),_({name:"unit_var_nat_curric_ovr_unit_var_fk",columns:[e.unit_variant_id,e._state],foreignColumns:[ir.unit_variant_id,ir._state]}),_({name:"unit_var_nat_curric_ovr_nat_curric_fk",columns:[e.national_curriculum_id,e._state],foreignColumns:[Xs.national_curriculum_id,Xs._state]})]),Zn.table("unit_variant_subject_categories_override",{unit_variant_id:it("unit_variant_id").notNull(),subject_category_id:it("subject_category_id").notNull(),...Ss,position:it("position").notNull(),...xs,_release_id:it("_release_id"),...bs},e=>[Vi({name:"unit_variant_subject_categories_override_pk",columns:[e.unit_variant_id,e.subject_category_id,e._state]}),_({name:"unit_var_subj_cat_ovr_release_fk",columns:[e._release_id],foreignColumns:[Ns.release_id]}),_({name:"unit_var_subj_cat_ovr_unit_var_fk",columns:[e.unit_variant_id,e._state],foreignColumns:[ir.unit_variant_id,ir._state]}),_({name:"unit_var_subj_cat_ovr_subj_cat_fk",columns:[e.subject_category_id,e._state],foreignColumns:[Ys.subject_category_id,Ys._state]})]);const nr=Zn.table("actions",{action_id:it("action_id").notNull().generatedByDefaultAsIdentity(),...Ss,key:ii("key").notNull(),...xs,...bs},e=>[Vi({columns:[e.action_id,e._state]}),d("actions_key_unique").on(e.key,e._state)]),sr=Zn.table("overrides_and_exceptions",{overrides_and_exceptions_id:it("overrides_and_exceptions_id").notNull().generatedByDefaultAsIdentity(),...Ss,description:ii("description"),used_by_queries:_t("used_by_queries").notNull().default([]),...xs,...bs},e=>[Vi({columns:[e.overrides_and_exceptions_id,e._state]})]);Zn.table("overrides_and_exceptions_actions",{overrides_and_exceptions_id:it("overrides_and_exceptions_id").notNull(),action_id:it("action_id").notNull(),...Ss,value:_t("value").notNull(),...xs,_release_id:it("_release_id"),...bs},e=>[Vi({name:"ovr_exc_actions_pk",columns:[e.overrides_and_exceptions_id,e.action_id,e._state]}),_({name:"ovr_exc_actions_release_fk",columns:[e._release_id],foreignColumns:[Ns.release_id]}),_({name:"ovr_exc_actions_ovr_exc_fk",columns:[e.overrides_and_exceptions_id,e._state],foreignColumns:[sr.overrides_and_exceptions_id,sr._state]}),_({name:"ovr_exc_actions_action_fk",columns:[e.action_id,e._state],foreignColumns:[nr.action_id,nr._state]})]),Zn.table("overrides_and_exceptions_feature_scopes",{overrides_and_exceptions_id:it("overrides_and_exceptions_id").notNull(),condition_id:it("condition_id").notNull(),feature_id:it("feature_id").notNull(),...Ss,value:ii("value").notNull(),...xs,_release_id:it("_release_id"),...bs},e=>[Vi({name:"ovr_exc_feature_scopes_pk",columns:[e.overrides_and_exceptions_id,e.condition_id,e.feature_id,e._state]}),_({name:"ovr_exc_feature_scopes_release_fk",columns:[e._release_id],foreignColumns:[Ns.release_id]}),_({name:"ovr_exc_feature_scopes_ovr_exc_fk",columns:[e.overrides_and_exceptions_id,e._state],foreignColumns:[sr.overrides_and_exceptions_id,sr._state]}),_({name:"ovr_exc_feature_scopes_feature_fk",columns:[e.feature_id,e._state],foreignColumns:[Us.feature_id,Us._state]})]),Zn.table("overrides_and_exceptions_programme_scopes",{scope_id:it("scope_id").notNull().generatedByDefaultAsIdentity(),...Ss,key_stage_id:it("key_stage_id"),overrides_and_exceptions_id:it("overrides_and_exceptions_id").notNull(),pathway_id:it("pathway_id"),phase_id:it("phase_id"),subject_id:it("subject_id"),tier_id:it("tier_id"),legacy:Be("legacy"),subject_slug:ii("subject_slug"),...xs,_release_id:it("_release_id"),...bs},e=>[Vi({name:"ovr_exc_programme_scopes_pk",columns:[e.scope_id,e._state]}),_({name:"ovr_exc_programme_scopes_release_fk",columns:[e._release_id],foreignColumns:[Ns.release_id]}),_({name:"ovr_exc_programme_scopes_ovr_exc_fk",columns:[e.overrides_and_exceptions_id,e._state],foreignColumns:[sr.overrides_and_exceptions_id,sr._state]}),_({name:"ovr_exc_programme_scopes_key_stage_fk",columns:[e.key_stage_id,e._state],foreignColumns:[Js.key_stage_id,Js._state]}),_({name:"ovr_exc_programme_scopes_pathway_fk",columns:[e.pathway_id,e._state],foreignColumns:[er.pathway_id,er._state]}),_({name:"ovr_exc_programme_scopes_phase_fk",columns:[e.phase_id,e._state],foreignColumns:[Rs.phase_id,Rs._state]}),_({name:"ovr_exc_programme_scopes_subject_fk",columns:[e.subject_id,e._state],foreignColumns:[Ks.subject_id,Ks._state]}),_({name:"ovr_exc_programme_scopes_tier_fk",columns:[e.tier_id,e._state],foreignColumns:[tr.tier_id,tr._state]})]),Zn.table("redirects",{entity_id:it("entity_id").notNull(),entity_source:gs("entity_source").notNull(),...Ss,description:ii("description"),redirect_entity_id:it("redirect_entity_id"),redirect_entity_source:gs("redirect_entity_source"),redirect_type:ps("redirect_type").notNull(),redirect_url:ii("redirect_url"),...xs,...bs},e=>[Vi({columns:[e.entity_id,e.entity_source,e._state]}),me("redirect_has_exactly_one_target",i`(redirect_url IS NOT NULL)::int + (redirect_entity_id IS NOT NULL)::int = 1`),me("redirect_entity_ref_complete",i`(redirect_entity_id IS NULL) = (redirect_entity_source IS NULL)`)]);const rr=Zn.table("choices",{choice_id:it("choice_id").notNull().generatedByDefaultAsIdentity(),...Ss,unit_id:it("unit_id").notNull(),...xs,...bs},e=>[Vi({columns:[e.choice_id,e._state]}),_({columns:[e.unit_id,e._state],foreignColumns:[Os.unit_id,Os._state]})]);Zn.table("choices_unit_variants",{unit_variant_id:it("unit_variant_id").notNull(),choice_id:it("choice_id").notNull(),...Ss,position:it("position").notNull(),...xs,...bs},e=>[Vi({columns:[e.unit_variant_id,e.choice_id,e._state]}),_({name:"choices_unit_var_unit_var_fk",columns:[e.unit_variant_id,e._state],foreignColumns:[ir.unit_variant_id,ir._state]}),_({name:"choices_unit_var_choice_fk",columns:[e.choice_id,e._state],foreignColumns:[rr.choice_id,rr._state]})]);const or=Zn.table("programmes",{programme_id:it("programme_id").notNull().generatedByDefaultAsIdentity(),...Ss,exam_board_id:it("exam_board_id"),pathway_id:it("pathway_id"),subject_id:it("subject_id").notNull(),tier_id:it("tier_id"),year_id:it("year_id").notNull(),curriculum_intent:ii("curriculum_intent"),deprecated_fields:_t("deprecated_fields"),programme_uid:Oe("programme_uid",{length:16}),...xs,...bs},e=>[Vi({columns:[e.programme_id,e._state]}),_({columns:[e.subject_id,e._state],foreignColumns:[Ks.subject_id,Ks._state]}),_({columns:[e.year_id,e._state],foreignColumns:[Ws.year_id,Ws._state]}),_({columns:[e.tier_id,e._state],foreignColumns:[tr.tier_id,tr._state]}),_({name:"programmes_exam_board_fk",columns:[e.exam_board_id,e._state],foreignColumns:[Zs.exam_board_id,Zs._state]}),_({columns:[e.pathway_id,e._state],foreignColumns:[er.pathway_id,er._state]})]);Zn.table("inclusions",{programme_id:it("programme_id").notNull(),position:it("position").notNull(),...Ss,choice_id:it("choice_id"),unit_variant_id:it("unit_variant_id"),...xs,...bs},e=>[Vi({columns:[e.programme_id,e.position,e._state]}),me("inclusions_xor_variant_choice",i`num_nonnulls(${e.unit_variant_id}, ${e.choice_id}) = 1`),Qi("inclusions_programme_choice_unique").on(e.programme_id,e.choice_id,e._state).where(i`${e.choice_id} is not null`),Qi("inclusions_programme_unit_variant_unique").on(e.programme_id,e.unit_variant_id,e._state).where(i`${e.unit_variant_id} is not null`),_({name:"inclusions_programme_fk",columns:[e.programme_id,e._state],foreignColumns:[or.programme_id,or._state]}),_({columns:[e.choice_id,e._state],foreignColumns:[rr.choice_id,rr._state]}),_({name:"inclusions_unit_var_fk",columns:[e.unit_variant_id,e._state],foreignColumns:[ir.unit_variant_id,ir._state]})]);const ar=Zn.table("threads",{thread_id:it("thread_id").notNull().generatedByDefaultAsIdentity(),...Ss,parent_thread_id:it("parent_thread_id"),deprecated_fields:_t("deprecated_fields"),description:ii("description"),slug:ii("slug"),thread_uid:Oe("thread_uid",{length:16}),title:ii("title"),...xs,...bs},e=>[Vi({columns:[e.thread_id,e._state]}),_({columns:[e.parent_thread_id,e._state],foreignColumns:[e.thread_id,e._state]})]);Zn.table("programme_threads",{programme_id:it("programme_id").notNull(),thread_id:it("thread_id").notNull(),...Ss,deprecated_fields:_t("deprecated_fields"),position:it("position").notNull(),...xs,...bs},e=>[Vi({columns:[e.programme_id,e.thread_id,e._state]}),_({name:"programme_threads_programme_fk",columns:[e.programme_id,e._state],foreignColumns:[or.programme_id,or._state]}),_({columns:[e.thread_id,e._state],foreignColumns:[ar.thread_id,ar._state]})]),Zn.table("programme_features",{programme_id:it("programme_id").notNull(),feature_id:it("feature_id").notNull(),...Ss,value:ii("value"),...xs,...bs},e=>[Vi({columns:[e.programme_id,e.feature_id,e._state]}),_({name:"programme_features_programme_fk",columns:[e.programme_id,e._state],foreignColumns:[or.programme_id,or._state]}),_({name:"programme_features_feature_fk",columns:[e.feature_id,e._state],foreignColumns:[Us.feature_id,Us._state]})]),Zn.table("unit_threads",{thread_id:it("thread_id").notNull(),unit_id:it("unit_id").notNull(),...Ss,deprecated_fields:_t("deprecated_fields"),position:it("position").notNull(),...xs,...bs},e=>[Vi({columns:[e.thread_id,e.unit_id,e._state]}),_({columns:[e.thread_id,e._state],foreignColumns:[ar.thread_id,ar._state]}),_({columns:[e.unit_id,e._state],foreignColumns:[Os.unit_id,Os._state]})]),Zn.table("unit_catalogue",{subject_id:it("subject_id").notNull(),year_id:it("year_id").notNull(),unit_id:it("unit_id").notNull(),...Ss,...xs,...bs},e=>[Vi({columns:[e.subject_id,e.year_id,e.unit_id,e._state]}),_({columns:[e.unit_id,e._state],foreignColumns:[Os.unit_id,Os._state]}),_({columns:[e.subject_id,e._state],foreignColumns:[Ks.subject_id,Ks._state]}),_({columns:[e.year_id,e._state],foreignColumns:[Ws.year_id,Ws._state]})]),Zn.table("unit_lessons",{unit_id:it("unit_id").notNull(),lesson_id:it("lesson_id").notNull(),...Ss,position:it("position").notNull(),...xs,...bs},e=>[Vi({columns:[e.unit_id,e.lesson_id,e._state]}),_({columns:[e.unit_id,e._state],foreignColumns:[Os.unit_id,Os._state]}),_({columns:[e.lesson_id,e._state],foreignColumns:[Ps.lesson_id,Ps._state]})]),Zn.table("unit_variant_lessons",{unit_variant_id:it("unit_variant_id").notNull(),lesson_id:it("lesson_id").notNull(),...Ss,deprecated_fields:_t("deprecated_fields"),position:it("position").notNull(),...xs,...bs},e=>[Vi({columns:[e.unit_variant_id,e.lesson_id,e._state]}),_({name:"unit_var_lessons_unit_var_fk",columns:[e.unit_variant_id,e._state],foreignColumns:[ir.unit_variant_id,ir._state]}),_({name:"unit_var_lessons_lesson_fk",columns:[e.lesson_id,e._state],foreignColumns:[Ps.lesson_id,Ps._state]})]),Zn.table("unit_features",{unit_id:it("unit_id").notNull(),feature_id:it("feature_id").notNull(),...Ss,value:ii("value"),...xs,...bs},e=>[Vi({columns:[e.unit_id,e.feature_id,e._state]}),_({columns:[e.unit_id,e._state],foreignColumns:[Os.unit_id,Os._state]}),_({columns:[e.feature_id,e._state],foreignColumns:[Us.feature_id,Us._state]})]);const lr=ts.enum("lesson_component_operation_status_enum",["api_neutral","api_in_progress","api_failed","ingest_queued","ingest_in_progress","ingest_failed","ingest_completed"]);ts.table("lesson_component_status",{lesson_component_id:it("lesson_component_id").notNull(),lesson_component_type:ys("lesson_component_type").notNull(),active_media_id:it("active_media_id"),active_media_type:hs("active_media_type"),last_error_location:ii("last_error_location"),last_error_message:ii("last_error_message"),last_error_timestamp:ci("last_error_timestamp"),last_ingest_id:mi("last_ingest_id"),operation_status:lr("operation_status").notNull().default("api_neutral"),...bs},e=>[Vi({name:"lesson_comp_status_pk",columns:[e.lesson_component_id,e.lesson_component_type]})]);const ur=ts.enum("lesson_status_enum",["api_neutral","ingest_queued","ingest_in_progress","ingest_complete","ingest_failed"]);ts.table("lesson_status",{lesson_id:it("lesson_id").notNull(),approved:Be("approved").notNull().default(!1),last_approved:ci("last_approved"),last_error_location:ii("last_error_location"),last_error_message:ii("last_error_message"),last_error_timestamp:ci("last_error_timestamp"),status:ur("status").notNull().default("api_neutral"),...bs},e=>[Vi({columns:[e.lesson_id]})]);const cr=ts.enum("media_status_enum",["neutral","in_progress","failed"]);ts.table("media_status",{media_id:it("media_id").notNull(),media_type:hs("media_type").notNull(),last_error_location:ii("last_error_location"),last_error_message:ii("last_error_message"),last_error_timestamp:ci("last_error_timestamp"),last_lesson_component_id:it("last_lesson_component_id"),last_lesson_component_type:ys("last_lesson_component_type"),status:cr("status").notNull().default("neutral"),...bs},e=>[Vi({columns:[e.media_id,e.media_type]})]),ts.table("mutations_log",{mutations_log_id:mi("mutations_log_id").primaryKey().defaultRandom(),actor_role:ii("actor_role"),actor_type:ii("actor_type"),app_id:ii("app_id"),changes:_t("changes").notNull(),operation:fs("operation").notNull(),record_key:_t("record_key").notNull(),table_name:ii("table_name").notNull(),...vs},e=>[Fi("idx_mutations_log_record_key").using("gin",e.record_key)]),ts.table("release_snapshots",{release_snapshot_id:mi("release_snapshot_id").primaryKey().defaultRandom(),_release_id:it("_release_id"),source_created_at:ci("source_created_at"),source_id:it("source_id"),source_row:_t("source_row"),source_schema:ii("source_schema").default(""),source_state:is("source_state").notNull(),source_table:ii("source_table").default(""),source_uid:Oe("source_uid",{length:16}),source_updated_at:ci("source_updated_at")},e=>[_({columns:[e._release_id],foreignColumns:[Ns.release_id]}),Fi("release_snapshots_source_idx").on(e.source_schema,e.source_table,e.source_id),Fi("release_snapshots_release_idx").on(e._release_id)]);const _r=ts.enum("contract_log_event_type_enum",["works_change","contract_change","works_added_to_contract"]);ts.table("tpc_contract_log",{tpc_contract_log_id:it("tpc_contract_log_id").primaryKey().generatedByDefaultAsIdentity(),tpc_contract_id:it("tpc_contract_id").notNull(),changed_at:ci("changed_at",{withTimezone:!0}).notNull(),event_type:_r("event_type").notNull(),payload:_t("payload")},e=>[_({name:"tpc_contract_log_tpc_contract_fk",columns:[e.tpc_contract_id],foreignColumns:[Vs.tpc_contract_id]})]);const dr=ts.enum("restrictions_type_enum",["Restrictions 1","Restrictions 2","Restrictions 3","Restrictions 4","Restrictions 5","Restrictions 6","Restrictions 7","Additional Restrictions"]),mr=ts.table("tpc_restriction_definitions",{tpc_restriction_definition_id:it("tpc_restriction_definition_id").primaryKey().generatedByDefaultAsIdentity(),restriction_text:ii("restriction_text").notNull(),type:dr("type").notNull(),...bs},e=>[d("tpc_restriction_definitions_type_unique").on(e.type)]);ts.table("tpc_restrictions",{tpc_contract_id:it("tpc_contract_id").notNull(),tpc_restriction_definition_id:it("tpc_restriction_definition_id").notNull(),...Ss,restriction_override:ii("restriction_override"),...bs},e=>[Vi({name:"tpc_restrictions_pk",columns:[e.tpc_contract_id,e.tpc_restriction_definition_id,e._state]}),_({name:"tpc_restrictions_tpc_contract_fk",columns:[e.tpc_contract_id],foreignColumns:[Vs.tpc_contract_id]}),_({name:"tpc_restrictions_tpc_restriction_definition_fk",columns:[e.tpc_restriction_definition_id],foreignColumns:[mr.tpc_restriction_definition_id]})]),es.view("unit_variant_exam_board_specs",{unit_variant_id:it("unit_variant_id"),exam_board_spec_id:it("exam_board_spec_id"),position:it("position"),_state:is("_state"),is_override:Be("is_override")}).as(i`
|
|
8
|
+
SELECT ovr.unit_variant_id, ovr.exam_board_spec_id, ovr.position,
|
|
9
|
+
ovr._state, true AS is_override
|
|
10
|
+
FROM raw.unit_variant_exam_board_specs_override ovr
|
|
11
|
+
|
|
12
|
+
UNION ALL
|
|
13
|
+
|
|
14
|
+
SELECT uv.unit_variant_id, base.exam_board_spec_id, base.position,
|
|
15
|
+
uv._state, false AS is_override
|
|
16
|
+
FROM raw.unit_variants uv
|
|
17
|
+
JOIN raw.unit_exam_board_specs base
|
|
18
|
+
ON base.unit_id = uv.unit_id AND base._state = uv._state
|
|
19
|
+
WHERE NOT EXISTS (
|
|
20
|
+
SELECT 1 FROM raw.unit_variant_exam_board_specs_override ovr
|
|
21
|
+
WHERE ovr.unit_variant_id = uv.unit_variant_id
|
|
22
|
+
AND ovr._state = uv._state
|
|
23
|
+
)
|
|
24
|
+
`),es.view("unit_variant_national_curriculum",{unit_variant_id:it("unit_variant_id"),national_curriculum_id:it("national_curriculum_id"),position:it("position"),_state:is("_state"),is_override:Be("is_override")}).as(i`
|
|
25
|
+
SELECT ovr.unit_variant_id, ovr.national_curriculum_id, ovr.position,
|
|
26
|
+
ovr._state, true AS is_override
|
|
27
|
+
FROM raw.unit_variant_national_curriculum_override ovr
|
|
28
|
+
|
|
29
|
+
UNION ALL
|
|
30
|
+
|
|
31
|
+
SELECT uv.unit_variant_id, base.national_curriculum_id, base.position,
|
|
32
|
+
uv._state, false AS is_override
|
|
33
|
+
FROM raw.unit_variants uv
|
|
34
|
+
JOIN raw.unit_national_curriculum base
|
|
35
|
+
ON base.unit_id = uv.unit_id AND base._state = uv._state
|
|
36
|
+
WHERE NOT EXISTS (
|
|
37
|
+
SELECT 1 FROM raw.unit_variant_national_curriculum_override ovr
|
|
38
|
+
WHERE ovr.unit_variant_id = uv.unit_variant_id
|
|
39
|
+
AND ovr._state = uv._state
|
|
40
|
+
)
|
|
41
|
+
`),es.view("unit_variant_subject_categories",{unit_variant_id:it("unit_variant_id"),subject_category_id:it("subject_category_id"),position:it("position"),_state:is("_state"),is_override:Be("is_override")}).as(i`
|
|
42
|
+
SELECT ovr.unit_variant_id, ovr.subject_category_id, ovr.position,
|
|
43
|
+
ovr._state, true AS is_override
|
|
44
|
+
FROM raw.unit_variant_subject_categories_override ovr
|
|
45
|
+
|
|
46
|
+
UNION ALL
|
|
47
|
+
|
|
48
|
+
SELECT uv.unit_variant_id, base.subject_category_id, base.position,
|
|
49
|
+
uv._state, false AS is_override
|
|
50
|
+
FROM raw.unit_variants uv
|
|
51
|
+
JOIN raw.unit_subject_categories base
|
|
52
|
+
ON base.unit_id = uv.unit_id AND base._state = uv._state
|
|
53
|
+
WHERE NOT EXISTS (
|
|
54
|
+
SELECT 1 FROM raw.unit_variant_subject_categories_override ovr
|
|
55
|
+
WHERE ovr.unit_variant_id = uv.unit_variant_id
|
|
56
|
+
AND ovr._state = uv._state
|
|
57
|
+
)
|
|
58
|
+
`);const pr=e(Ps),gr=t(Ps),fr=pr.extend({_state:n.literal("published")});export{gr as lessonInsertSchema,fr as lessonPublishedSchema,pr as lessonSelectSchema};
|
|
59
|
+
//# sourceMappingURL=index.js.map
|