@oaknational/oak-curriculum-schema-v2 0.0.18-alpha → 0.0.19-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/cjs/index.cjs CHANGED
@@ -1,13 +1,13 @@
1
- "use strict";var e=require("zod-to-camel-case"),i=require("drizzle-zod"),_=require("drizzle-orm"),t=require("zod");function s(e){return e&&e.__esModule?e:{default:e}}var n=s(e);const a=Symbol.for("drizzle:entityKind");function o(e,i){if(!e||"object"!=typeof e)return!1;if(e instanceof i)return!0;if(!Object.prototype.hasOwnProperty.call(i,a))throw new Error(`Class "${i.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 _=Object.getPrototypeOf(e).constructor;if(_)for(;_;){if(a in _&&_[a]===i[a])return!0;_=Object.getPrototypeOf(_)}return!1}class r{constructor(e,i){this.table=e,this.config=i,this.name=i.name,this.keyAsName=i.keyAsName,this.notNull=i.notNull,this.default=i.default,this.defaultFn=i.defaultFn,this.onUpdateFn=i.onUpdateFn,this.hasDefault=i.hasDefault,this.primary=i.primaryKey,this.isUnique=i.isUnique,this.uniqueName=i.uniqueName,this.uniqueType=i.uniqueType,this.dataType=i.dataType,this.columnType=i.columnType,this.generated=i.generated,this.generatedIdentity=i.generatedIdentity}static[a]="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 l{static[a]="ColumnBuilder";config;constructor(e,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:i,columnType:_,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 d=Symbol.for("drizzle:Name");class u{static[a]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(e,i){this.reference=()=>{const{name:i,columns:_,foreignColumns:t}=e();return{name:i,columns:_,foreignTable:t[0].table,foreignColumns:t}},i&&(this._onUpdate=i.onUpdate,this._onDelete=i.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,i){this.table=e,this.reference=i.reference,this.onUpdate=i._onUpdate,this.onDelete=i._onDelete}static[a]="PgForeignKey";reference;onUpdate;onDelete;getName(){const{name:e,columns:i,foreignColumns:_}=this.reference(),t=i.map(e=>e.name),s=_.map(e=>e.name),n=[this.table[d],...t,_[0].table[d],...s];return e??`${n.join("_")}_fk`}}function p(e){return new u(function(){const{name:i,columns:_,foreignColumns:t}=e;return{name:i,columns:_,foreignColumns:t}})}function m(e){return new h(e)}function g(e,i){return`${e[d]}_${i.join("_")}_unique`}class y{constructor(e,i){this.name=i,this.columns=e}static[a]="PgUniqueConstraintBuilder";columns;nullsNotDistinctConfig=!1;nullsNotDistinct(){return this.nullsNotDistinctConfig=!0,this}build(e){return new f(e,this.columns,this.nullsNotDistinctConfig,this.name)}}class h{static[a]="PgUniqueOnConstraintBuilder";name;constructor(e){this.name=e}on(...e){return new y(e,this.name)}}class f{constructor(e,i,_,t){this.table=e,this.columns=i,this.name=t??g(this.table,this.columns.map(e=>e.name)),this.nullsNotDistinct=_}static[a]="PgUniqueConstraint";columns;name;nullsNotDistinct=!1;getName(){return this.name}}function v(e,i,_){for(let t=i;t<e.length;t++){const s=e[t];if("\\"!==s){if('"'===s)return[e.slice(i,t).replace(/\\/g,""),t+1];if(!_&&(","===s||"}"===s))return[e.slice(i,t).replace(/\\/g,""),t]}else t++}return[e.slice(i).replace(/\\/g,""),e.length]}function b(e,i=0){const _=[];let t=i,s=!1;for(;t<e.length;){const n=e[t];if(","===n){(s||t===i)&&_.push(""),s=!0,t++;continue}if(s=!1,"\\"===n){t+=2;continue}if('"'===n){const[i,s]=v(e,t+1,!0);_.push(i),t=s;continue}if("}"===n)return[_,t+1];if("{"===n){const[i,s]=b(e,t+1);_.push(i),t=s;continue}const[a,o]=v(e,t,!1);_.push(a),t=o}return[_,t]}function k(e){const[i]=b(e,1);return i}function x(e){return`{${e.map(e=>Array.isArray(e)?x(e):"string"==typeof e?`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`:`${e}`).join(",")}}`}class S extends l{foreignKeyConfigs=[];static[a]="PgColumnBuilder";array(e){return new A(this.config.name,this,e)}references(e,i={}){return this.foreignKeyConfigs.push({ref:e,actions:i}),this}unique(e,i){return this.config.isUnique=!0,this.config.uniqueName=e,this.config.uniqueType=i?.nulls,this}generatedAlwaysAs(e){return this.config.generated={as:e,type:"always",mode:"stored"},this}buildForeignKeys(e,i){return this.foreignKeyConfigs.map(({ref:_,actions:t})=>function(e,...i){return e(...i)}((_,t)=>{const s=new u(()=>{const i=_();return{columns:[e],foreignColumns:[i]}});return t.onUpdate&&s.onUpdate(t.onUpdate),t.onDelete&&s.onDelete(t.onDelete),s.build(i)},_,t))}buildExtraConfigColumn(e){return new N(e,this.config)}}class w extends r{constructor(e,i){i.uniqueName||(i.uniqueName=g(e,[i.name])),super(e,i),this.table=e}static[a]="PgColumn"}class N extends w{static[a]="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 q{static[a]="IndexedColumn";constructor(e,i,_,t){this.name=e,this.keyAsName=i,this.type=_,this.indexConfig=t}name;keyAsName;type;indexConfig}class A extends S{static[a]="PgArrayBuilder";constructor(e,i,_){super(e,"array","PgArray"),this.config.baseBuilder=i,this.config.size=_}build(e){const i=this.config.baseBuilder.build(e);return new z(e,this.config,i)}}class z extends w{constructor(e,i,_,t){super(e,i),this.baseColumn=_,this.range=t,this.size=i.size}size;static[a]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${"number"==typeof this.size?this.size:""}]`}mapFromDriverValue(e){return"string"==typeof e&&(e=k(e)),e.map(e=>this.baseColumn.mapFromDriverValue(e))}mapToDriverValue(e,i=!1){const _=e.map(e=>null===e?null:o(this.baseColumn,z)?this.baseColumn.mapToDriverValue(e,!0):this.baseColumn.mapToDriverValue(e));return i?_:x(_)}}class C extends S{static[a]="PgEnumObjectColumnBuilder";constructor(e,i){super(e,"string","PgEnumObjectColumn"),this.config.enum=i}build(e){return new T(e,this.config)}}class T extends w{static[a]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(e,i){super(e,i),this.enum=i.enum}getSQLType(){return this.enum.enumName}}const j=Symbol.for("drizzle:isPgEnum");class O extends S{static[a]="PgEnumColumnBuilder";constructor(e,i){super(e,"string","PgEnumColumn"),this.config.enum=i}build(e){return new $(e,this.config)}}class $ extends w{static[a]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(e,i){super(e,i),this.enum=i.enum}getSQLType(){return this.enum.enumName}}class D{static[a]="Subquery";constructor(e,i,_,t=!1,s=[]){this._={brand:"Subquery",sql:e,selectedFields:i,alias:_,isWith:t,usedTables:s}}}class L extends D{static[a]="WithSubquery"}const P={startActiveSpan:(e,i)=>i()},B=Symbol.for("drizzle:ViewBaseConfig"),I=Symbol.for("drizzle:Schema"),E=Symbol.for("drizzle:Columns"),F=Symbol.for("drizzle:ExtraConfigColumns"),V=Symbol.for("drizzle:OriginalName"),Q=Symbol.for("drizzle:BaseName"),R=Symbol.for("drizzle:IsAlias"),J=Symbol.for("drizzle:ExtraConfigBuilder"),U=Symbol.for("drizzle:IsDrizzleTable");class M{static[a]="Table";static Symbol={Name:d,Schema:I,OriginalName:V,Columns:E,ExtraConfigColumns:F,BaseName:Q,IsAlias:R,ExtraConfigBuilder:J};[d];[V];[I];[E];[F];[Q];[R]=!1;[U]=!0;[J]=void 0;constructor(e,i,_){this[d]=this[V]=e,this[I]=i,this[Q]=_}}function K(e){return e[d]}function W(e){return`${e[I]??"public"}.${e[d]}`}function H(e){return null!=e&&"function"==typeof e.getSQL}class Y{static[a]="StringChunk";value;constructor(e){this.value=Array.isArray(e)?e:[e]}getSQL(){return new G([this])}}class G{constructor(e){this.queryChunks=e;for(const i of e)if(o(i,M)){const e=i[M.Symbol.Schema];this.usedTables.push(void 0===e?i[M.Symbol.Name]:e+"."+i[M.Symbol.Name])}}static[a]="SQL";decoder=X;shouldInlineParams=!1;usedTables=[];append(e){return this.queryChunks.push(...e.queryChunks),this}toQuery(e){return P.startActiveSpan("drizzle.buildSQL",i=>{const _=this.buildQueryFromSourceParams(this.queryChunks,e);return i?.setAttributes({"drizzle.query.text":_.sql,"drizzle.query.params":JSON.stringify(_.params)}),_})}buildQueryFromSourceParams(e,i){const _=Object.assign({},i,{inlineParams:i.inlineParams||this.shouldInlineParams,paramStartIndex:i.paramStartIndex||{value:0}}),{casing:t,escapeName:s,escapeParam:n,prepareTyping:a,inlineParams:l,paramStartIndex:d}=_;return function(e){const i={sql:"",params:[]};for(const _ of e)i.sql+=_.sql,i.params.push(..._.params),_.typings?.length&&(i.typings||(i.typings=[]),i.typings.push(..._.typings));return i}(e.map(e=>{if(o(e,Y))return{sql:e.value.join(""),params:[]};if(o(e,Z))return{sql:s(e.value),params:[]};if(void 0===e)return{sql:"",params:[]};if(Array.isArray(e)){const i=[new Y("(")];for(const[_,t]of e.entries())i.push(t),_<e.length-1&&i.push(new Y(", "));return i.push(new Y(")")),this.buildQueryFromSourceParams(i,_)}if(o(e,G))return this.buildQueryFromSourceParams(e.queryChunks,{..._,inlineParams:l||e.shouldInlineParams});if(o(e,M)){const i=e[M.Symbol.Schema],_=e[M.Symbol.Name];return{sql:void 0===i||e[R]?s(_):s(i)+"."+s(_),params:[]}}if(o(e,r)){const _=t.getColumnCasing(e);if("indexes"===i.invokeSource)return{sql:s(_),params:[]};const n=e.table[M.Symbol.Schema];return{sql:e.table[R]||void 0===n?s(e.table[M.Symbol.Name])+"."+s(_):s(n)+"."+s(e.table[M.Symbol.Name])+"."+s(_),params:[]}}if(o(e,ae)){const i=e[B].schema,_=e[B].name;return{sql:void 0===i||e[B].isAlias?s(_):s(i)+"."+s(_),params:[]}}if(o(e,ie)){if(o(e.value,se))return{sql:n(d.value++,e),params:[e],typings:["none"]};const i=null===e.value?null:e.encoder.mapToDriverValue(e.value);if(o(i,G))return this.buildQueryFromSourceParams([i],_);if(l)return{sql:this.mapInlineParam(i,_),params:[]};let t=["none"];return a&&(t=[a(e.encoder)]),{sql:n(d.value++,i),params:[i],typings:t}}return o(e,se)?{sql:n(d.value++,e),params:[e],typings:["none"]}:o(e,G.Aliased)&&void 0!==e.fieldAlias?{sql:s(e.fieldAlias),params:[]}:o(e,D)?e._.isWith?{sql:s(e._.alias),params:[]}:this.buildQueryFromSourceParams([new Y("("),e._.sql,new Y(") "),new Z(e._.alias)],_):(u=e)&&"function"==typeof u&&j in u&&!0===u[j]?e.schema?{sql:s(e.schema)+"."+s(e.enumName),params:[]}:{sql:s(e.enumName),params:[]}:H(e)?e.shouldOmitSQLParens?.()?this.buildQueryFromSourceParams([e.getSQL()],_):this.buildQueryFromSourceParams([new Y("("),e.getSQL(),new Y(")")],_):l?{sql:this.mapInlineParam(e,_),params:[]}:{sql:n(d.value++,e),params:[e],typings:["none"]};var u}))}mapInlineParam(e,{escapeString:i}){if(null===e)return"null";if("number"==typeof e||"boolean"==typeof e)return e.toString();if("string"==typeof e)return i(e);if("object"==typeof e){const _=e.toString();return i("[object Object]"===_?JSON.stringify(e):_)}throw new Error("Unexpected param value: "+e)}getSQL(){return this}as(e){return void 0===e?this:new G.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 Z{constructor(e){this.value=e}static[a]="Name";brand;getSQL(){return new G([this])}}const X={mapFromDriverValue:e=>e},ee={mapToDriverValue:e=>e};class ie{constructor(e,i=ee){this.value=e,this.encoder=i}static[a]="Param";brand;getSQL(){return new G([this])}}function _e(e,...i){const _=[];(i.length>0||e.length>0&&""!==e[0])&&_.push(new Y(e[0]));for(const[t,s]of i.entries())_.push(s,new Y(e[t+1]));return new G(_)}var te;(te=_e||(_e={})).empty=function(){return new G([])},te.fromList=function(e){return new G(e)},te.raw=function(e){return new G([new Y(e)])},te.join=function(e,i){const _=[];for(const[t,s]of e.entries())t>0&&void 0!==i&&_.push(i),_.push(s);return new G(_)},te.identifier=function(e){return new Z(e)},te.placeholder=function(e){return new se(e)},te.param=function(e,i){return new ie(e,i)},(e=>{class i{constructor(e,i){this.sql=e,this.fieldAlias=i}static[a]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new i(this.sql,this.fieldAlias)}}e.Aliased=i})(G||(G={}));class se{constructor(e){this.name=e}static[a]="Placeholder";getSQL(){return new G([this])}}const ne=Symbol.for("drizzle:IsDrizzleView");class ae{static[a]="View";[B];[ne]=!0;constructor({name:e,schema:i,selectedFields:_,query:t}){this[B]={name:e,originalName:e,schema:i,selectedFields:_,query:t,isExisting:!t,isAlias:!1}}getSQL(){return new G([this])}}r.prototype.getSQL=function(){return new G([this])},M.prototype.getSQL=function(){return new G([this])},D.prototype.getSQL=function(){return new G([this])};class oe{constructor(e){this.table=e}static[a]="ColumnAliasProxyHandler";get(e,i){return"table"===i?this.table:e[i]}}class re{constructor(e,i){this.alias=e,this.replaceOriginalName=i}static[a]="TableAliasProxyHandler";get(e,i){if(i===M.Symbol.IsAlias)return!0;if(i===M.Symbol.Name)return this.alias;if(this.replaceOriginalName&&i===M.Symbol.OriginalName)return this.alias;if(i===B)return{...e[B],name:this.alias,isAlias:!0};if(i===M.Symbol.Columns){const i=e[M.Symbol.Columns];if(!i)return i;const _={};return Object.keys(i).map(t=>{_[t]=new Proxy(i[t],new oe(new Proxy(e,this)))}),_}const _=e[i];return o(_,r)?new Proxy(_,new oe(new Proxy(e,this))):_}}function le(e,i){return new Proxy(e,new re(i,!1))}function de(e,i){return new Proxy(e,new oe(new Proxy(e.table,new re(i,!1))))}function ue(e,i){return new G.Aliased(ce(e.sql,i),e.fieldAlias)}function ce(e,i){return _e.join(e.queryChunks.map(e=>o(e,r)?de(e,i):o(e,G)?ce(e,i):o(e,G.Aliased)?ue(e,i):e))}class pe{constructor(e,i){this.name=e,this.value=i}static[a]="PgCheckBuilder";brand;build(e){return new me(e,this)}}class me{constructor(e,i){this.table=e,this.name=i.name,this.value=i.value}static[a]="PgCheck";name;value}function ge(e,i){return new pe(e,i)}function ye(e,i){return Object.entries(e).reduce((e,[_,t])=>{if("string"!=typeof _)return e;const s=i?[...i,_]:[_];return o(t,r)||o(t,G)||o(t,G.Aliased)||o(t,D)?e.push({path:s,field:t}):o(t,M)?e.push(...ye(t[M.Symbol.Columns],s)):e.push(...ye(t,s)),e},[])}function he(e,i){const _=Object.keys(e),t=Object.keys(i);if(_.length!==t.length)return!1;for(const[e,i]of _.entries())if(i!==t[e])return!1;return!0}function fe(e){return e[M.Symbol.Columns]}function ve(e){return o(e,D)?e._.alias:o(e,ae)?e[B].name:o(e,G)?void 0:e[M.Symbol.IsAlias]?e[M.Symbol.Name]:e[M.Symbol.BaseName]}function be(e,i){return{name:"string"==typeof e&&e.length>0?e:"",config:"object"==typeof e?e:i}}"undefined"!=typeof TextDecoder&&new TextDecoder;class ke extends S{static[a]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(e){if(e){const{name:i,..._}=e;this.config.generatedIdentity={type:"always",sequenceName:i,sequenceOptions:_}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(e){if(e){const{name:i,..._}=e;this.config.generatedIdentity={type:"byDefault",sequenceName:i,sequenceOptions:_}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}class xe extends ke{static[a]="PgBigInt53Builder";constructor(e){super(e,"number","PgBigInt53")}build(e){return new Se(e,this.config)}}class Se extends w{static[a]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(e){return"number"==typeof e?e:Number(e)}}class we extends ke{static[a]="PgBigInt64Builder";constructor(e){super(e,"bigint","PgBigInt64")}build(e){return new Ne(e,this.config)}}class Ne extends w{static[a]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(e){return BigInt(e)}}function qe(e,i){const{name:_,config:t}=be(e,i);return"number"===t.mode?new xe(_):new we(_)}class Ae extends S{static[a]="PgBigSerial53Builder";constructor(e){super(e,"number","PgBigSerial53"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new ze(e,this.config)}}class ze extends w{static[a]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(e){return"number"==typeof e?e:Number(e)}}class Ce extends S{static[a]="PgBigSerial64Builder";constructor(e){super(e,"bigint","PgBigSerial64"),this.config.hasDefault=!0}build(e){return new Te(e,this.config)}}class Te extends w{static[a]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(e){return BigInt(e)}}function je(e,i){const{name:_,config:t}=be(e,i);return"number"===t.mode?new Ae(_):new Ce(_)}class Oe extends S{static[a]="PgBooleanBuilder";constructor(e){super(e,"boolean","PgBoolean")}build(e){return new $e(e,this.config)}}class $e extends w{static[a]="PgBoolean";getSQLType(){return"boolean"}}function De(e){return new Oe(e??"")}class Le extends S{static[a]="PgCharBuilder";constructor(e,i){super(e,"string","PgChar"),this.config.length=i.length,this.config.enumValues=i.enum}build(e){return new Pe(e,this.config)}}class Pe extends w{static[a]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return void 0===this.length?"char":`char(${this.length})`}}function Be(e,i={}){const{name:_,config:t}=be(e,i);return new Le(_,t)}class Ie extends S{static[a]="PgCidrBuilder";constructor(e){super(e,"string","PgCidr")}build(e){return new Ee(e,this.config)}}class Ee extends w{static[a]="PgCidr";getSQLType(){return"cidr"}}function Fe(e){return new Ie(e??"")}class Ve extends S{static[a]="PgCustomColumnBuilder";constructor(e,i,_){super(e,"custom","PgCustomColumn"),this.config.fieldConfig=i,this.config.customTypeParams=_}build(e){return new Qe(e,this.config)}}class Qe extends w{static[a]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(e,i){super(e,i),this.sqlName=i.customTypeParams.dataType(i.fieldConfig),this.mapTo=i.customTypeParams.toDriver,this.mapFrom=i.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 Re(e){return(i,_)=>{const{name:t,config:s}=be(i,_);return new Ve(t,s,e)}}class Je extends S{static[a]="PgDateColumnBaseBuilder";defaultNow(){return this.default(_e`now()`)}}class Ue extends Je{static[a]="PgDateBuilder";constructor(e){super(e,"date","PgDate")}build(e){return new Me(e,this.config)}}class Me extends w{static[a]="PgDate";getSQLType(){return"date"}mapFromDriverValue(e){return"string"==typeof e?new Date(e):e}mapToDriverValue(e){return e.toISOString()}}class Ke extends Je{static[a]="PgDateStringBuilder";constructor(e){super(e,"string","PgDateString")}build(e){return new We(e,this.config)}}class We extends w{static[a]="PgDateString";getSQLType(){return"date"}mapFromDriverValue(e){return"string"==typeof e?e:e.toISOString().slice(0,-14)}}function He(e,i){const{name:_,config:t}=be(e,i);return"date"===t?.mode?new Ue(_):new Ke(_)}class Ye extends S{static[a]="PgDoublePrecisionBuilder";constructor(e){super(e,"number","PgDoublePrecision")}build(e){return new Ge(e,this.config)}}class Ge extends w{static[a]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(e){return"string"==typeof e?Number.parseFloat(e):e}}function Ze(e){return new Ye(e??"")}class Xe extends S{static[a]="PgInetBuilder";constructor(e){super(e,"string","PgInet")}build(e){return new ei(e,this.config)}}class ei extends w{static[a]="PgInet";getSQLType(){return"inet"}}function ii(e){return new Xe(e??"")}class _i extends ke{static[a]="PgIntegerBuilder";constructor(e){super(e,"number","PgInteger")}build(e){return new ti(e,this.config)}}class ti extends w{static[a]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(e){return"string"==typeof e?Number.parseInt(e):e}}function si(e){return new _i(e??"")}class ni extends S{static[a]="PgIntervalBuilder";constructor(e,i){super(e,"string","PgInterval"),this.config.intervalConfig=i}build(e){return new ai(e,this.config)}}class ai extends w{static[a]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){return`interval${this.fields?` ${this.fields}`:""}${this.precision?`(${this.precision})`:""}`}}function oi(e,i={}){const{name:_,config:t}=be(e,i);return new ni(_,t)}class ri extends S{static[a]="PgJsonBuilder";constructor(e){super(e,"json","PgJson")}build(e){return new li(e,this.config)}}class li extends w{static[a]="PgJson";constructor(e,i){super(e,i)}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 di(e){return new ri(e??"")}class ui extends S{static[a]="PgJsonbBuilder";constructor(e){super(e,"json","PgJsonb")}build(e){return new ci(e,this.config)}}class ci extends w{static[a]="PgJsonb";constructor(e,i){super(e,i)}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 pi(e){return new ui(e??"")}class mi extends S{static[a]="PgLineBuilder";constructor(e){super(e,"array","PgLine")}build(e){return new gi(e,this.config)}}class gi extends w{static[a]="PgLine";getSQLType(){return"line"}mapFromDriverValue(e){const[i,_,t]=e.slice(1,-1).split(",");return[Number.parseFloat(i),Number.parseFloat(_),Number.parseFloat(t)]}mapToDriverValue(e){return`{${e[0]},${e[1]},${e[2]}}`}}class yi extends S{static[a]="PgLineABCBuilder";constructor(e){super(e,"json","PgLineABC")}build(e){return new hi(e,this.config)}}class hi extends w{static[a]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(e){const[i,_,t]=e.slice(1,-1).split(",");return{a:Number.parseFloat(i),b:Number.parseFloat(_),c:Number.parseFloat(t)}}mapToDriverValue(e){return`{${e.a},${e.b},${e.c}}`}}function fi(e,i){const{name:_,config:t}=be(e,i);return t?.mode&&"tuple"!==t.mode?new yi(_):new mi(_)}class vi extends S{static[a]="PgMacaddrBuilder";constructor(e){super(e,"string","PgMacaddr")}build(e){return new bi(e,this.config)}}class bi extends w{static[a]="PgMacaddr";getSQLType(){return"macaddr"}}function ki(e){return new vi(e??"")}class xi extends S{static[a]="PgMacaddr8Builder";constructor(e){super(e,"string","PgMacaddr8")}build(e){return new Si(e,this.config)}}class Si extends w{static[a]="PgMacaddr8";getSQLType(){return"macaddr8"}}function wi(e){return new xi(e??"")}class Ni extends S{static[a]="PgNumericBuilder";constructor(e,i,_){super(e,"string","PgNumeric"),this.config.precision=i,this.config.scale=_}build(e){return new qi(e,this.config)}}class qi extends w{static[a]="PgNumeric";precision;scale;constructor(e,i){super(e,i),this.precision=i.precision,this.scale=i.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 Ai extends S{static[a]="PgNumericNumberBuilder";constructor(e,i,_){super(e,"number","PgNumericNumber"),this.config.precision=i,this.config.scale=_}build(e){return new zi(e,this.config)}}class zi extends w{static[a]="PgNumericNumber";precision;scale;constructor(e,i){super(e,i),this.precision=i.precision,this.scale=i.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 Ci extends S{static[a]="PgNumericBigIntBuilder";constructor(e,i,_){super(e,"bigint","PgNumericBigInt"),this.config.precision=i,this.config.scale=_}build(e){return new Ti(e,this.config)}}class Ti extends w{static[a]="PgNumericBigInt";precision;scale;constructor(e,i){super(e,i),this.precision=i.precision,this.scale=i.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 ji(e,i){const{name:_,config:t}=be(e,i),s=t?.mode;return"number"===s?new Ai(_,t?.precision,t?.scale):"bigint"===s?new Ci(_,t?.precision,t?.scale):new Ni(_,t?.precision,t?.scale)}class Oi extends S{static[a]="PgPointTupleBuilder";constructor(e){super(e,"array","PgPointTuple")}build(e){return new $i(e,this.config)}}class $i extends w{static[a]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(e){if("string"==typeof e){const[i,_]=e.slice(1,-1).split(",");return[Number.parseFloat(i),Number.parseFloat(_)]}return[e.x,e.y]}mapToDriverValue(e){return`(${e[0]},${e[1]})`}}class Di extends S{static[a]="PgPointObjectBuilder";constructor(e){super(e,"json","PgPointObject")}build(e){return new Li(e,this.config)}}class Li extends w{static[a]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(e){if("string"==typeof e){const[i,_]=e.slice(1,-1).split(",");return{x:Number.parseFloat(i),y:Number.parseFloat(_)}}return e}mapToDriverValue(e){return`(${e.x},${e.y})`}}function Pi(e,i){const{name:_,config:t}=be(e,i);return t?.mode&&"tuple"!==t.mode?new Di(_):new Oi(_)}function Bi(e,i){const _=new ArrayBuffer(8),t=new DataView(_);for(let _=0;_<8;_++)t.setUint8(_,e[i+_]);return t.getFloat64(0,!0)}function Ii(e){const i=function(e){const i=[];for(let _=0;_<e.length;_+=2)i.push(Number.parseInt(e.slice(_,_+2),16));return new Uint8Array(i)}(e);let _=0;const t=i[_];_+=1;const s=new DataView(i.buffer),n=s.getUint32(_,1===t);if(_+=4,536870912&n&&(s.getUint32(_,1===t),_+=4),1==(65535&n)){const e=Bi(i,_);_+=8;const t=Bi(i,_);return _+=8,[e,t]}throw new Error("Unsupported geometry type")}class Ei extends S{static[a]="PgGeometryBuilder";constructor(e){super(e,"array","PgGeometry")}build(e){return new Fi(e,this.config)}}class Fi extends w{static[a]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(e){return Ii(e)}mapToDriverValue(e){return`point(${e[0]} ${e[1]})`}}class Vi extends S{static[a]="PgGeometryObjectBuilder";constructor(e){super(e,"json","PgGeometryObject")}build(e){return new Qi(e,this.config)}}class Qi extends w{static[a]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(e){const i=Ii(e);return{x:i[0],y:i[1]}}mapToDriverValue(e){return`point(${e.x} ${e.y})`}}function Ri(e,i){const{name:_,config:t}=be(e,i);return t?.mode&&"tuple"!==t.mode?new Vi(_):new Ei(_)}class Ji extends S{static[a]="PgRealBuilder";constructor(e,i){super(e,"number","PgReal"),this.config.length=i}build(e){return new Ui(e,this.config)}}class Ui extends w{static[a]="PgReal";constructor(e,i){super(e,i)}getSQLType(){return"real"}mapFromDriverValue=e=>"string"==typeof e?Number.parseFloat(e):e}function Mi(e){return new Ji(e??"")}class Ki extends S{static[a]="PgSerialBuilder";constructor(e){super(e,"number","PgSerial"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new Wi(e,this.config)}}class Wi extends w{static[a]="PgSerial";getSQLType(){return"serial"}}function Hi(e){return new Ki(e??"")}class Yi extends ke{static[a]="PgSmallIntBuilder";constructor(e){super(e,"number","PgSmallInt")}build(e){return new Gi(e,this.config)}}class Gi extends w{static[a]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=e=>"string"==typeof e?Number(e):e}function Zi(e){return new Yi(e??"")}class Xi extends S{static[a]="PgSmallSerialBuilder";constructor(e){super(e,"number","PgSmallSerial"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new e_(e,this.config)}}class e_ extends w{static[a]="PgSmallSerial";getSQLType(){return"smallserial"}}function i_(e){return new Xi(e??"")}class __ extends S{static[a]="PgTextBuilder";constructor(e,i){super(e,"string","PgText"),this.config.enumValues=i.enum}build(e){return new t_(e,this.config)}}class t_ extends w{static[a]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function s_(e,i={}){const{name:_,config:t}=be(e,i);return new __(_,t)}class n_ extends Je{constructor(e,i,_){super(e,"string","PgTime"),this.withTimezone=i,this.precision=_,this.config.withTimezone=i,this.config.precision=_}static[a]="PgTimeBuilder";build(e){return new a_(e,this.config)}}class a_ extends w{static[a]="PgTime";withTimezone;precision;constructor(e,i){super(e,i),this.withTimezone=i.withTimezone,this.precision=i.precision}getSQLType(){return`time${void 0===this.precision?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function o_(e,i={}){const{name:_,config:t}=be(e,i);return new n_(_,t.withTimezone??!1,t.precision)}class r_ extends Je{static[a]="PgTimestampBuilder";constructor(e,i,_){super(e,"date","PgTimestamp"),this.config.withTimezone=i,this.config.precision=_}build(e){return new l_(e,this.config)}}class l_ extends w{static[a]="PgTimestamp";withTimezone;precision;constructor(e,i){super(e,i),this.withTimezone=i.withTimezone,this.precision=i.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 d_ extends Je{static[a]="PgTimestampStringBuilder";constructor(e,i,_){super(e,"string","PgTimestampString"),this.config.withTimezone=i,this.config.precision=_}build(e){return new u_(e,this.config)}}class u_ extends w{static[a]="PgTimestampString";withTimezone;precision;constructor(e,i){super(e,i),this.withTimezone=i.withTimezone,this.precision=i.precision}getSQLType(){return`timestamp${void 0===this.precision?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue(e){if("string"==typeof e)return e;const i=e.toISOString().slice(0,-1).replace("T"," ");if(this.withTimezone){const _=e.getTimezoneOffset();return`${i}${_<=0?"+":"-"}${Math.floor(Math.abs(_)/60).toString().padStart(2,"0")}`}return i}}function c_(e,i={}){const{name:_,config:t}=be(e,i);return"string"===t?.mode?new d_(_,t.withTimezone??!1,t.precision):new r_(_,t?.withTimezone??!1,t?.precision)}class p_ extends S{static[a]="PgUUIDBuilder";constructor(e){super(e,"string","PgUUID")}defaultRandom(){return this.default(_e`gen_random_uuid()`)}build(e){return new m_(e,this.config)}}class m_ extends w{static[a]="PgUUID";getSQLType(){return"uuid"}}function g_(e){return new p_(e??"")}class y_ extends S{static[a]="PgVarcharBuilder";constructor(e,i){super(e,"string","PgVarchar"),this.config.length=i.length,this.config.enumValues=i.enum}build(e){return new h_(e,this.config)}}class h_ extends w{static[a]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return void 0===this.length?"varchar":`varchar(${this.length})`}}function f_(e,i={}){const{name:_,config:t}=be(e,i);return new y_(_,t)}class v_ extends S{static[a]="PgBinaryVectorBuilder";constructor(e,i){super(e,"string","PgBinaryVector"),this.config.dimensions=i.dimensions}build(e){return new b_(e,this.config)}}class b_ extends w{static[a]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function k_(e,i){const{name:_,config:t}=be(e,i);return new v_(_,t)}class x_ extends S{static[a]="PgHalfVectorBuilder";constructor(e,i){super(e,"array","PgHalfVector"),this.config.dimensions=i.dimensions}build(e){return new S_(e,this.config)}}class S_ extends w{static[a]="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 w_(e,i){const{name:_,config:t}=be(e,i);return new x_(_,t)}class N_ extends S{static[a]="PgSparseVectorBuilder";constructor(e,i){super(e,"string","PgSparseVector"),this.config.dimensions=i.dimensions}build(e){return new q_(e,this.config)}}class q_ extends w{static[a]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function A_(e,i){const{name:_,config:t}=be(e,i);return new N_(_,t)}class z_ extends S{static[a]="PgVectorBuilder";constructor(e,i){super(e,"array","PgVector"),this.config.dimensions=i.dimensions}build(e){return new C_(e,this.config)}}class C_ extends w{static[a]="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 T_(e,i){const{name:_,config:t}=be(e,i);return new z_(_,t)}class j_{static[a]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(e){return this.then(void 0,e)}finally(e){return this.then(i=>(e?.(),i),i=>{throw e?.(),i})}then(e,i){return this.execute().then(e,i)}}class O_{static[a]="SelectionProxyHandler";config;constructor(e){this.config={...e}}get(e,i){if("_"===i)return{...e._,selectedFields:new Proxy(e._.selectedFields,this)};if(i===B)return{...e[B],selectedFields:new Proxy(e[B].selectedFields,this)};if("symbol"==typeof i)return e[i];const _=(o(e,D)?e._.selectedFields:o(e,ae)?e[B].selectedFields:e)[i];if(o(_,G.Aliased)){if("sql"===this.config.sqlAliasedBehavior&&!_.isSelectionField)return _.sql;const e=_.clone();return e.isSelectionField=!0,e}if(o(_,G)){if("sql"===this.config.sqlBehavior)return _;throw new Error(`You tried to reference "${i}" 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 o(_,r)?this.config.alias?new Proxy(_,new oe(new Proxy(_.table,new re(this.config.alias,this.config.replaceOriginalName??!1)))):_:"object"!=typeof _||null===_?_:new Proxy(_,new O_(this.config))}}const $_=Symbol.for("drizzle:PgInlineForeignKeys"),D_=Symbol.for("drizzle:EnableRLS");class L_ extends M{static[a]="PgTable";static Symbol=Object.assign({},M.Symbol,{InlineForeignKeys:$_,EnableRLS:D_});[$_]=[];[D_]=!1;[M.Symbol.ExtraConfigBuilder]=void 0;[M.Symbol.ExtraConfigColumns]={}}function P_(e,i,_,t,s=e){const n=new L_(e,t,s),a="function"==typeof i?i({bigint:qe,bigserial:je,boolean:De,char:Be,cidr:Fe,customType:Re,date:He,doublePrecision:Ze,inet:ii,integer:si,interval:oi,json:di,jsonb:pi,line:fi,macaddr:ki,macaddr8:wi,numeric:ji,point:Pi,geometry:Ri,real:Mi,serial:Hi,smallint:Zi,smallserial:i_,text:s_,time:o_,timestamp:c_,uuid:g_,varchar:f_,bit:k_,halfvec:w_,sparsevec:A_,vector:T_}):i,o=Object.fromEntries(Object.entries(a).map(([e,i])=>{const _=i;_.setName(e);const t=_.build(n);return n[$_].push(..._.buildForeignKeys(t,n)),[e,t]})),r=Object.fromEntries(Object.entries(a).map(([e,i])=>{const _=i;_.setName(e);return[e,_.buildExtraConfigColumn(n)]})),l=Object.assign(n,o);return l[M.Symbol.Columns]=o,l[M.Symbol.ExtraConfigColumns]=r,_&&(l[L_.Symbol.ExtraConfigBuilder]=_),Object.assign(l,{enableRLS:()=>(l[L_.Symbol.EnableRLS]=!0,l)})}const B_=(e,i,_)=>P_(e,i,_,void 0);class I_{constructor(e,i){this.unique=e,this.name=i}static[a]="PgIndexBuilderOn";on(...e){return new E_(e.map(e=>{if(o(e,G))return e;const i=new q(e.name,!!e.keyAsName,e.columnType,e.indexConfig);return e.indexConfig=JSON.parse(JSON.stringify(e.defaultConfig)),i}),this.unique,!1,this.name)}onOnly(...e){return new E_(e.map(e=>{if(o(e,G))return e;const i=new q(e.name,!!e.keyAsName,e.columnType,e.indexConfig);return e.indexConfig=e.defaultConfig,i}),this.unique,!0,this.name)}using(e,...i){return new E_(i.map(e=>{if(o(e,G))return e;const i=new q(e.name,!!e.keyAsName,e.columnType,e.indexConfig);return e.indexConfig=JSON.parse(JSON.stringify(e.defaultConfig)),i}),this.unique,!0,this.name,e)}}class E_{static[a]="PgIndexBuilder";config;constructor(e,i,_,t,s="btree"){this.config={name:t,columns:e,unique:i,only:_,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 F_(this.config,e)}}class F_{static[a]="PgIndex";config;constructor(e,i){this.config={...e,table:i}}}function V_(e){return new I_(!1,e)}function Q_(e){return new I_(!0,e)}function R_(...e){return e[0].columns?new J_(e[0].columns,e[0].name):new J_(e)}class J_{static[a]="PgPrimaryKeyBuilder";columns;name;constructor(e,i){this.columns=e,this.name=i}build(e){return new U_(e,this.columns,this.name)}}class U_{constructor(e,i,_){this.table=e,this.columns=i,this.name=_}static[a]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[L_.Symbol.Name]}_${this.columns.map(e=>e.name).join("_")}_pk`}}const M_=Symbol.for("drizzle:PgViewConfig");function K_(e){return(e.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map(e=>e.toLowerCase()).join("_")}function W_(e){return(e.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((e,i,_)=>e+(0===_?i.toLowerCase():`${i[0].toUpperCase()}${i.slice(1)}`),"")}function H_(e){return e}class Y_{static[a]="CasingCache";cache={};cachedTables={};convert;constructor(e){this.convert="snake_case"===e?K_:"camelCase"===e?W_:H_}getColumnCasing(e){if(!e.keyAsName)return e.name;const i=`${e.table[M.Symbol.Schema]??"public"}.${e.table[M.Symbol.OriginalName]}.${e.name}`;return this.cache[i]||this.cacheTable(e.table),this.cache[i]}cacheTable(e){const i=`${e[M.Symbol.Schema]??"public"}.${e[M.Symbol.OriginalName]}`;if(!this.cachedTables[i]){for(const _ of Object.values(e[M.Symbol.Columns])){const e=`${i}.${_.name}`;this.cache[e]=this.convert(_.name)}this.cachedTables[i]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class G_ extends Error{static[a]="DrizzleError";constructor({message:e,cause:i}){super(e),this.name="DrizzleError",this.cause=i}}function Z_(e,i){return!function(e){return"object"==typeof e&&null!==e&&"mapToDriverValue"in e&&"function"==typeof e.mapToDriverValue}(i)||H(e)||o(e,ie)||o(e,se)||o(e,r)||o(e,M)||o(e,ae)?e:new ie(e,i)}const X_=(e,i)=>_e`${e} = ${Z_(i,e)}`,et=(e,i)=>_e`${e} <> ${Z_(i,e)}`;function it(...e){const i=e.filter(e=>void 0!==e);if(0!==i.length)return 1===i.length?new G(i):new G([new Y("("),_e.join(i,new Y(" and ")),new Y(")")])}function _t(...e){const i=e.filter(e=>void 0!==e);if(0!==i.length)return 1===i.length?new G(i):new G([new Y("("),_e.join(i,new Y(" or ")),new Y(")")])}function tt(e){return _e`not ${e}`}const st=(e,i)=>_e`${e} > ${Z_(i,e)}`,nt=(e,i)=>_e`${e} >= ${Z_(i,e)}`,at=(e,i)=>_e`${e} < ${Z_(i,e)}`,ot=(e,i)=>_e`${e} <= ${Z_(i,e)}`;function rt(e,i){return Array.isArray(i)?0===i.length?_e`false`:_e`${e} in ${i.map(i=>Z_(i,e))}`:_e`${e} in ${Z_(i,e)}`}function lt(e,i){return Array.isArray(i)?0===i.length?_e`true`:_e`${e} not in ${i.map(i=>Z_(i,e))}`:_e`${e} not in ${Z_(i,e)}`}function dt(e){return _e`${e} is null`}function ut(e){return _e`${e} is not null`}function ct(e){return _e`exists ${e}`}function pt(e){return _e`not exists ${e}`}function mt(e,i,_){return _e`${e} between ${Z_(i,e)} and ${Z_(_,e)}`}function gt(e,i,_){return _e`${e} not between ${Z_(i,e)} and ${Z_(_,e)}`}function yt(e,i){return _e`${e} like ${i}`}function ht(e,i){return _e`${e} not like ${i}`}function ft(e,i){return _e`${e} ilike ${i}`}function vt(e,i){return _e`${e} not ilike ${i}`}function bt(e){return _e`${e} asc`}function kt(e){return _e`${e} desc`}class xt{constructor(e,i,_){this.sourceTable=e,this.referencedTable=i,this.relationName=_,this.referencedTableName=i[M.Symbol.Name]}static[a]="Relation";referencedTableName;fieldName}class St extends xt{constructor(e,i,_,t){super(e,i,_?.relationName),this.config=_,this.isNullable=t}static[a]="One";withFieldName(e){const i=new St(this.sourceTable,this.referencedTable,this.config,this.isNullable);return i.fieldName=e,i}}class wt extends xt{constructor(e,i,_){super(e,i,_?.relationName),this.config=_}static[a]="Many";withFieldName(e){const i=new wt(this.sourceTable,this.referencedTable,this.config);return i.fieldName=e,i}}function Nt(e,i,_){if(o(_,St)&&_.config)return{fields:_.config.fields,references:_.config.references};const t=i[W(_.referencedTable)];if(!t)throw new Error(`Table "${_.referencedTable[M.Symbol.Name]}" not found in schema`);const s=e[t];if(!s)throw new Error(`Table "${t}" not found in schema`);const n=_.sourceTable,a=i[W(n)];if(!a)throw new Error(`Table "${n[M.Symbol.Name]}" not found in schema`);const r=[];for(const e of Object.values(s.relations))(_.relationName&&_!==e&&e.relationName===_.relationName||!_.relationName&&e.referencedTable===_.sourceTable)&&r.push(e);if(r.length>1)throw _.relationName?new Error(`There are multiple relations with name "${_.relationName}" in table "${t}"`):new Error(`There are multiple relations between "${t}" and "${_.sourceTable[M.Symbol.Name]}". Please specify relation name`);if(r[0]&&o(r[0],St)&&r[0].config)return{fields:r[0].config.references,references:r[0].config.fields};throw new Error(`There is not enough information to infer relation "${a}.${_.fieldName}"`)}class qt extends ae{static[a]="PgViewBase"}class At{static[a]="PgDialect";casing;constructor(e){this.casing=new Y_(e?.casing)}async migrate(e,i,_){const t="string"==typeof _?"__drizzle_migrations":_.migrationsTable??"__drizzle_migrations",s="string"==typeof _?"drizzle":_.migrationsSchema??"drizzle",n=_e`
2
- CREATE TABLE IF NOT EXISTS ${_e.identifier(s)}.${_e.identifier(t)} (
1
+ "use strict";var e=require("zod-to-camel-case"),i=require("drizzle-zod"),t=require("drizzle-orm"),_=require("zod");function s(e){return e&&e.__esModule?e:{default:e}}var n=s(e);const a=Symbol.for("drizzle:entityKind");function o(e,i){if(!e||"object"!=typeof e)return!1;if(e instanceof i)return!0;if(!Object.prototype.hasOwnProperty.call(i,a))throw new Error(`Class "${i.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 t=Object.getPrototypeOf(e).constructor;if(t)for(;t;){if(a in t&&t[a]===i[a])return!0;t=Object.getPrototypeOf(t)}return!1}class r{constructor(e,i){this.table=e,this.config=i,this.name=i.name,this.keyAsName=i.keyAsName,this.notNull=i.notNull,this.default=i.default,this.defaultFn=i.defaultFn,this.onUpdateFn=i.onUpdateFn,this.hasDefault=i.hasDefault,this.primary=i.primaryKey,this.isUnique=i.isUnique,this.uniqueName=i.uniqueName,this.uniqueType=i.uniqueType,this.dataType=i.dataType,this.columnType=i.columnType,this.generated=i.generated,this.generatedIdentity=i.generatedIdentity}static[a]="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 l{static[a]="ColumnBuilder";config;constructor(e,i,t){this.config={name:e,keyAsName:""===e,notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:i,columnType:t,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 u=Symbol.for("drizzle:Name");class d{static[a]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(e,i){this.reference=()=>{const{name:i,columns:t,foreignColumns:_}=e();return{name:i,columns:t,foreignTable:_[0].table,foreignColumns:_}},i&&(this._onUpdate=i.onUpdate,this._onDelete=i.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,i){this.table=e,this.reference=i.reference,this.onUpdate=i._onUpdate,this.onDelete=i._onDelete}static[a]="PgForeignKey";reference;onUpdate;onDelete;getName(){const{name:e,columns:i,foreignColumns:t}=this.reference(),_=i.map(e=>e.name),s=t.map(e=>e.name),n=[this.table[u],..._,t[0].table[u],...s];return e??`${n.join("_")}_fk`}}function p(e){return new d(function(){const{name:i,columns:t,foreignColumns:_}=e;return{name:i,columns:t,foreignColumns:_}})}function m(e){return new h(e)}function g(e,i){return`${e[u]}_${i.join("_")}_unique`}class y{constructor(e,i){this.name=i,this.columns=e}static[a]="PgUniqueConstraintBuilder";columns;nullsNotDistinctConfig=!1;nullsNotDistinct(){return this.nullsNotDistinctConfig=!0,this}build(e){return new f(e,this.columns,this.nullsNotDistinctConfig,this.name)}}class h{static[a]="PgUniqueOnConstraintBuilder";name;constructor(e){this.name=e}on(...e){return new y(e,this.name)}}class f{constructor(e,i,t,_){this.table=e,this.columns=i,this.name=_??g(this.table,this.columns.map(e=>e.name)),this.nullsNotDistinct=t}static[a]="PgUniqueConstraint";columns;name;nullsNotDistinct=!1;getName(){return this.name}}function v(e,i,t){for(let _=i;_<e.length;_++){const s=e[_];if("\\"!==s){if('"'===s)return[e.slice(i,_).replace(/\\/g,""),_+1];if(!t&&(","===s||"}"===s))return[e.slice(i,_).replace(/\\/g,""),_]}else _++}return[e.slice(i).replace(/\\/g,""),e.length]}function b(e,i=0){const t=[];let _=i,s=!1;for(;_<e.length;){const n=e[_];if(","===n){(s||_===i)&&t.push(""),s=!0,_++;continue}if(s=!1,"\\"===n){_+=2;continue}if('"'===n){const[i,s]=v(e,_+1,!0);t.push(i),_=s;continue}if("}"===n)return[t,_+1];if("{"===n){const[i,s]=b(e,_+1);t.push(i),_=s;continue}const[a,o]=v(e,_,!1);t.push(a),_=o}return[t,_]}function x(e){const[i]=b(e,1);return i}function k(e){return`{${e.map(e=>Array.isArray(e)?k(e):"string"==typeof e?`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`:`${e}`).join(",")}}`}class N extends l{foreignKeyConfigs=[];static[a]="PgColumnBuilder";array(e){return new A(this.config.name,this,e)}references(e,i={}){return this.foreignKeyConfigs.push({ref:e,actions:i}),this}unique(e,i){return this.config.isUnique=!0,this.config.uniqueName=e,this.config.uniqueType=i?.nulls,this}generatedAlwaysAs(e){return this.config.generated={as:e,type:"always",mode:"stored"},this}buildForeignKeys(e,i){return this.foreignKeyConfigs.map(({ref:t,actions:_})=>function(e,...i){return e(...i)}((t,_)=>{const s=new d(()=>{const i=t();return{columns:[e],foreignColumns:[i]}});return _.onUpdate&&s.onUpdate(_.onUpdate),_.onDelete&&s.onDelete(_.onDelete),s.build(i)},t,_))}buildExtraConfigColumn(e){return new S(e,this.config)}}class w extends r{constructor(e,i){i.uniqueName||(i.uniqueName=g(e,[i.name])),super(e,i),this.table=e}static[a]="PgColumn"}class S extends w{static[a]="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 q{static[a]="IndexedColumn";constructor(e,i,t,_){this.name=e,this.keyAsName=i,this.type=t,this.indexConfig=_}name;keyAsName;type;indexConfig}class A extends N{static[a]="PgArrayBuilder";constructor(e,i,t){super(e,"array","PgArray"),this.config.baseBuilder=i,this.config.size=t}build(e){const i=this.config.baseBuilder.build(e);return new z(e,this.config,i)}}class z extends w{constructor(e,i,t,_){super(e,i),this.baseColumn=t,this.range=_,this.size=i.size}size;static[a]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${"number"==typeof this.size?this.size:""}]`}mapFromDriverValue(e){return"string"==typeof e&&(e=x(e)),e.map(e=>this.baseColumn.mapFromDriverValue(e))}mapToDriverValue(e,i=!1){const t=e.map(e=>null===e?null:o(this.baseColumn,z)?this.baseColumn.mapToDriverValue(e,!0):this.baseColumn.mapToDriverValue(e));return i?t:k(t)}}class C extends N{static[a]="PgEnumObjectColumnBuilder";constructor(e,i){super(e,"string","PgEnumObjectColumn"),this.config.enum=i}build(e){return new T(e,this.config)}}class T extends w{static[a]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(e,i){super(e,i),this.enum=i.enum}getSQLType(){return this.enum.enumName}}const O=Symbol.for("drizzle:isPgEnum");class j extends N{static[a]="PgEnumColumnBuilder";constructor(e,i){super(e,"string","PgEnumColumn"),this.config.enum=i}build(e){return new $(e,this.config)}}class $ extends w{static[a]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(e,i){super(e,i),this.enum=i.enum}getSQLType(){return this.enum.enumName}}class L{static[a]="Subquery";constructor(e,i,t,_=!1,s=[]){this._={brand:"Subquery",sql:e,selectedFields:i,alias:t,isWith:_,usedTables:s}}}class D extends L{static[a]="WithSubquery"}const P={startActiveSpan:(e,i)=>i()},B=Symbol.for("drizzle:ViewBaseConfig"),E=Symbol.for("drizzle:Schema"),I=Symbol.for("drizzle:Columns"),F=Symbol.for("drizzle:ExtraConfigColumns"),V=Symbol.for("drizzle:OriginalName"),R=Symbol.for("drizzle:BaseName"),Q=Symbol.for("drizzle:IsAlias"),J=Symbol.for("drizzle:ExtraConfigBuilder"),U=Symbol.for("drizzle:IsDrizzleTable");class M{static[a]="Table";static Symbol={Name:u,Schema:E,OriginalName:V,Columns:I,ExtraConfigColumns:F,BaseName:R,IsAlias:Q,ExtraConfigBuilder:J};[u];[V];[E];[I];[F];[R];[Q]=!1;[U]=!0;[J]=void 0;constructor(e,i,t){this[u]=this[V]=e,this[E]=i,this[R]=t}}function K(e){return e[u]}function W(e){return`${e[E]??"public"}.${e[u]}`}function H(e){return null!=e&&"function"==typeof e.getSQL}class Y{static[a]="StringChunk";value;constructor(e){this.value=Array.isArray(e)?e:[e]}getSQL(){return new G([this])}}class G{constructor(e){this.queryChunks=e;for(const i of e)if(o(i,M)){const e=i[M.Symbol.Schema];this.usedTables.push(void 0===e?i[M.Symbol.Name]:e+"."+i[M.Symbol.Name])}}static[a]="SQL";decoder=X;shouldInlineParams=!1;usedTables=[];append(e){return this.queryChunks.push(...e.queryChunks),this}toQuery(e){return P.startActiveSpan("drizzle.buildSQL",i=>{const t=this.buildQueryFromSourceParams(this.queryChunks,e);return i?.setAttributes({"drizzle.query.text":t.sql,"drizzle.query.params":JSON.stringify(t.params)}),t})}buildQueryFromSourceParams(e,i){const t=Object.assign({},i,{inlineParams:i.inlineParams||this.shouldInlineParams,paramStartIndex:i.paramStartIndex||{value:0}}),{casing:_,escapeName:s,escapeParam:n,prepareTyping:a,inlineParams:l,paramStartIndex:u}=t;return function(e){const i={sql:"",params:[]};for(const t of e)i.sql+=t.sql,i.params.push(...t.params),t.typings?.length&&(i.typings||(i.typings=[]),i.typings.push(...t.typings));return i}(e.map(e=>{if(o(e,Y))return{sql:e.value.join(""),params:[]};if(o(e,Z))return{sql:s(e.value),params:[]};if(void 0===e)return{sql:"",params:[]};if(Array.isArray(e)){const i=[new Y("(")];for(const[t,_]of e.entries())i.push(_),t<e.length-1&&i.push(new Y(", "));return i.push(new Y(")")),this.buildQueryFromSourceParams(i,t)}if(o(e,G))return this.buildQueryFromSourceParams(e.queryChunks,{...t,inlineParams:l||e.shouldInlineParams});if(o(e,M)){const i=e[M.Symbol.Schema],t=e[M.Symbol.Name];return{sql:void 0===i||e[Q]?s(t):s(i)+"."+s(t),params:[]}}if(o(e,r)){const t=_.getColumnCasing(e);if("indexes"===i.invokeSource)return{sql:s(t),params:[]};const n=e.table[M.Symbol.Schema];return{sql:e.table[Q]||void 0===n?s(e.table[M.Symbol.Name])+"."+s(t):s(n)+"."+s(e.table[M.Symbol.Name])+"."+s(t),params:[]}}if(o(e,ae)){const i=e[B].schema,t=e[B].name;return{sql:void 0===i||e[B].isAlias?s(t):s(i)+"."+s(t),params:[]}}if(o(e,ie)){if(o(e.value,se))return{sql:n(u.value++,e),params:[e],typings:["none"]};const i=null===e.value?null:e.encoder.mapToDriverValue(e.value);if(o(i,G))return this.buildQueryFromSourceParams([i],t);if(l)return{sql:this.mapInlineParam(i,t),params:[]};let _=["none"];return a&&(_=[a(e.encoder)]),{sql:n(u.value++,i),params:[i],typings:_}}return o(e,se)?{sql:n(u.value++,e),params:[e],typings:["none"]}:o(e,G.Aliased)&&void 0!==e.fieldAlias?{sql:s(e.fieldAlias),params:[]}:o(e,L)?e._.isWith?{sql:s(e._.alias),params:[]}:this.buildQueryFromSourceParams([new Y("("),e._.sql,new Y(") "),new Z(e._.alias)],t):(d=e)&&"function"==typeof d&&O in d&&!0===d[O]?e.schema?{sql:s(e.schema)+"."+s(e.enumName),params:[]}:{sql:s(e.enumName),params:[]}:H(e)?e.shouldOmitSQLParens?.()?this.buildQueryFromSourceParams([e.getSQL()],t):this.buildQueryFromSourceParams([new Y("("),e.getSQL(),new Y(")")],t):l?{sql:this.mapInlineParam(e,t),params:[]}:{sql:n(u.value++,e),params:[e],typings:["none"]};var d}))}mapInlineParam(e,{escapeString:i}){if(null===e)return"null";if("number"==typeof e||"boolean"==typeof e)return e.toString();if("string"==typeof e)return i(e);if("object"==typeof e){const t=e.toString();return i("[object Object]"===t?JSON.stringify(e):t)}throw new Error("Unexpected param value: "+e)}getSQL(){return this}as(e){return void 0===e?this:new G.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 Z{constructor(e){this.value=e}static[a]="Name";brand;getSQL(){return new G([this])}}const X={mapFromDriverValue:e=>e},ee={mapToDriverValue:e=>e};class ie{constructor(e,i=ee){this.value=e,this.encoder=i}static[a]="Param";brand;getSQL(){return new G([this])}}function te(e,...i){const t=[];(i.length>0||e.length>0&&""!==e[0])&&t.push(new Y(e[0]));for(const[_,s]of i.entries())t.push(s,new Y(e[_+1]));return new G(t)}var _e;(_e=te||(te={})).empty=function(){return new G([])},_e.fromList=function(e){return new G(e)},_e.raw=function(e){return new G([new Y(e)])},_e.join=function(e,i){const t=[];for(const[_,s]of e.entries())_>0&&void 0!==i&&t.push(i),t.push(s);return new G(t)},_e.identifier=function(e){return new Z(e)},_e.placeholder=function(e){return new se(e)},_e.param=function(e,i){return new ie(e,i)},(e=>{class i{constructor(e,i){this.sql=e,this.fieldAlias=i}static[a]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new i(this.sql,this.fieldAlias)}}e.Aliased=i})(G||(G={}));class se{constructor(e){this.name=e}static[a]="Placeholder";getSQL(){return new G([this])}}const ne=Symbol.for("drizzle:IsDrizzleView");class ae{static[a]="View";[B];[ne]=!0;constructor({name:e,schema:i,selectedFields:t,query:_}){this[B]={name:e,originalName:e,schema:i,selectedFields:t,query:_,isExisting:!_,isAlias:!1}}getSQL(){return new G([this])}}r.prototype.getSQL=function(){return new G([this])},M.prototype.getSQL=function(){return new G([this])},L.prototype.getSQL=function(){return new G([this])};class oe{constructor(e){this.table=e}static[a]="ColumnAliasProxyHandler";get(e,i){return"table"===i?this.table:e[i]}}class re{constructor(e,i){this.alias=e,this.replaceOriginalName=i}static[a]="TableAliasProxyHandler";get(e,i){if(i===M.Symbol.IsAlias)return!0;if(i===M.Symbol.Name)return this.alias;if(this.replaceOriginalName&&i===M.Symbol.OriginalName)return this.alias;if(i===B)return{...e[B],name:this.alias,isAlias:!0};if(i===M.Symbol.Columns){const i=e[M.Symbol.Columns];if(!i)return i;const t={};return Object.keys(i).map(_=>{t[_]=new Proxy(i[_],new oe(new Proxy(e,this)))}),t}const t=e[i];return o(t,r)?new Proxy(t,new oe(new Proxy(e,this))):t}}function le(e,i){return new Proxy(e,new re(i,!1))}function ue(e,i){return new Proxy(e,new oe(new Proxy(e.table,new re(i,!1))))}function de(e,i){return new G.Aliased(ce(e.sql,i),e.fieldAlias)}function ce(e,i){return te.join(e.queryChunks.map(e=>o(e,r)?ue(e,i):o(e,G)?ce(e,i):o(e,G.Aliased)?de(e,i):e))}class pe{constructor(e,i){this.name=e,this.value=i}static[a]="PgCheckBuilder";brand;build(e){return new me(e,this)}}class me{constructor(e,i){this.table=e,this.name=i.name,this.value=i.value}static[a]="PgCheck";name;value}function ge(e,i){return new pe(e,i)}function ye(e,i){return Object.entries(e).reduce((e,[t,_])=>{if("string"!=typeof t)return e;const s=i?[...i,t]:[t];return o(_,r)||o(_,G)||o(_,G.Aliased)||o(_,L)?e.push({path:s,field:_}):o(_,M)?e.push(...ye(_[M.Symbol.Columns],s)):e.push(...ye(_,s)),e},[])}function he(e,i){const t=Object.keys(e),_=Object.keys(i);if(t.length!==_.length)return!1;for(const[e,i]of t.entries())if(i!==_[e])return!1;return!0}function fe(e){return e[M.Symbol.Columns]}function ve(e){return o(e,L)?e._.alias:o(e,ae)?e[B].name:o(e,G)?void 0:e[M.Symbol.IsAlias]?e[M.Symbol.Name]:e[M.Symbol.BaseName]}function be(e,i){return{name:"string"==typeof e&&e.length>0?e:"",config:"object"==typeof e?e:i}}"undefined"!=typeof TextDecoder&&new TextDecoder;class xe extends N{static[a]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(e){if(e){const{name:i,...t}=e;this.config.generatedIdentity={type:"always",sequenceName:i,sequenceOptions:t}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(e){if(e){const{name:i,...t}=e;this.config.generatedIdentity={type:"byDefault",sequenceName:i,sequenceOptions:t}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}class ke extends xe{static[a]="PgBigInt53Builder";constructor(e){super(e,"number","PgBigInt53")}build(e){return new Ne(e,this.config)}}class Ne extends w{static[a]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(e){return"number"==typeof e?e:Number(e)}}class we extends xe{static[a]="PgBigInt64Builder";constructor(e){super(e,"bigint","PgBigInt64")}build(e){return new Se(e,this.config)}}class Se extends w{static[a]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(e){return BigInt(e)}}function qe(e,i){const{name:t,config:_}=be(e,i);return"number"===_.mode?new ke(t):new we(t)}class Ae extends N{static[a]="PgBigSerial53Builder";constructor(e){super(e,"number","PgBigSerial53"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new ze(e,this.config)}}class ze extends w{static[a]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(e){return"number"==typeof e?e:Number(e)}}class Ce extends N{static[a]="PgBigSerial64Builder";constructor(e){super(e,"bigint","PgBigSerial64"),this.config.hasDefault=!0}build(e){return new Te(e,this.config)}}class Te extends w{static[a]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(e){return BigInt(e)}}function Oe(e,i){const{name:t,config:_}=be(e,i);return"number"===_.mode?new Ae(t):new Ce(t)}class je extends N{static[a]="PgBooleanBuilder";constructor(e){super(e,"boolean","PgBoolean")}build(e){return new $e(e,this.config)}}class $e extends w{static[a]="PgBoolean";getSQLType(){return"boolean"}}function Le(e){return new je(e??"")}class De extends N{static[a]="PgCharBuilder";constructor(e,i){super(e,"string","PgChar"),this.config.length=i.length,this.config.enumValues=i.enum}build(e){return new Pe(e,this.config)}}class Pe extends w{static[a]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return void 0===this.length?"char":`char(${this.length})`}}function Be(e,i={}){const{name:t,config:_}=be(e,i);return new De(t,_)}class Ee extends N{static[a]="PgCidrBuilder";constructor(e){super(e,"string","PgCidr")}build(e){return new Ie(e,this.config)}}class Ie extends w{static[a]="PgCidr";getSQLType(){return"cidr"}}function Fe(e){return new Ee(e??"")}class Ve extends N{static[a]="PgCustomColumnBuilder";constructor(e,i,t){super(e,"custom","PgCustomColumn"),this.config.fieldConfig=i,this.config.customTypeParams=t}build(e){return new Re(e,this.config)}}class Re extends w{static[a]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(e,i){super(e,i),this.sqlName=i.customTypeParams.dataType(i.fieldConfig),this.mapTo=i.customTypeParams.toDriver,this.mapFrom=i.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(e){return"function"==typeof this.mapFrom?this.mapFrom(e):e}mapToDriverValue(e){return"function"==typeof this.mapTo?this.mapTo(e):e}}function Qe(e){return(i,t)=>{const{name:_,config:s}=be(i,t);return new Ve(_,s,e)}}class Je extends N{static[a]="PgDateColumnBaseBuilder";defaultNow(){return this.default(te`now()`)}}class Ue extends Je{static[a]="PgDateBuilder";constructor(e){super(e,"date","PgDate")}build(e){return new Me(e,this.config)}}class Me extends w{static[a]="PgDate";getSQLType(){return"date"}mapFromDriverValue(e){return"string"==typeof e?new Date(e):e}mapToDriverValue(e){return e.toISOString()}}class Ke extends Je{static[a]="PgDateStringBuilder";constructor(e){super(e,"string","PgDateString")}build(e){return new We(e,this.config)}}class We extends w{static[a]="PgDateString";getSQLType(){return"date"}mapFromDriverValue(e){return"string"==typeof e?e:e.toISOString().slice(0,-14)}}function He(e,i){const{name:t,config:_}=be(e,i);return"date"===_?.mode?new Ue(t):new Ke(t)}class Ye extends N{static[a]="PgDoublePrecisionBuilder";constructor(e){super(e,"number","PgDoublePrecision")}build(e){return new Ge(e,this.config)}}class Ge extends w{static[a]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(e){return"string"==typeof e?Number.parseFloat(e):e}}function Ze(e){return new Ye(e??"")}class Xe extends N{static[a]="PgInetBuilder";constructor(e){super(e,"string","PgInet")}build(e){return new ei(e,this.config)}}class ei extends w{static[a]="PgInet";getSQLType(){return"inet"}}function ii(e){return new Xe(e??"")}class ti extends xe{static[a]="PgIntegerBuilder";constructor(e){super(e,"number","PgInteger")}build(e){return new _i(e,this.config)}}class _i extends w{static[a]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(e){return"string"==typeof e?Number.parseInt(e):e}}function si(e){return new ti(e??"")}class ni extends N{static[a]="PgIntervalBuilder";constructor(e,i){super(e,"string","PgInterval"),this.config.intervalConfig=i}build(e){return new ai(e,this.config)}}class ai extends w{static[a]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){return`interval${this.fields?` ${this.fields}`:""}${this.precision?`(${this.precision})`:""}`}}function oi(e,i={}){const{name:t,config:_}=be(e,i);return new ni(t,_)}class ri extends N{static[a]="PgJsonBuilder";constructor(e){super(e,"json","PgJson")}build(e){return new li(e,this.config)}}class li extends w{static[a]="PgJson";constructor(e,i){super(e,i)}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 ui(e){return new ri(e??"")}class di extends N{static[a]="PgJsonbBuilder";constructor(e){super(e,"json","PgJsonb")}build(e){return new ci(e,this.config)}}class ci extends w{static[a]="PgJsonb";constructor(e,i){super(e,i)}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 pi(e){return new di(e??"")}class mi extends N{static[a]="PgLineBuilder";constructor(e){super(e,"array","PgLine")}build(e){return new gi(e,this.config)}}class gi extends w{static[a]="PgLine";getSQLType(){return"line"}mapFromDriverValue(e){const[i,t,_]=e.slice(1,-1).split(",");return[Number.parseFloat(i),Number.parseFloat(t),Number.parseFloat(_)]}mapToDriverValue(e){return`{${e[0]},${e[1]},${e[2]}}`}}class yi extends N{static[a]="PgLineABCBuilder";constructor(e){super(e,"json","PgLineABC")}build(e){return new hi(e,this.config)}}class hi extends w{static[a]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(e){const[i,t,_]=e.slice(1,-1).split(",");return{a:Number.parseFloat(i),b:Number.parseFloat(t),c:Number.parseFloat(_)}}mapToDriverValue(e){return`{${e.a},${e.b},${e.c}}`}}function fi(e,i){const{name:t,config:_}=be(e,i);return _?.mode&&"tuple"!==_.mode?new yi(t):new mi(t)}class vi extends N{static[a]="PgMacaddrBuilder";constructor(e){super(e,"string","PgMacaddr")}build(e){return new bi(e,this.config)}}class bi extends w{static[a]="PgMacaddr";getSQLType(){return"macaddr"}}function xi(e){return new vi(e??"")}class ki extends N{static[a]="PgMacaddr8Builder";constructor(e){super(e,"string","PgMacaddr8")}build(e){return new Ni(e,this.config)}}class Ni extends w{static[a]="PgMacaddr8";getSQLType(){return"macaddr8"}}function wi(e){return new ki(e??"")}class Si extends N{static[a]="PgNumericBuilder";constructor(e,i,t){super(e,"string","PgNumeric"),this.config.precision=i,this.config.scale=t}build(e){return new qi(e,this.config)}}class qi extends w{static[a]="PgNumeric";precision;scale;constructor(e,i){super(e,i),this.precision=i.precision,this.scale=i.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 Ai extends N{static[a]="PgNumericNumberBuilder";constructor(e,i,t){super(e,"number","PgNumericNumber"),this.config.precision=i,this.config.scale=t}build(e){return new zi(e,this.config)}}class zi extends w{static[a]="PgNumericNumber";precision;scale;constructor(e,i){super(e,i),this.precision=i.precision,this.scale=i.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 Ci extends N{static[a]="PgNumericBigIntBuilder";constructor(e,i,t){super(e,"bigint","PgNumericBigInt"),this.config.precision=i,this.config.scale=t}build(e){return new Ti(e,this.config)}}class Ti extends w{static[a]="PgNumericBigInt";precision;scale;constructor(e,i){super(e,i),this.precision=i.precision,this.scale=i.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 Oi(e,i){const{name:t,config:_}=be(e,i),s=_?.mode;return"number"===s?new Ai(t,_?.precision,_?.scale):"bigint"===s?new Ci(t,_?.precision,_?.scale):new Si(t,_?.precision,_?.scale)}class ji extends N{static[a]="PgPointTupleBuilder";constructor(e){super(e,"array","PgPointTuple")}build(e){return new $i(e,this.config)}}class $i extends w{static[a]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(e){if("string"==typeof e){const[i,t]=e.slice(1,-1).split(",");return[Number.parseFloat(i),Number.parseFloat(t)]}return[e.x,e.y]}mapToDriverValue(e){return`(${e[0]},${e[1]})`}}class Li extends N{static[a]="PgPointObjectBuilder";constructor(e){super(e,"json","PgPointObject")}build(e){return new Di(e,this.config)}}class Di extends w{static[a]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(e){if("string"==typeof e){const[i,t]=e.slice(1,-1).split(",");return{x:Number.parseFloat(i),y:Number.parseFloat(t)}}return e}mapToDriverValue(e){return`(${e.x},${e.y})`}}function Pi(e,i){const{name:t,config:_}=be(e,i);return _?.mode&&"tuple"!==_.mode?new Li(t):new ji(t)}function Bi(e,i){const t=new ArrayBuffer(8),_=new DataView(t);for(let t=0;t<8;t++)_.setUint8(t,e[i+t]);return _.getFloat64(0,!0)}function Ei(e){const i=function(e){const i=[];for(let t=0;t<e.length;t+=2)i.push(Number.parseInt(e.slice(t,t+2),16));return new Uint8Array(i)}(e);let t=0;const _=i[t];t+=1;const s=new DataView(i.buffer),n=s.getUint32(t,1===_);if(t+=4,536870912&n&&(s.getUint32(t,1===_),t+=4),1==(65535&n)){const e=Bi(i,t);t+=8;const _=Bi(i,t);return t+=8,[e,_]}throw new Error("Unsupported geometry type")}class Ii extends N{static[a]="PgGeometryBuilder";constructor(e){super(e,"array","PgGeometry")}build(e){return new Fi(e,this.config)}}class Fi extends w{static[a]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(e){return Ei(e)}mapToDriverValue(e){return`point(${e[0]} ${e[1]})`}}class Vi extends N{static[a]="PgGeometryObjectBuilder";constructor(e){super(e,"json","PgGeometryObject")}build(e){return new Ri(e,this.config)}}class Ri extends w{static[a]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(e){const i=Ei(e);return{x:i[0],y:i[1]}}mapToDriverValue(e){return`point(${e.x} ${e.y})`}}function Qi(e,i){const{name:t,config:_}=be(e,i);return _?.mode&&"tuple"!==_.mode?new Vi(t):new Ii(t)}class Ji extends N{static[a]="PgRealBuilder";constructor(e,i){super(e,"number","PgReal"),this.config.length=i}build(e){return new Ui(e,this.config)}}class Ui extends w{static[a]="PgReal";constructor(e,i){super(e,i)}getSQLType(){return"real"}mapFromDriverValue=e=>"string"==typeof e?Number.parseFloat(e):e}function Mi(e){return new Ji(e??"")}class Ki extends N{static[a]="PgSerialBuilder";constructor(e){super(e,"number","PgSerial"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new Wi(e,this.config)}}class Wi extends w{static[a]="PgSerial";getSQLType(){return"serial"}}function Hi(e){return new Ki(e??"")}class Yi extends xe{static[a]="PgSmallIntBuilder";constructor(e){super(e,"number","PgSmallInt")}build(e){return new Gi(e,this.config)}}class Gi extends w{static[a]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=e=>"string"==typeof e?Number(e):e}function Zi(e){return new Yi(e??"")}class Xi extends N{static[a]="PgSmallSerialBuilder";constructor(e){super(e,"number","PgSmallSerial"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new et(e,this.config)}}class et extends w{static[a]="PgSmallSerial";getSQLType(){return"smallserial"}}function it(e){return new Xi(e??"")}class tt extends N{static[a]="PgTextBuilder";constructor(e,i){super(e,"string","PgText"),this.config.enumValues=i.enum}build(e){return new _t(e,this.config)}}class _t extends w{static[a]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}}function st(e,i={}){const{name:t,config:_}=be(e,i);return new tt(t,_)}class nt extends Je{constructor(e,i,t){super(e,"string","PgTime"),this.withTimezone=i,this.precision=t,this.config.withTimezone=i,this.config.precision=t}static[a]="PgTimeBuilder";build(e){return new at(e,this.config)}}class at extends w{static[a]="PgTime";withTimezone;precision;constructor(e,i){super(e,i),this.withTimezone=i.withTimezone,this.precision=i.precision}getSQLType(){return`time${void 0===this.precision?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}}function ot(e,i={}){const{name:t,config:_}=be(e,i);return new nt(t,_.withTimezone??!1,_.precision)}class rt extends Je{static[a]="PgTimestampBuilder";constructor(e,i,t){super(e,"date","PgTimestamp"),this.config.withTimezone=i,this.config.precision=t}build(e){return new lt(e,this.config)}}class lt extends w{static[a]="PgTimestamp";withTimezone;precision;constructor(e,i){super(e,i),this.withTimezone=i.withTimezone,this.precision=i.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 ut extends Je{static[a]="PgTimestampStringBuilder";constructor(e,i,t){super(e,"string","PgTimestampString"),this.config.withTimezone=i,this.config.precision=t}build(e){return new dt(e,this.config)}}class dt extends w{static[a]="PgTimestampString";withTimezone;precision;constructor(e,i){super(e,i),this.withTimezone=i.withTimezone,this.precision=i.precision}getSQLType(){return`timestamp${void 0===this.precision?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue(e){if("string"==typeof e)return e;const i=e.toISOString().slice(0,-1).replace("T"," ");if(this.withTimezone){const t=e.getTimezoneOffset();return`${i}${t<=0?"+":"-"}${Math.floor(Math.abs(t)/60).toString().padStart(2,"0")}`}return i}}function ct(e,i={}){const{name:t,config:_}=be(e,i);return"string"===_?.mode?new ut(t,_.withTimezone??!1,_.precision):new rt(t,_?.withTimezone??!1,_?.precision)}class pt extends N{static[a]="PgUUIDBuilder";constructor(e){super(e,"string","PgUUID")}defaultRandom(){return this.default(te`gen_random_uuid()`)}build(e){return new mt(e,this.config)}}class mt extends w{static[a]="PgUUID";getSQLType(){return"uuid"}}function gt(e){return new pt(e??"")}class yt extends N{static[a]="PgVarcharBuilder";constructor(e,i){super(e,"string","PgVarchar"),this.config.length=i.length,this.config.enumValues=i.enum}build(e){return new ht(e,this.config)}}class ht extends w{static[a]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return void 0===this.length?"varchar":`varchar(${this.length})`}}function ft(e,i={}){const{name:t,config:_}=be(e,i);return new yt(t,_)}class vt extends N{static[a]="PgBinaryVectorBuilder";constructor(e,i){super(e,"string","PgBinaryVector"),this.config.dimensions=i.dimensions}build(e){return new bt(e,this.config)}}class bt extends w{static[a]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}}function xt(e,i){const{name:t,config:_}=be(e,i);return new vt(t,_)}class kt extends N{static[a]="PgHalfVectorBuilder";constructor(e,i){super(e,"array","PgHalfVector"),this.config.dimensions=i.dimensions}build(e){return new Nt(e,this.config)}}class Nt extends w{static[a]="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 wt(e,i){const{name:t,config:_}=be(e,i);return new kt(t,_)}class St extends N{static[a]="PgSparseVectorBuilder";constructor(e,i){super(e,"string","PgSparseVector"),this.config.dimensions=i.dimensions}build(e){return new qt(e,this.config)}}class qt extends w{static[a]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}}function At(e,i){const{name:t,config:_}=be(e,i);return new St(t,_)}class zt extends N{static[a]="PgVectorBuilder";constructor(e,i){super(e,"array","PgVector"),this.config.dimensions=i.dimensions}build(e){return new Ct(e,this.config)}}class Ct extends w{static[a]="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 Tt(e,i){const{name:t,config:_}=be(e,i);return new zt(t,_)}class Ot{static[a]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(e){return this.then(void 0,e)}finally(e){return this.then(i=>(e?.(),i),i=>{throw e?.(),i})}then(e,i){return this.execute().then(e,i)}}class jt{static[a]="SelectionProxyHandler";config;constructor(e){this.config={...e}}get(e,i){if("_"===i)return{...e._,selectedFields:new Proxy(e._.selectedFields,this)};if(i===B)return{...e[B],selectedFields:new Proxy(e[B].selectedFields,this)};if("symbol"==typeof i)return e[i];const t=(o(e,L)?e._.selectedFields:o(e,ae)?e[B].selectedFields:e)[i];if(o(t,G.Aliased)){if("sql"===this.config.sqlAliasedBehavior&&!t.isSelectionField)return t.sql;const e=t.clone();return e.isSelectionField=!0,e}if(o(t,G)){if("sql"===this.config.sqlBehavior)return t;throw new Error(`You tried to reference "${i}" 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 o(t,r)?this.config.alias?new Proxy(t,new oe(new Proxy(t.table,new re(this.config.alias,this.config.replaceOriginalName??!1)))):t:"object"!=typeof t||null===t?t:new Proxy(t,new jt(this.config))}}const $t=Symbol.for("drizzle:PgInlineForeignKeys"),Lt=Symbol.for("drizzle:EnableRLS");class Dt extends M{static[a]="PgTable";static Symbol=Object.assign({},M.Symbol,{InlineForeignKeys:$t,EnableRLS:Lt});[$t]=[];[Lt]=!1;[M.Symbol.ExtraConfigBuilder]=void 0;[M.Symbol.ExtraConfigColumns]={}}function Pt(e,i,t,_,s=e){const n=new Dt(e,_,s),a="function"==typeof i?i({bigint:qe,bigserial:Oe,boolean:Le,char:Be,cidr:Fe,customType:Qe,date:He,doublePrecision:Ze,inet:ii,integer:si,interval:oi,json:ui,jsonb:pi,line:fi,macaddr:xi,macaddr8:wi,numeric:Oi,point:Pi,geometry:Qi,real:Mi,serial:Hi,smallint:Zi,smallserial:it,text:st,time:ot,timestamp:ct,uuid:gt,varchar:ft,bit:xt,halfvec:wt,sparsevec:At,vector:Tt}):i,o=Object.fromEntries(Object.entries(a).map(([e,i])=>{const t=i;t.setName(e);const _=t.build(n);return n[$t].push(...t.buildForeignKeys(_,n)),[e,_]})),r=Object.fromEntries(Object.entries(a).map(([e,i])=>{const t=i;t.setName(e);return[e,t.buildExtraConfigColumn(n)]})),l=Object.assign(n,o);return l[M.Symbol.Columns]=o,l[M.Symbol.ExtraConfigColumns]=r,t&&(l[Dt.Symbol.ExtraConfigBuilder]=t),Object.assign(l,{enableRLS:()=>(l[Dt.Symbol.EnableRLS]=!0,l)})}const Bt=(e,i,t)=>Pt(e,i,t,void 0);class Et{constructor(e,i){this.unique=e,this.name=i}static[a]="PgIndexBuilderOn";on(...e){return new It(e.map(e=>{if(o(e,G))return e;const i=new q(e.name,!!e.keyAsName,e.columnType,e.indexConfig);return e.indexConfig=JSON.parse(JSON.stringify(e.defaultConfig)),i}),this.unique,!1,this.name)}onOnly(...e){return new It(e.map(e=>{if(o(e,G))return e;const i=new q(e.name,!!e.keyAsName,e.columnType,e.indexConfig);return e.indexConfig=e.defaultConfig,i}),this.unique,!0,this.name)}using(e,...i){return new It(i.map(e=>{if(o(e,G))return e;const i=new q(e.name,!!e.keyAsName,e.columnType,e.indexConfig);return e.indexConfig=JSON.parse(JSON.stringify(e.defaultConfig)),i}),this.unique,!0,this.name,e)}}class It{static[a]="PgIndexBuilder";config;constructor(e,i,t,_,s="btree"){this.config={name:_,columns:e,unique:i,only:t,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 Ft(this.config,e)}}class Ft{static[a]="PgIndex";config;constructor(e,i){this.config={...e,table:i}}}function Vt(e){return new Et(!1,e)}function Rt(e){return new Et(!0,e)}function Qt(...e){return e[0].columns?new Jt(e[0].columns,e[0].name):new Jt(e)}class Jt{static[a]="PgPrimaryKeyBuilder";columns;name;constructor(e,i){this.columns=e,this.name=i}build(e){return new Ut(e,this.columns,this.name)}}class Ut{constructor(e,i,t){this.table=e,this.columns=i,this.name=t}static[a]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[Dt.Symbol.Name]}_${this.columns.map(e=>e.name).join("_")}_pk`}}const Mt=Symbol.for("drizzle:PgViewConfig");function Kt(e){return(e.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map(e=>e.toLowerCase()).join("_")}function Wt(e){return(e.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((e,i,t)=>e+(0===t?i.toLowerCase():`${i[0].toUpperCase()}${i.slice(1)}`),"")}function Ht(e){return e}class Yt{static[a]="CasingCache";cache={};cachedTables={};convert;constructor(e){this.convert="snake_case"===e?Kt:"camelCase"===e?Wt:Ht}getColumnCasing(e){if(!e.keyAsName)return e.name;const i=`${e.table[M.Symbol.Schema]??"public"}.${e.table[M.Symbol.OriginalName]}.${e.name}`;return this.cache[i]||this.cacheTable(e.table),this.cache[i]}cacheTable(e){const i=`${e[M.Symbol.Schema]??"public"}.${e[M.Symbol.OriginalName]}`;if(!this.cachedTables[i]){for(const t of Object.values(e[M.Symbol.Columns])){const e=`${i}.${t.name}`;this.cache[e]=this.convert(t.name)}this.cachedTables[i]=!0}}clearCache(){this.cache={},this.cachedTables={}}}class Gt extends Error{static[a]="DrizzleError";constructor({message:e,cause:i}){super(e),this.name="DrizzleError",this.cause=i}}function Zt(e,i){return!function(e){return"object"==typeof e&&null!==e&&"mapToDriverValue"in e&&"function"==typeof e.mapToDriverValue}(i)||H(e)||o(e,ie)||o(e,se)||o(e,r)||o(e,M)||o(e,ae)?e:new ie(e,i)}const Xt=(e,i)=>te`${e} = ${Zt(i,e)}`,e_=(e,i)=>te`${e} <> ${Zt(i,e)}`;function i_(...e){const i=e.filter(e=>void 0!==e);if(0!==i.length)return 1===i.length?new G(i):new G([new Y("("),te.join(i,new Y(" and ")),new Y(")")])}function t_(...e){const i=e.filter(e=>void 0!==e);if(0!==i.length)return 1===i.length?new G(i):new G([new Y("("),te.join(i,new Y(" or ")),new Y(")")])}function __(e){return te`not ${e}`}const s_=(e,i)=>te`${e} > ${Zt(i,e)}`,n_=(e,i)=>te`${e} >= ${Zt(i,e)}`,a_=(e,i)=>te`${e} < ${Zt(i,e)}`,o_=(e,i)=>te`${e} <= ${Zt(i,e)}`;function r_(e,i){return Array.isArray(i)?0===i.length?te`false`:te`${e} in ${i.map(i=>Zt(i,e))}`:te`${e} in ${Zt(i,e)}`}function l_(e,i){return Array.isArray(i)?0===i.length?te`true`:te`${e} not in ${i.map(i=>Zt(i,e))}`:te`${e} not in ${Zt(i,e)}`}function u_(e){return te`${e} is null`}function d_(e){return te`${e} is not null`}function c_(e){return te`exists ${e}`}function p_(e){return te`not exists ${e}`}function m_(e,i,t){return te`${e} between ${Zt(i,e)} and ${Zt(t,e)}`}function g_(e,i,t){return te`${e} not between ${Zt(i,e)} and ${Zt(t,e)}`}function y_(e,i){return te`${e} like ${i}`}function h_(e,i){return te`${e} not like ${i}`}function f_(e,i){return te`${e} ilike ${i}`}function v_(e,i){return te`${e} not ilike ${i}`}function b_(e){return te`${e} asc`}function x_(e){return te`${e} desc`}class k_{constructor(e,i,t){this.sourceTable=e,this.referencedTable=i,this.relationName=t,this.referencedTableName=i[M.Symbol.Name]}static[a]="Relation";referencedTableName;fieldName}class N_ extends k_{constructor(e,i,t,_){super(e,i,t?.relationName),this.config=t,this.isNullable=_}static[a]="One";withFieldName(e){const i=new N_(this.sourceTable,this.referencedTable,this.config,this.isNullable);return i.fieldName=e,i}}class w_ extends k_{constructor(e,i,t){super(e,i,t?.relationName),this.config=t}static[a]="Many";withFieldName(e){const i=new w_(this.sourceTable,this.referencedTable,this.config);return i.fieldName=e,i}}function S_(e,i,t){if(o(t,N_)&&t.config)return{fields:t.config.fields,references:t.config.references};const _=i[W(t.referencedTable)];if(!_)throw new Error(`Table "${t.referencedTable[M.Symbol.Name]}" not found in schema`);const s=e[_];if(!s)throw new Error(`Table "${_}" not found in schema`);const n=t.sourceTable,a=i[W(n)];if(!a)throw new Error(`Table "${n[M.Symbol.Name]}" not found in schema`);const r=[];for(const e of Object.values(s.relations))(t.relationName&&t!==e&&e.relationName===t.relationName||!t.relationName&&e.referencedTable===t.sourceTable)&&r.push(e);if(r.length>1)throw t.relationName?new Error(`There are multiple relations with name "${t.relationName}" in table "${_}"`):new Error(`There are multiple relations between "${_}" and "${t.sourceTable[M.Symbol.Name]}". Please specify relation name`);if(r[0]&&o(r[0],N_)&&r[0].config)return{fields:r[0].config.references,references:r[0].config.fields};throw new Error(`There is not enough information to infer relation "${a}.${t.fieldName}"`)}class q_ extends ae{static[a]="PgViewBase"}class A_{static[a]="PgDialect";casing;constructor(e){this.casing=new Yt(e?.casing)}async migrate(e,i,t){const _="string"==typeof t?"__drizzle_migrations":t.migrationsTable??"__drizzle_migrations",s="string"==typeof t?"drizzle":t.migrationsSchema??"drizzle",n=te`
2
+ CREATE TABLE IF NOT EXISTS ${te.identifier(s)}.${te.identifier(_)} (
3
3
  id SERIAL PRIMARY KEY,
4
4
  hash text NOT NULL,
5
5
  created_at bigint
6
6
  )
7
- `;await i.execute(_e`CREATE SCHEMA IF NOT EXISTS ${_e.identifier(s)}`),await i.execute(n);const a=(await i.all(_e`select id, hash, created_at from ${_e.identifier(s)}.${_e.identifier(t)} order by created_at desc limit 1`))[0];await i.transaction(async i=>{for await(const _ of e)if(!a||Number(a.created_at)<_.folderMillis){for(const e of _.sql)await i.execute(_e.raw(e));await i.execute(_e`insert into ${_e.identifier(s)}.${_e.identifier(t)} ("hash", "created_at") values(${_.hash}, ${_.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 i=[_e`with `];for(const[_,t]of e.entries())i.push(_e`${_e.identifier(t._.alias)} as (${t._.sql})`),_<e.length-1&&i.push(_e`, `);return i.push(_e` `),_e.join(i)}buildDeleteQuery({table:e,where:i,returning:_,withList:t}){return _e`${this.buildWithCTE(t)}delete from ${e}${i?_e` where ${i}`:void 0}${_?_e` returning ${this.buildSelection(_,{isSingleTable:!0})}`:void 0}`}buildUpdateSet(e,i){const _=e[M.Symbol.Columns],t=Object.keys(_).filter(e=>void 0!==i[e]||void 0!==_[e]?.onUpdateFn),s=t.length;return _e.join(t.flatMap((e,t)=>{const n=_[e],a=n.onUpdateFn?.(),r=i[e]??(o(a,G)?a:_e.param(a,n)),l=_e`${_e.identifier(this.casing.getColumnCasing(n))} = ${r}`;return t<s-1?[l,_e.raw(", ")]:[l]}))}buildUpdateQuery({table:e,set:i,where:_,returning:t,withList:s,from:n,joins:a}){const o=this.buildWithCTE(s),r=e[L_.Symbol.Name],l=e[L_.Symbol.Schema],d=e[L_.Symbol.OriginalName],u=r===d?void 0:r,c=_e`${l?_e`${_e.identifier(l)}.`:void 0}${_e.identifier(d)}${u&&_e` ${_e.identifier(u)}`}`,p=this.buildUpdateSet(e,i),m=n&&_e.join([_e.raw(" from "),this.buildFromTable(n)]);return _e`${o}update ${c} set ${p}${m}${this.buildJoins(a)}${_?_e` where ${_}`:void 0}${t?_e` returning ${this.buildSelection(t,{isSingleTable:!n})}`:void 0}`}buildSelection(e,{isSingleTable:i=!1}={}){const _=e.length,t=e.flatMap(({field:e},t)=>{const s=[];if(o(e,G.Aliased)&&e.isSelectionField)s.push(_e.identifier(e.fieldAlias));else if(o(e,G.Aliased)||o(e,G)){const _=o(e,G.Aliased)?e.sql:e;i?s.push(new G(_.queryChunks.map(e=>o(e,w)?_e.identifier(this.casing.getColumnCasing(e)):e))):s.push(_),o(e,G.Aliased)&&s.push(_e` as ${_e.identifier(e.fieldAlias)}`)}else if(o(e,r))i?s.push(_e.identifier(this.casing.getColumnCasing(e))):s.push(e);else if(o(e,D)){const i=Object.entries(e._.selectedFields);if(1===i.length){const _=i[0][1],t=o(_,G)?_.decoder:o(_,r)?{mapFromDriverValue:e=>_.mapFromDriverValue(e)}:_.sql.decoder;t&&(e._.sql.decoder=t)}s.push(e)}return t<_-1&&s.push(_e`, `),s});return _e.join(t)}buildJoins(e){if(!e||0===e.length)return;const i=[];for(const[_,t]of e.entries()){0===_&&i.push(_e` `);const s=t.table,n=t.lateral?_e` lateral`:void 0,a=t.on?_e` on ${t.on}`:void 0;if(o(s,L_)){const e=s[L_.Symbol.Name],_=s[L_.Symbol.Schema],o=s[L_.Symbol.OriginalName],r=e===o?void 0:t.alias;i.push(_e`${_e.raw(t.joinType)} join${n} ${_?_e`${_e.identifier(_)}.`:void 0}${_e.identifier(o)}${r&&_e` ${_e.identifier(r)}`}${a}`)}else if(o(s,ae)){const e=s[B].name,_=s[B].schema,o=s[B].originalName,r=e===o?void 0:t.alias;i.push(_e`${_e.raw(t.joinType)} join${n} ${_?_e`${_e.identifier(_)}.`:void 0}${_e.identifier(o)}${r&&_e` ${_e.identifier(r)}`}${a}`)}else i.push(_e`${_e.raw(t.joinType)} join${n} ${s}${a}`);_<e.length-1&&i.push(_e` `)}return _e.join(i)}buildFromTable(e){if(o(e,M)&&e[M.Symbol.IsAlias]){let i=_e`${_e.identifier(e[M.Symbol.OriginalName])}`;return e[M.Symbol.Schema]&&(i=_e`${_e.identifier(e[M.Symbol.Schema])}.${i}`),_e`${i} ${_e.identifier(e[M.Symbol.Name])}`}return e}buildSelectQuery({withList:e,fields:i,fieldsFlat:_,where:t,having:s,table:n,joins:a,orderBy:l,groupBy:d,limit:u,offset:c,lockingClause:p,distinct:m,setOperators:g}){const y=_??ye(i);for(const e of y)if(o(e.field,r)&&K(e.field.table)!==(o(n,D)?n._.alias:o(n,qt)?n[B].name:o(n,G)?void 0:K(n))&&!(e=>a?.some(({alias:i})=>i===(e[M.Symbol.IsAlias]?K(e):e[M.Symbol.BaseName])))(e.field.table)){const i=K(e.field.table);throw new Error(`Your "${e.path.join("->")}" field references a column "${i}"."${e.field.name}", but the table "${i}" is not part of the query! Did you forget to join it?`)}const h=!a||0===a.length,f=this.buildWithCTE(e);let v;m&&(v=!0===m?_e` distinct`:_e` distinct on (${_e.join(m.on,_e`, `)})`);const b=this.buildSelection(y,{isSingleTable:h}),k=this.buildFromTable(n),x=this.buildJoins(a),S=t?_e` where ${t}`:void 0,w=s?_e` having ${s}`:void 0;let N,q;l&&l.length>0&&(N=_e` order by ${_e.join(l,_e`, `)}`),d&&d.length>0&&(q=_e` group by ${_e.join(d,_e`, `)}`);const A="object"==typeof u||"number"==typeof u&&u>=0?_e` limit ${u}`:void 0,z=c?_e` offset ${c}`:void 0,C=_e.empty();if(p){const e=_e` for ${_e.raw(p.strength)}`;p.config.of&&e.append(_e` of ${_e.join(Array.isArray(p.config.of)?p.config.of:[p.config.of],_e`, `)}`),p.config.noWait?e.append(_e` nowait`):p.config.skipLocked&&e.append(_e` skip locked`),C.append(e)}const T=_e`${f}select${v} ${b} from ${k}${x}${S}${q}${w}${N}${A}${z}${C}`;return g.length>0?this.buildSetOperations(T,g):T}buildSetOperations(e,i){const[_,...t]=i;if(!_)throw new Error("Cannot pass undefined values to any set operator");return 0===t.length?this.buildSetOperationQuery({leftSelect:e,setOperator:_}):this.buildSetOperations(this.buildSetOperationQuery({leftSelect:e,setOperator:_}),t)}buildSetOperationQuery({leftSelect:e,setOperator:{type:i,isAll:_,rightSelect:t,limit:s,orderBy:n,offset:a}}){const r=_e`(${e.getSQL()}) `,l=_e`(${t.getSQL()})`;let d;if(n&&n.length>0){const e=[];for(const i of n)if(o(i,w))e.push(_e.identifier(i.name));else if(o(i,G)){for(let e=0;e<i.queryChunks.length;e++){const _=i.queryChunks[e];o(_,w)&&(i.queryChunks[e]=_e.identifier(_.name))}e.push(_e`${i}`)}else e.push(_e`${i}`);d=_e` order by ${_e.join(e,_e`, `)} `}const u="object"==typeof s||"number"==typeof s&&s>=0?_e` limit ${s}`:void 0,c=_e.raw(`${i} ${_?"all ":""}`);return _e`${r}${c}${l}${d}${u}${a?_e` offset ${a}`:void 0}`}buildInsertQuery({table:e,values:i,onConflict:_,returning:t,withList:s,select:n,overridingSystemValue_:a}){const r=[],l=e[M.Symbol.Columns],d=Object.entries(l).filter(([e,i])=>!i.shouldDisableInsert()),u=d.map(([,e])=>_e.identifier(this.casing.getColumnCasing(e)));if(n){const e=i;o(e,G)?r.push(e):r.push(e.getSQL())}else{const e=i;r.push(_e.raw("values "));for(const[i,_]of e.entries()){const t=[];for(const[e,i]of d){const s=_[e];if(void 0===s||o(s,ie)&&void 0===s.value)if(void 0!==i.defaultFn){const e=i.defaultFn(),_=o(e,G)?e:_e.param(e,i);t.push(_)}else if(i.default||void 0===i.onUpdateFn)t.push(_e`default`);else{const e=i.onUpdateFn(),_=o(e,G)?e:_e.param(e,i);t.push(_)}else t.push(s)}r.push(t),i<e.length-1&&r.push(_e`, `)}}const c=this.buildWithCTE(s),p=_e.join(r);return _e`${c}insert into ${e} ${u} ${!0===a?_e`overriding system value `:void 0}${p}${_?_e` on conflict ${_}`:void 0}${t?_e` returning ${this.buildSelection(t,{isSingleTable:!0})}`:void 0}`}buildRefreshMaterializedViewQuery({view:e,concurrently:i,withNoData:_}){return _e`refresh materialized view${i?_e` concurrently`:void 0} ${e}${_?_e` with no data`:void 0}`}prepareTyping(e){return o(e,ci)||o(e,li)?"json":o(e,qi)?"decimal":o(e,a_)?"time":o(e,l_)||o(e,u_)?"timestamp":o(e,Me)||o(e,We)?"date":o(e,m_)?"uuid":"none"}sqlToQuery(e,i){return e.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:i})}buildRelationalQueryWithoutPK({fullSchema:e,schema:i,tableNamesMap:_,table:t,tableConfig:s,queryConfig:n,tableAlias:a,nestedQueryRelation:l,joinOn:d}){let u,c,p,m=[],g=[];const y=[];if(!0===n){m=Object.entries(s.columns).map(([e,i])=>({dbKey:i.name,tsKey:e,field:de(i,a),relationTableTsKey:void 0,isJson:!1,selection:[]}))}else{const t=Object.fromEntries(Object.entries(s.columns).map(([e,i])=>[e,de(i,a)]));if(n.where){const e="function"==typeof n.where?n.where(t,{and:it,between:mt,eq:X_,exists:ct,gt:st,gte:nt,ilike:ft,inArray:rt,isNull:dt,isNotNull:ut,like:yt,lt:at,lte:ot,ne:et,not:tt,notBetween:gt,notExists:pt,notLike:ht,notIlike:vt,notInArray:lt,or:_t,sql:_e}):n.where;p=e&&ce(e,a)}const l=[];let d=[];if(n.columns){let e=!1;for(const[i,_]of Object.entries(n.columns))void 0!==_&&i in s.columns&&(e||!0!==_||(e=!0),d.push(i));d.length>0&&(d=e?d.filter(e=>!0===n.columns?.[e]):Object.keys(s.columns).filter(e=>!d.includes(e)))}else d=Object.keys(s.columns);for(const e of d){const i=s.columns[e];l.push({tsKey:e,value:i})}let h,f=[];if(n.with&&(f=Object.entries(n.with).filter(e=>!!e[1]).map(([e,i])=>({tsKey:e,queryConfig:i,relation:s.relations[e]}))),n.extras){h="function"==typeof n.extras?n.extras(t,{sql:_e}):n.extras;for(const[e,i]of Object.entries(h))l.push({tsKey:e,value:ue(i,a)})}for(const{tsKey:e,value:i}of l)m.push({dbKey:o(i,G.Aliased)?i.fieldAlias:s.columns[e].name,tsKey:e,field:o(i,r)?de(i,a):i,relationTableTsKey:void 0,isJson:!1,selection:[]});let v="function"==typeof n.orderBy?n.orderBy(t,{sql:_e,asc:bt,desc:kt}):n.orderBy??[];Array.isArray(v)||(v=[v]),g=v.map(e=>o(e,r)?de(e,a):ce(e,a)),u=n.limit,c=n.offset;for(const{tsKey:t,queryConfig:s,relation:n}of f){const r=Nt(i,_,n),l=_[W(n.referencedTable)],d=`${a}_${t}`,u=it(...r.fields.map((e,i)=>X_(de(r.references[i],d),de(e,a)))),c=this.buildRelationalQueryWithoutPK({fullSchema:e,schema:i,tableNamesMap:_,table:e[l],tableConfig:i[l],queryConfig:o(n,St)?!0===s?{limit:1}:{...s,limit:1}:s,tableAlias:d,joinOn:u,nestedQueryRelation:n}),p=_e`${_e.identifier(d)}.${_e.identifier("data")}`.as(t);y.push({on:_e`true`,table:new D(c.sql,{},d),alias:d,joinType:"left",lateral:!0}),m.push({dbKey:t,tsKey:t,field:p,relationTableTsKey:l,isJson:!0,selection:c.selection})}}if(0===m.length)throw new G_({message:`No fields selected for table "${s.tsName}" ("${a}")`});let h;if(p=it(d,p),l){let e=_e`json_build_array(${_e.join(m.map(({field:e,tsKey:i,isJson:_})=>_?_e`${_e.identifier(`${a}_${i}`)}.${_e.identifier("data")}`:o(e,G.Aliased)?e.sql:e),_e`, `)})`;o(l,wt)&&(e=_e`coalesce(json_agg(${e}${g.length>0?_e` order by ${_e.join(g,_e`, `)}`:void 0}), '[]'::json)`);const i=[{dbKey:"data",tsKey:"data",field:e.as("data"),isJson:!0,relationTableTsKey:s.tsName,selection:m}];void 0!==u||void 0!==c||g.length>0?(h=this.buildSelectQuery({table:le(t,a),fields:{},fieldsFlat:[{path:[],field:_e.raw("*")}],where:p,limit:u,offset:c,orderBy:g,setOperators:[]}),p=void 0,u=void 0,c=void 0,g=[]):h=le(t,a),h=this.buildSelectQuery({table:o(h,L_)?h:new D(h,{},a),fields:{},fieldsFlat:i.map(({field:e})=>({path:[],field:o(e,r)?de(e,a):e})),joins:y,where:p,limit:u,offset:c,orderBy:g,setOperators:[]})}else h=this.buildSelectQuery({table:le(t,a),fields:{},fieldsFlat:m.map(({field:e})=>({path:[],field:o(e,r)?de(e,a):e})),joins:y,where:p,limit:u,offset:c,orderBy:g,setOperators:[]});return{tableTsKey:s.tsName,sql:h,selection:m}}}class zt{static[a]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class Ct{static[a]="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 i=!!this.fields,_=e;let t;return t=this.fields?this.fields:o(_,D)?Object.fromEntries(Object.keys(_._.selectedFields).map(e=>[e,_[e]])):o(_,qt)?_[B].selectedFields:o(_,G)?{}:fe(_),new jt({table:_,fields:t,isPartialSelect:i,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class Tt extends zt{static[a]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;cacheConfig=void 0;usedTables=new Set;constructor({table:e,fields:i,isPartialSelect:_,session:t,dialect:s,withList:n,distinct:a}){super(),this.config={withList:n,table:e,fields:{...i},distinct:a,setOperators:[]},this.isPartialSelect=_,this.session=t,this.dialect=s,this._={selectedFields:i,config:this.config},this.tableName=ve(e),this.joinsNotNullableMap="string"==typeof this.tableName?{[this.tableName]:!0}:{};for(const i of Yt(e))this.usedTables.add(i)}getUsedTables(){return[...this.usedTables]}createJoin(e,i){return(_,t)=>{const s=this.tableName,n=ve(_);for(const e of Yt(_))this.usedTables.add(e);if("string"==typeof n&&this.config.joins?.some(e=>e.alias===n))throw new Error(`Alias "${n}" 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 n&&!o(_,G))){const e=o(_,D)?_._.selectedFields:o(_,ae)?_[B].selectedFields:_[M.Symbol.Columns];this.config.fields[n]=e}if("function"==typeof t&&(t=t(new Proxy(this.config.fields,new O_({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.joins||(this.config.joins=[]),this.config.joins.push({on:t,table:_,joinType:e,alias:n,lateral:i}),"string"==typeof n)switch(e){case"left":this.joinsNotNullableMap[n]=!1;break;case"right":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[n]=!0;break;case"cross":case"inner":this.joinsNotNullableMap[n]=!0;break;case"full":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[n]=!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,i){return _=>{const t="function"==typeof _?_($t()):_;if(!he(this.getSelectedFields(),t.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:i,rightSelect:t}),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 O_({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.where=e,this}having(e){return"function"==typeof e&&(e=e(new Proxy(this.config.fields,new O_({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.having=e,this}groupBy(...e){if("function"==typeof e[0]){const i=e[0](new Proxy(this.config.fields,new O_({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(i)?i:[i]}else this.config.groupBy=e;return this}orderBy(...e){if("function"==typeof e[0]){const i=e[0](new Proxy(this.config.fields,new O_({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),_=Array.isArray(i)?i:[i];this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=_:this.config.orderBy=_}else{const i=e;this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=i:this.config.orderBy=i}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,i={}){return this.config.lockingClause={strength:e,config:i},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){const{typings:e,...i}=this.dialect.sqlToQuery(this.getSQL());return i}as(e){const i=[];if(i.push(...Yt(this.config.table)),this.config.joins)for(const e of this.config.joins)i.push(...Yt(e.table));return new Proxy(new D(this.getSQL(),this.config.fields,e,!1,[...new Set(i)]),new O_({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new O_({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 jt extends Tt{static[a]="PgSelect";_prepare(e){const{session:i,config:_,dialect:t,joinsNotNullableMap:s,authToken:n,cacheConfig:a,usedTables:o}=this;if(!i)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");const{fields:r}=_;return P.startActiveSpan("drizzle.prepareQuery",()=>{const _=ye(r),l=i.prepareQuery(t.sqlToQuery(this.getSQL()),_,e,!0,void 0,{type:"select",tables:[...o]},a);return l.joinsNotNullableMap=s,l.setToken(n)})}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=e=>P.startActiveSpan("drizzle.operation",()=>this._prepare().execute(e,this.authToken))}function Ot(e,i){return(_,t,...s)=>{const n=[t,...s].map(_=>({type:e,isAll:i,rightSelect:_}));for(const e of n)if(!he(_.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 _.addSetOperators(n)}}!function(e,i){for(const _ of i)for(const i of Object.getOwnPropertyNames(_.prototype))"constructor"!==i&&Object.defineProperty(e.prototype,i,Object.getOwnPropertyDescriptor(_.prototype,i)||Object.create(null))}(jt,[j_]);const $t=()=>({union:Dt,unionAll:Lt,intersect:Pt,intersectAll:Bt,except:It,exceptAll:Et}),Dt=Ot("union",!1),Lt=Ot("union",!0),Pt=Ot("intersect",!1),Bt=Ot("intersect",!0),It=Ot("except",!1),Et=Ot("except",!0);class Ft{static[a]="PgQueryBuilder";dialect;dialectConfig;constructor(e){this.dialect=o(e,At)?e:void 0,this.dialectConfig=o(e,At)?void 0:e}$with=(e,i)=>{const _=this;return{as:t=>("function"==typeof t&&(t=t(_)),new Proxy(new L(t.getSQL(),i??("getSelectedFields"in t?t.getSelectedFields()??{}:{}),e,!0),new O_({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"})))}};with(...e){const i=this;return{select:function(_){return new Ct({fields:_??void 0,session:void 0,dialect:i.getDialect(),withList:e})},selectDistinct:function(e){return new Ct({fields:e??void 0,session:void 0,dialect:i.getDialect(),distinct:!0})},selectDistinctOn:function(e,_){return new Ct({fields:_??void 0,session:void 0,dialect:i.getDialect(),distinct:{on:e}})}}}select(e){return new Ct({fields:e??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(e){return new Ct({fields:e??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(e,i){return new Ct({fields:i??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:e}})}getDialect(){return this.dialect||(this.dialect=new At(this.dialectConfig)),this.dialect}}class Vt{constructor(e,i){this.name=e,this.schema=i}static[a]="PgDefaultViewBuilderCore";config={};with(e){return this.config.with=e,this}}class Qt extends Vt{static[a]="PgViewBuilder";as(e){"function"==typeof e&&(e=e(new Ft));const i=new O_({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}),_=new Proxy(e.getSelectedFields(),i);return new Proxy(new Kt({pgConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:_,query:e.getSQL().inlineParams()}}),i)}}class Rt extends Vt{static[a]="PgManualViewBuilder";columns;constructor(e,i,_){super(e,_),this.columns=fe(B_(e,i))}existing(){return new Proxy(new Kt({pgConfig:void 0,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:void 0}}),new O_({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}as(e){return new Proxy(new Kt({pgConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:e.inlineParams()}}),new O_({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}}class Jt{constructor(e,i){this.name=e,this.schema=i}static[a]="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 Ut extends Jt{static[a]="PgMaterializedViewBuilder";as(e){"function"==typeof e&&(e=e(new Ft));const i=new O_({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}),_=new Proxy(e.getSelectedFields(),i);return new Proxy(new Ht({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:_,query:e.getSQL().inlineParams()}}),i)}}class Mt extends Jt{static[a]="PgManualMaterializedViewBuilder";columns;constructor(e,i,_){super(e,_),this.columns=fe(B_(e,i))}existing(){return new Proxy(new Ht({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 O_({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}as(e){return new Proxy(new Ht({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 O_({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}}class Kt extends qt{static[a]="PgView";[M_];constructor({pgConfig:e,config:i}){super(i),e&&(this[M_]={with:e.with})}}const Wt=Symbol.for("drizzle:PgMaterializedViewConfig");class Ht extends qt{static[a]="PgMaterializedView";[Wt];constructor({pgConfig:e,config:i}){super(i),this[Wt]={with:e?.with,using:e?.using,tablespace:e?.tablespace,withNoData:e?.withNoData}}}function Yt(e){return o(e,L_)?[e[I]?`${e[I]}.${e[M.Symbol.BaseName]}`:e[M.Symbol.BaseName]]:o(e,D)?e._.usedTables??[]:o(e,G)?e.usedTables??[]:[]}class Gt{constructor(e,i,_){this.seqName=e,this.seqOptions=i,this.schema=_}static[a]="PgSequence"}class Zt{constructor(e){this.schemaName=e}static[a]="PgSchema";table=(e,i,_)=>P_(e,i,_,this.schemaName);view=(e,i)=>function(e,i,_){return i?new Rt(e,i,_):new Qt(e,_)}(e,i,this.schemaName);materializedView=(e,i)=>function(e,i,_){return i?new Mt(e,i,_):new Ut(e,_)}(e,i,this.schemaName);enum(e,i){return Array.isArray(i)?function(e,i,_){const t=Object.assign(e=>new O(e??"",t),{enumName:e,enumValues:i,schema:_,[j]:!0});return t}(e,[...i],this.schemaName):function(e,i,_){const t=Object.assign(e=>new C(e??"",t),{enumName:e,enumValues:Object.values(i),schema:_,[j]:!0});return t}(e,i,this.schemaName)}sequence=(e,i)=>function(e,i,_){return new Gt(e,i,_)}(e,i,this.schemaName);getSQL(){return new G([_e.identifier(this.schemaName)])}shouldOmitSQLParens(){return!0}}function Xt(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 Zt(e)}const es=Xt("raw"),is=Xt("rendered"),_s=Xt("internal"),ts=Xt("cached"),ss=es.enum("state",["draft","published","expired"]),ns=es.enum("cohort",["acorn_20","cat_23","studio_27","unknown","orphaned"]),as=es.enum("restriction_level",["ogl_compatible","ogl_equivalent","restricted","highly_restricted"]),os=es.enum("media_provenance",["oak_created","oak_illustration","partner_created","creative_commons","pixabay","pexels","unsplash","openverse","freesvg","needpix","bridgeman","shutterstock","dall_e","adobe_firefly","other"]),rs=es.enum("acquisition_basis",["oak_owned","public_domain","gratis","paid","creative_commons"]),ls=es.enum("permission_status",["not_required","granted","denied"]),ds=es.enum("usage_restrictions",["restricted_use","ogl__open_government_license_","internal_use_only","attribution_required"]),us=es.enum("licence",["cc0","cc_by","cc_by_sa","cc_by_nc","cc_by_nc_sa","cc_by_nc_nd","cc_by_nd","ogl","unlimited_use","limited_use_permission_required","single_use_permission_required","other"]),cs=es.enum("question_type",["explanatory-text","match","multiple-choice","order","short-answer","text"]),ps=es.enum("tag_category",["discipline","domain","world_view"]),ms=es.enum("media_kind",["video","sound"]),gs=es.enum("clip_section",["intro","lesson_outline"]),ys=es.enum("redirect_type",["301","302","307","308"]),hs=es.enum("redirect_entity_source",["lessons","units","programmes","subjects"]),fs=_s.enum("operation",["insert","update","delete"]),vs=_s.enum("media_type_enum",["video","sound","gdrive_file","bucket_file"]),bs=_s.enum("lesson_component_type_enum",["document","downloadable","lesson_video","media_clip","media_clip_collection","quiz"]),ks={_cohort:ns("_cohort")},xs={created_at:c_("created_at",{withTimezone:!0}).notNull().defaultNow()},Ss={...xs,updated_at:c_("updated_at",{withTimezone:!0}).notNull().defaultNow().$onUpdateFn(()=>new Date)},ws=_s.enum("release_type",["mathfix","migration"]),Ns=_s.table("releases",{release_id:si("release_id").primaryKey().generatedByDefaultAsIdentity(),_authoring_state:ss("_authoring_state").notNull(),approved:De("approved").notNull().default(!1),approver:pi("approver"),description:s_("description"),estimated_release_date:He("estimated_release_date"),locked:De("locked").notNull().default(!1),name:s_("name"),notes:s_("notes"),release_type:ws("release_type"),release_uid:Be("release_uid",{length:16}),...Ss},e=>[ge("releases_release_id_positive",_.sql`${e.release_id} > 0`)]),qs=e=>({_state:ss("_state").notNull(),_expired_release_id:e,_expiry_key:si("_expiry_key").generatedAlwaysAs(_.sql`coalesce(_expired_release_id, 0)`).notNull()}),As=qs(si("_expired_release_id").references(()=>Ns.release_id)),zs=qs(si("_expired_release_id")),Cs={_authoring_state:ss("_authoring_state").notNull()},Ts=({name:e,column:i})=>p({name:e,columns:[i],foreignColumns:[Ns.release_id]}),js=e=>si(e).notNull().default(0),Os={_choice_state:ss("_choice_state").notNull(),_choice_expiry_key:js("_choice_expiry_key")},$s={_lesson_state:ss("_lesson_state").notNull(),_lesson_expiry_key:js("_lesson_expiry_key")},Ds={_programme_state:ss("_programme_state").notNull(),_programme_expiry_key:js("_programme_expiry_key")},Ls={_question_state:ss("_question_state").notNull(),_question_expiry_key:js("_question_expiry_key")},Ps={_quiz_state:ss("_quiz_state").notNull(),_quiz_expiry_key:js("_quiz_expiry_key")},Bs={_subject_phase_state:ss("_subject_phase_state").notNull(),_subject_phase_expiry_key:js("_subject_phase_expiry_key")},Is={_thread_state:ss("_thread_state").notNull(),_thread_expiry_key:js("_thread_expiry_key")},Es={_unit_state:ss("_unit_state").notNull(),_unit_expiry_key:js("_unit_expiry_key")},Fs={_unit_variant_state:ss("_unit_variant_state").notNull(),_unit_variant_expiry_key:js("_unit_variant_expiry_key")},Vs={_works_copyright_state:ss("_works_copyright_state").notNull(),_works_copyright_expiry_key:js("_works_copyright_expiry_key")},Qs={_choice_state:ss("_choice_state"),_choice_expiry_key:js("_choice_expiry_key")},Rs={_unit_variant_state:ss("_unit_variant_state"),_unit_variant_expiry_key:js("_unit_variant_expiry_key")},Js=({name:e,columnA:i,columnB:t})=>ge(e,_.sql`${i} = 'expired' or ${t} = 'expired' or ${i} = ${t}`),Us=({name:e,columnA:i,columnB:t})=>ge(e,_.sql`${i} = 'expired' or ${t} is null or ${t} = 'expired' or ${i} = ${t}`),Ms=({name:e,columnA:i,columnB:t,allow:s})=>ge(e,_.sql.join([_.sql`${i} = 'expired'`,_.sql`${t} = 'expired'`,_.sql`${i} = ${t}`,...s.map(([e,s])=>_.sql`(${i} = ${_.sql.raw(`'${e}'`)} and ${t} = ${_.sql.raw(`'${s}'`)})`)],_.sql` or `)),Ks=e=>{if(_.is(e,$))return e.enum;if("PgEnumColumn"!==e.columnType)return;const i=Reflect.get(e,"config");var t;return"object"==typeof(t=i)&&null!==t&&!Array.isArray(t)&&"enum"in i?i.enum:void 0},Ws=(e,i)=>{if(Ks(i)!==ss)throw new Error(`${e}: ${i.name} is not a state column`);if(!i.notNull)throw new Error(`${e}: ${i.name} may be null, so a published check would pass`)},Hs=({prefix:e,state:i,table:t,columns:s})=>{const n=Array.isArray(i)?i:[i];for(const i of n)Ws(e,i);return s.map(i=>ge(`${e}_${i}_req_pub`,_.sql`${_.sql.join(n.map(e=>_.sql`${e} <> 'published'`),_.sql` or `)} or ${t[i]} is not null`))},Ys={_expire_on_release:De("_expire_on_release").notNull().default(!1),_release_id:si("_release_id").references(()=>Ns.release_id)},Gs=es.table("gdrive_files",{gdrive_file_id:si("gdrive_file_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,deprecated_fields:pi("deprecated_fields"),epoch:s_("epoch"),google_drive_id:s_("google_drive_id"),google_drive_url:s_("google_drive_url"),opendocument_presentation_bucket_name:s_("opendocument_presentation_bucket_name"),opendocument_presentation_bucket_path:s_("opendocument_presentation_bucket_path"),opendocument_text_bucket_name:s_("opendocument_text_bucket_name"),opendocument_text_bucket_path:s_("opendocument_text_bucket_path"),pdf_bucket_name:s_("pdf_bucket_name"),pdf_bucket_path:s_("pdf_bucket_path"),powerpoint_bucket_name:s_("powerpoint_bucket_name"),powerpoint_bucket_path:s_("powerpoint_bucket_path"),previous_document_id:si("previous_document_id"),word_bucket_name:s_("word_bucket_name"),word_bucket_path:s_("word_bucket_path"),...ks,...Ys,...Ss}),Zs={lesson_id:si("lesson_id").notNull().generatedByDefaultAsIdentity(),...As,deprecated_fields:pi("deprecated_fields"),equipment_and_resources:pi("equipment_and_resources"),has_tag_practical_not_remote:De("has_tag_practical_not_remote").notNull().default(!1),is_sensitive:De("is_sensitive").notNull().default(!1),key_learning_points:pi("key_learning_points"),keywords:pi("keywords"),lesson_outline:pi("lesson_outline"),lesson_uid:Be("lesson_uid",{length:16}).notNull(),misconceptions_and_common_mistakes:pi("misconceptions_and_common_mistakes"),phonics_outcome:s_("phonics_outcome"),pupil_lesson_outcome:s_("pupil_lesson_outcome"),slug:s_("slug").notNull(),teacher_tips:pi("teacher_tips"),title:s_("title").notNull(),...ks,...Ys,...Ss},Xs=["_release_id","key_learning_points","pupil_lesson_outcome"],en=es.table("lessons",Zs,e=>[R_({columns:[e.lesson_id,e._state,e._expiry_key]}),m("lessons_slug_unique").on(e._state,e._expiry_key,e.slug),...Hs({prefix:"lessons",state:e._state,table:e,columns:Xs})]),_n=es.enum("document_type",["slidedeck","worksheet","worksheet_answers","supplementary_resource","lesson_guide"]);es.table("documents",{document_id:si("document_id").notNull().generatedByDefaultAsIdentity(),...As,gdrive_file_id:si("gdrive_file_id").notNull(),lesson_id:si("lesson_id"),deprecated_fields:pi("deprecated_fields"),document_type:_n("document_type").notNull(),document_uid:Be("document_uid",{length:16}),previous_lesson_id:si("previous_lesson_id"),...ks,...Ys,...Ss},e=>[R_({columns:[e.document_id,e._state,e._expiry_key]}),p({name:"documents_lesson_fk",columns:[e.lesson_id,e._state,e._expiry_key],foreignColumns:[en.lesson_id,en._state,en._expiry_key]}),p({name:"documents_gdrive_file_fk",columns:[e.gdrive_file_id],foreignColumns:[Gs.gdrive_file_id]}),m("documents_lesson_id_document_type__state_unique").on(e._state,e._expiry_key,e.lesson_id,e.document_type)]);const tn=es.table("bucket_files",{bucket_file_id:si("bucket_file_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,bucket_name:s_("bucket_name"),bucket_path:s_("bucket_path"),byte_size:si("byte_size"),cloudinary_public_id:s_("cloudinary_public_id"),cloudinary_source_url:s_("cloudinary_source_url"),content_type:s_("content_type"),deprecated_fields:pi("deprecated_fields"),filename:s_("filename"),media_description:s_("media_description"),name:s_("name"),previous_downloadable_id:si("previous_downloadable_id"),...ks,...Ys,...Ss},e=>[m("bucket_files_cloudinary_public_id_unique").on(e.cloudinary_public_id)]);es.table("downloadables",{downloadable_id:si("downloadable_id").notNull().generatedByDefaultAsIdentity(),...As,bucket_file_id:si("bucket_file_id").notNull(),lesson_id:si("lesson_id"),custom_title:s_("custom_title"),deprecated_fields:pi("deprecated_fields"),position:si("position").notNull(),previous_lesson_id:si("previous_lesson_id"),...ks,...Ys,...Ss},e=>[R_({columns:[e.downloadable_id,e._state,e._expiry_key]}),p({name:"downloadables_lesson_fk",columns:[e.lesson_id,e._state,e._expiry_key],foreignColumns:[en.lesson_id,en._state,en._expiry_key]}),p({name:"downloadables_bucket_file_fk",columns:[e.bucket_file_id],foreignColumns:[tn.bucket_file_id]}),Q_("downloadables_lesson_position_unique").on(e.lesson_id,e.position,e._state,e._expiry_key)]);const sn=es.table("videos",{video_id:si("video_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,cloudinary_public_id:s_("cloudinary_public_id"),cloudinary_source_url:s_("cloudinary_source_url"),contains_identifiable_face:De("contains_identifiable_face"),deprecated_fields:pi("deprecated_fields"),duration_seconds:ji("duration_seconds"),has_bsl:De("has_bsl"),media_description:s_("media_description"),mux_asset_id:s_("mux_asset_id"),mux_open_playback_id:s_("mux_open_playback_id"),mux_secure_playback_id:s_("mux_secure_playback_id"),name:s_("name"),previous_lesson_video_id:si("previous_lesson_video_id"),previous_media_clip_ids:si("previous_media_clip_ids").array(),raw_mux_data:pi("raw_mux_data"),title:s_("title"),url:s_("url"),video_uid:Be("video_uid",{length:16}),...ks,...Ys,...Ss},e=>[m("videos_cloudinary_public_id_unique").on(e.cloudinary_public_id),m("videos_cloudinary_source_url_unique").on(e.cloudinary_source_url)]);es.table("lesson_videos",{lesson_video_id:si("lesson_video_id").notNull().generatedByDefaultAsIdentity(),...As,lesson_id:si("lesson_id"),sign_language_video_id:si("sign_language_video_id"),video_id:si("video_id"),previous_lesson_id:si("previous_lesson_id"),...ks,...Ys,...Ss},e=>[R_({columns:[e.lesson_video_id,e._state,e._expiry_key]}),p({name:"lesson_videos_lesson_fk",columns:[e.lesson_id,e._state,e._expiry_key],foreignColumns:[en.lesson_id,en._state,en._expiry_key]}),p({columns:[e.video_id],foreignColumns:[sn.video_id]}),p({name:"lesson_videos_sign_lang_video_fk",columns:[e.sign_language_video_id],foreignColumns:[sn.video_id]}),Q_("lesson_videos_lesson_unique").on(e.lesson_id,e._state,e._expiry_key),ge("lesson_videos_video_required_published",_.sql`${e._state} <> 'published' or ${e.video_id} is not null`)]);const nn=es.table("media_clip_collection",{media_clip_collection_id:si("media_clip_collection_id").notNull().generatedByDefaultAsIdentity(),...zs,lesson_id:si("lesson_id"),previous_lesson_id:si("previous_lesson_id"),...ks,...Ys,...Ss},e=>[R_({name:"mc_collection_pk",columns:[e.media_clip_collection_id,e._state,e._expiry_key]}),p({name:"mc_collection_lesson_fk",columns:[e.lesson_id,e._state,e._expiry_key],foreignColumns:[en.lesson_id,en._state,en._expiry_key]}),Q_("media_clip_collection_lesson_unique").on(e.lesson_id,e._state,e._expiry_key),Ts({name:"mc_collection_expired_release_fk",column:e._expired_release_id})]),an=es.table("sounds",{sound_id:si("sound_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,cloudinary_public_id:s_("cloudinary_public_id"),cloudinary_source_url:s_("cloudinary_source_url"),duration_seconds:ji("duration_seconds"),media_description:s_("media_description"),mux_asset_id:s_("mux_asset_id"),mux_open_playback_id:s_("mux_open_playback_id"),name:s_("name"),previous_media_clip_ids:si("previous_media_clip_ids").array(),title:s_("title"),...ks,...Ys,...Ss},e=>[m("sounds_cloudinary_public_id_unique").on(e.cloudinary_public_id),m("sounds_cloudinary_source_url_unique").on(e.cloudinary_source_url)]);es.table("media_clips",{media_clip_id:si("media_clip_id").notNull().generatedByDefaultAsIdentity(),...As,media_clip_collection_id:si("media_clip_collection_id").notNull(),sound_id:si("sound_id"),video_id:si("video_id"),clip_section:gs("clip_section").notNull(),custom_title:s_("custom_title"),lesson_outline_index:si("lesson_outline_index"),media_kind:ms("media_kind"),position:si("position"),...ks,...Ys,...Ss},e=>[R_({columns:[e.media_clip_id,e._state,e._expiry_key]}),p({name:"media_clips_mc_collection_fk",columns:[e.media_clip_collection_id,e._state,e._expiry_key],foreignColumns:[nn.media_clip_collection_id,nn._state,nn._expiry_key]}),p({columns:[e.sound_id],foreignColumns:[an.sound_id]}),p({columns:[e.video_id],foreignColumns:[sn.video_id]}),ge("media_clip_video_or_sound",_.sql`(video_id IS NOT NULL AND sound_id IS NULL) OR (video_id IS NULL AND sound_id IS NOT NULL)`),ge("media_clip_section_lesson_outline",_.sql`(clip_section = 'lesson_outline' AND lesson_outline_index IS NOT NULL)
8
- OR (clip_section = 'intro' AND lesson_outline_index IS NULL)`),ge("media_clips_position_required_unless_expiring",_.sql`position IS NOT NULL
7
+ `;await i.execute(te`CREATE SCHEMA IF NOT EXISTS ${te.identifier(s)}`),await i.execute(n);const a=(await i.all(te`select id, hash, created_at from ${te.identifier(s)}.${te.identifier(_)} order by created_at desc limit 1`))[0];await i.transaction(async i=>{for await(const t of e)if(!a||Number(a.created_at)<t.folderMillis){for(const e of t.sql)await i.execute(te.raw(e));await i.execute(te`insert into ${te.identifier(s)}.${te.identifier(_)} ("hash", "created_at") values(${t.hash}, ${t.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 i=[te`with `];for(const[t,_]of e.entries())i.push(te`${te.identifier(_._.alias)} as (${_._.sql})`),t<e.length-1&&i.push(te`, `);return i.push(te` `),te.join(i)}buildDeleteQuery({table:e,where:i,returning:t,withList:_}){return te`${this.buildWithCTE(_)}delete from ${e}${i?te` where ${i}`:void 0}${t?te` returning ${this.buildSelection(t,{isSingleTable:!0})}`:void 0}`}buildUpdateSet(e,i){const t=e[M.Symbol.Columns],_=Object.keys(t).filter(e=>void 0!==i[e]||void 0!==t[e]?.onUpdateFn),s=_.length;return te.join(_.flatMap((e,_)=>{const n=t[e],a=n.onUpdateFn?.(),r=i[e]??(o(a,G)?a:te.param(a,n)),l=te`${te.identifier(this.casing.getColumnCasing(n))} = ${r}`;return _<s-1?[l,te.raw(", ")]:[l]}))}buildUpdateQuery({table:e,set:i,where:t,returning:_,withList:s,from:n,joins:a}){const o=this.buildWithCTE(s),r=e[Dt.Symbol.Name],l=e[Dt.Symbol.Schema],u=e[Dt.Symbol.OriginalName],d=r===u?void 0:r,c=te`${l?te`${te.identifier(l)}.`:void 0}${te.identifier(u)}${d&&te` ${te.identifier(d)}`}`,p=this.buildUpdateSet(e,i),m=n&&te.join([te.raw(" from "),this.buildFromTable(n)]);return te`${o}update ${c} set ${p}${m}${this.buildJoins(a)}${t?te` where ${t}`:void 0}${_?te` returning ${this.buildSelection(_,{isSingleTable:!n})}`:void 0}`}buildSelection(e,{isSingleTable:i=!1}={}){const t=e.length,_=e.flatMap(({field:e},_)=>{const s=[];if(o(e,G.Aliased)&&e.isSelectionField)s.push(te.identifier(e.fieldAlias));else if(o(e,G.Aliased)||o(e,G)){const t=o(e,G.Aliased)?e.sql:e;i?s.push(new G(t.queryChunks.map(e=>o(e,w)?te.identifier(this.casing.getColumnCasing(e)):e))):s.push(t),o(e,G.Aliased)&&s.push(te` as ${te.identifier(e.fieldAlias)}`)}else if(o(e,r))i?s.push(te.identifier(this.casing.getColumnCasing(e))):s.push(e);else if(o(e,L)){const i=Object.entries(e._.selectedFields);if(1===i.length){const t=i[0][1],_=o(t,G)?t.decoder:o(t,r)?{mapFromDriverValue:e=>t.mapFromDriverValue(e)}:t.sql.decoder;_&&(e._.sql.decoder=_)}s.push(e)}return _<t-1&&s.push(te`, `),s});return te.join(_)}buildJoins(e){if(!e||0===e.length)return;const i=[];for(const[t,_]of e.entries()){0===t&&i.push(te` `);const s=_.table,n=_.lateral?te` lateral`:void 0,a=_.on?te` on ${_.on}`:void 0;if(o(s,Dt)){const e=s[Dt.Symbol.Name],t=s[Dt.Symbol.Schema],o=s[Dt.Symbol.OriginalName],r=e===o?void 0:_.alias;i.push(te`${te.raw(_.joinType)} join${n} ${t?te`${te.identifier(t)}.`:void 0}${te.identifier(o)}${r&&te` ${te.identifier(r)}`}${a}`)}else if(o(s,ae)){const e=s[B].name,t=s[B].schema,o=s[B].originalName,r=e===o?void 0:_.alias;i.push(te`${te.raw(_.joinType)} join${n} ${t?te`${te.identifier(t)}.`:void 0}${te.identifier(o)}${r&&te` ${te.identifier(r)}`}${a}`)}else i.push(te`${te.raw(_.joinType)} join${n} ${s}${a}`);t<e.length-1&&i.push(te` `)}return te.join(i)}buildFromTable(e){if(o(e,M)&&e[M.Symbol.IsAlias]){let i=te`${te.identifier(e[M.Symbol.OriginalName])}`;return e[M.Symbol.Schema]&&(i=te`${te.identifier(e[M.Symbol.Schema])}.${i}`),te`${i} ${te.identifier(e[M.Symbol.Name])}`}return e}buildSelectQuery({withList:e,fields:i,fieldsFlat:t,where:_,having:s,table:n,joins:a,orderBy:l,groupBy:u,limit:d,offset:c,lockingClause:p,distinct:m,setOperators:g}){const y=t??ye(i);for(const e of y)if(o(e.field,r)&&K(e.field.table)!==(o(n,L)?n._.alias:o(n,q_)?n[B].name:o(n,G)?void 0:K(n))&&!(e=>a?.some(({alias:i})=>i===(e[M.Symbol.IsAlias]?K(e):e[M.Symbol.BaseName])))(e.field.table)){const i=K(e.field.table);throw new Error(`Your "${e.path.join("->")}" field references a column "${i}"."${e.field.name}", but the table "${i}" is not part of the query! Did you forget to join it?`)}const h=!a||0===a.length,f=this.buildWithCTE(e);let v;m&&(v=!0===m?te` distinct`:te` distinct on (${te.join(m.on,te`, `)})`);const b=this.buildSelection(y,{isSingleTable:h}),x=this.buildFromTable(n),k=this.buildJoins(a),N=_?te` where ${_}`:void 0,w=s?te` having ${s}`:void 0;let S,q;l&&l.length>0&&(S=te` order by ${te.join(l,te`, `)}`),u&&u.length>0&&(q=te` group by ${te.join(u,te`, `)}`);const A="object"==typeof d||"number"==typeof d&&d>=0?te` limit ${d}`:void 0,z=c?te` offset ${c}`:void 0,C=te.empty();if(p){const e=te` for ${te.raw(p.strength)}`;p.config.of&&e.append(te` of ${te.join(Array.isArray(p.config.of)?p.config.of:[p.config.of],te`, `)}`),p.config.noWait?e.append(te` nowait`):p.config.skipLocked&&e.append(te` skip locked`),C.append(e)}const T=te`${f}select${v} ${b} from ${x}${k}${N}${q}${w}${S}${A}${z}${C}`;return g.length>0?this.buildSetOperations(T,g):T}buildSetOperations(e,i){const[t,..._]=i;if(!t)throw new Error("Cannot pass undefined values to any set operator");return 0===_.length?this.buildSetOperationQuery({leftSelect:e,setOperator:t}):this.buildSetOperations(this.buildSetOperationQuery({leftSelect:e,setOperator:t}),_)}buildSetOperationQuery({leftSelect:e,setOperator:{type:i,isAll:t,rightSelect:_,limit:s,orderBy:n,offset:a}}){const r=te`(${e.getSQL()}) `,l=te`(${_.getSQL()})`;let u;if(n&&n.length>0){const e=[];for(const i of n)if(o(i,w))e.push(te.identifier(i.name));else if(o(i,G)){for(let e=0;e<i.queryChunks.length;e++){const t=i.queryChunks[e];o(t,w)&&(i.queryChunks[e]=te.identifier(t.name))}e.push(te`${i}`)}else e.push(te`${i}`);u=te` order by ${te.join(e,te`, `)} `}const d="object"==typeof s||"number"==typeof s&&s>=0?te` limit ${s}`:void 0,c=te.raw(`${i} ${t?"all ":""}`);return te`${r}${c}${l}${u}${d}${a?te` offset ${a}`:void 0}`}buildInsertQuery({table:e,values:i,onConflict:t,returning:_,withList:s,select:n,overridingSystemValue_:a}){const r=[],l=e[M.Symbol.Columns],u=Object.entries(l).filter(([e,i])=>!i.shouldDisableInsert()),d=u.map(([,e])=>te.identifier(this.casing.getColumnCasing(e)));if(n){const e=i;o(e,G)?r.push(e):r.push(e.getSQL())}else{const e=i;r.push(te.raw("values "));for(const[i,t]of e.entries()){const _=[];for(const[e,i]of u){const s=t[e];if(void 0===s||o(s,ie)&&void 0===s.value)if(void 0!==i.defaultFn){const e=i.defaultFn(),t=o(e,G)?e:te.param(e,i);_.push(t)}else if(i.default||void 0===i.onUpdateFn)_.push(te`default`);else{const e=i.onUpdateFn(),t=o(e,G)?e:te.param(e,i);_.push(t)}else _.push(s)}r.push(_),i<e.length-1&&r.push(te`, `)}}const c=this.buildWithCTE(s),p=te.join(r);return te`${c}insert into ${e} ${d} ${!0===a?te`overriding system value `:void 0}${p}${t?te` on conflict ${t}`:void 0}${_?te` returning ${this.buildSelection(_,{isSingleTable:!0})}`:void 0}`}buildRefreshMaterializedViewQuery({view:e,concurrently:i,withNoData:t}){return te`refresh materialized view${i?te` concurrently`:void 0} ${e}${t?te` with no data`:void 0}`}prepareTyping(e){return o(e,ci)||o(e,li)?"json":o(e,qi)?"decimal":o(e,at)?"time":o(e,lt)||o(e,dt)?"timestamp":o(e,Me)||o(e,We)?"date":o(e,mt)?"uuid":"none"}sqlToQuery(e,i){return e.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:i})}buildRelationalQueryWithoutPK({fullSchema:e,schema:i,tableNamesMap:t,table:_,tableConfig:s,queryConfig:n,tableAlias:a,nestedQueryRelation:l,joinOn:u}){let d,c,p,m=[],g=[];const y=[];if(!0===n){m=Object.entries(s.columns).map(([e,i])=>({dbKey:i.name,tsKey:e,field:ue(i,a),relationTableTsKey:void 0,isJson:!1,selection:[]}))}else{const _=Object.fromEntries(Object.entries(s.columns).map(([e,i])=>[e,ue(i,a)]));if(n.where){const e="function"==typeof n.where?n.where(_,{and:i_,between:m_,eq:Xt,exists:c_,gt:s_,gte:n_,ilike:f_,inArray:r_,isNull:u_,isNotNull:d_,like:y_,lt:a_,lte:o_,ne:e_,not:__,notBetween:g_,notExists:p_,notLike:h_,notIlike:v_,notInArray:l_,or:t_,sql:te}):n.where;p=e&&ce(e,a)}const l=[];let u=[];if(n.columns){let e=!1;for(const[i,t]of Object.entries(n.columns))void 0!==t&&i in s.columns&&(e||!0!==t||(e=!0),u.push(i));u.length>0&&(u=e?u.filter(e=>!0===n.columns?.[e]):Object.keys(s.columns).filter(e=>!u.includes(e)))}else u=Object.keys(s.columns);for(const e of u){const i=s.columns[e];l.push({tsKey:e,value:i})}let h,f=[];if(n.with&&(f=Object.entries(n.with).filter(e=>!!e[1]).map(([e,i])=>({tsKey:e,queryConfig:i,relation:s.relations[e]}))),n.extras){h="function"==typeof n.extras?n.extras(_,{sql:te}):n.extras;for(const[e,i]of Object.entries(h))l.push({tsKey:e,value:de(i,a)})}for(const{tsKey:e,value:i}of l)m.push({dbKey:o(i,G.Aliased)?i.fieldAlias:s.columns[e].name,tsKey:e,field:o(i,r)?ue(i,a):i,relationTableTsKey:void 0,isJson:!1,selection:[]});let v="function"==typeof n.orderBy?n.orderBy(_,{sql:te,asc:b_,desc:x_}):n.orderBy??[];Array.isArray(v)||(v=[v]),g=v.map(e=>o(e,r)?ue(e,a):ce(e,a)),d=n.limit,c=n.offset;for(const{tsKey:_,queryConfig:s,relation:n}of f){const r=S_(i,t,n),l=t[W(n.referencedTable)],u=`${a}_${_}`,d=i_(...r.fields.map((e,i)=>Xt(ue(r.references[i],u),ue(e,a)))),c=this.buildRelationalQueryWithoutPK({fullSchema:e,schema:i,tableNamesMap:t,table:e[l],tableConfig:i[l],queryConfig:o(n,N_)?!0===s?{limit:1}:{...s,limit:1}:s,tableAlias:u,joinOn:d,nestedQueryRelation:n}),p=te`${te.identifier(u)}.${te.identifier("data")}`.as(_);y.push({on:te`true`,table:new L(c.sql,{},u),alias:u,joinType:"left",lateral:!0}),m.push({dbKey:_,tsKey:_,field:p,relationTableTsKey:l,isJson:!0,selection:c.selection})}}if(0===m.length)throw new Gt({message:`No fields selected for table "${s.tsName}" ("${a}")`});let h;if(p=i_(u,p),l){let e=te`json_build_array(${te.join(m.map(({field:e,tsKey:i,isJson:t})=>t?te`${te.identifier(`${a}_${i}`)}.${te.identifier("data")}`:o(e,G.Aliased)?e.sql:e),te`, `)})`;o(l,w_)&&(e=te`coalesce(json_agg(${e}${g.length>0?te` order by ${te.join(g,te`, `)}`:void 0}), '[]'::json)`);const i=[{dbKey:"data",tsKey:"data",field:e.as("data"),isJson:!0,relationTableTsKey:s.tsName,selection:m}];void 0!==d||void 0!==c||g.length>0?(h=this.buildSelectQuery({table:le(_,a),fields:{},fieldsFlat:[{path:[],field:te.raw("*")}],where:p,limit:d,offset:c,orderBy:g,setOperators:[]}),p=void 0,d=void 0,c=void 0,g=[]):h=le(_,a),h=this.buildSelectQuery({table:o(h,Dt)?h:new L(h,{},a),fields:{},fieldsFlat:i.map(({field:e})=>({path:[],field:o(e,r)?ue(e,a):e})),joins:y,where:p,limit:d,offset:c,orderBy:g,setOperators:[]})}else h=this.buildSelectQuery({table:le(_,a),fields:{},fieldsFlat:m.map(({field:e})=>({path:[],field:o(e,r)?ue(e,a):e})),joins:y,where:p,limit:d,offset:c,orderBy:g,setOperators:[]});return{tableTsKey:s.tsName,sql:h,selection:m}}}class z_{static[a]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class C_{static[a]="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 i=!!this.fields,t=e;let _;return _=this.fields?this.fields:o(t,L)?Object.fromEntries(Object.keys(t._.selectedFields).map(e=>[e,t[e]])):o(t,q_)?t[B].selectedFields:o(t,G)?{}:fe(t),new O_({table:t,fields:_,isPartialSelect:i,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class T_ extends z_{static[a]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;cacheConfig=void 0;usedTables=new Set;constructor({table:e,fields:i,isPartialSelect:t,session:_,dialect:s,withList:n,distinct:a}){super(),this.config={withList:n,table:e,fields:{...i},distinct:a,setOperators:[]},this.isPartialSelect=t,this.session=_,this.dialect=s,this._={selectedFields:i,config:this.config},this.tableName=ve(e),this.joinsNotNullableMap="string"==typeof this.tableName?{[this.tableName]:!0}:{};for(const i of Y_(e))this.usedTables.add(i)}getUsedTables(){return[...this.usedTables]}createJoin(e,i){return(t,_)=>{const s=this.tableName,n=ve(t);for(const e of Y_(t))this.usedTables.add(e);if("string"==typeof n&&this.config.joins?.some(e=>e.alias===n))throw new Error(`Alias "${n}" 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 n&&!o(t,G))){const e=o(t,L)?t._.selectedFields:o(t,ae)?t[B].selectedFields:t[M.Symbol.Columns];this.config.fields[n]=e}if("function"==typeof _&&(_=_(new Proxy(this.config.fields,new jt({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.joins||(this.config.joins=[]),this.config.joins.push({on:_,table:t,joinType:e,alias:n,lateral:i}),"string"==typeof n)switch(e){case"left":this.joinsNotNullableMap[n]=!1;break;case"right":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[n]=!0;break;case"cross":case"inner":this.joinsNotNullableMap[n]=!0;break;case"full":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[n]=!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,i){return t=>{const _="function"==typeof t?t($_()):t;if(!he(this.getSelectedFields(),_.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:i,rightSelect:_}),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 jt({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.where=e,this}having(e){return"function"==typeof e&&(e=e(new Proxy(this.config.fields,new jt({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.having=e,this}groupBy(...e){if("function"==typeof e[0]){const i=e[0](new Proxy(this.config.fields,new jt({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(i)?i:[i]}else this.config.groupBy=e;return this}orderBy(...e){if("function"==typeof e[0]){const i=e[0](new Proxy(this.config.fields,new jt({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),t=Array.isArray(i)?i:[i];this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=t:this.config.orderBy=t}else{const i=e;this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=i:this.config.orderBy=i}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,i={}){return this.config.lockingClause={strength:e,config:i},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){const{typings:e,...i}=this.dialect.sqlToQuery(this.getSQL());return i}as(e){const i=[];if(i.push(...Y_(this.config.table)),this.config.joins)for(const e of this.config.joins)i.push(...Y_(e.table));return new Proxy(new L(this.getSQL(),this.config.fields,e,!1,[...new Set(i)]),new jt({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new jt({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 O_ extends T_{static[a]="PgSelect";_prepare(e){const{session:i,config:t,dialect:_,joinsNotNullableMap:s,authToken:n,cacheConfig:a,usedTables:o}=this;if(!i)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");const{fields:r}=t;return P.startActiveSpan("drizzle.prepareQuery",()=>{const t=ye(r),l=i.prepareQuery(_.sqlToQuery(this.getSQL()),t,e,!0,void 0,{type:"select",tables:[...o]},a);return l.joinsNotNullableMap=s,l.setToken(n)})}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=e=>P.startActiveSpan("drizzle.operation",()=>this._prepare().execute(e,this.authToken))}function j_(e,i){return(t,_,...s)=>{const n=[_,...s].map(t=>({type:e,isAll:i,rightSelect:t}));for(const e of n)if(!he(t.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 t.addSetOperators(n)}}!function(e,i){for(const t of i)for(const i of Object.getOwnPropertyNames(t.prototype))"constructor"!==i&&Object.defineProperty(e.prototype,i,Object.getOwnPropertyDescriptor(t.prototype,i)||Object.create(null))}(O_,[Ot]);const $_=()=>({union:L_,unionAll:D_,intersect:P_,intersectAll:B_,except:E_,exceptAll:I_}),L_=j_("union",!1),D_=j_("union",!0),P_=j_("intersect",!1),B_=j_("intersect",!0),E_=j_("except",!1),I_=j_("except",!0);class F_{static[a]="PgQueryBuilder";dialect;dialectConfig;constructor(e){this.dialect=o(e,A_)?e:void 0,this.dialectConfig=o(e,A_)?void 0:e}$with=(e,i)=>{const t=this;return{as:_=>("function"==typeof _&&(_=_(t)),new Proxy(new D(_.getSQL(),i??("getSelectedFields"in _?_.getSelectedFields()??{}:{}),e,!0),new jt({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"})))}};with(...e){const i=this;return{select:function(t){return new C_({fields:t??void 0,session:void 0,dialect:i.getDialect(),withList:e})},selectDistinct:function(e){return new C_({fields:e??void 0,session:void 0,dialect:i.getDialect(),distinct:!0})},selectDistinctOn:function(e,t){return new C_({fields:t??void 0,session:void 0,dialect:i.getDialect(),distinct:{on:e}})}}}select(e){return new C_({fields:e??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(e){return new C_({fields:e??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(e,i){return new C_({fields:i??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:e}})}getDialect(){return this.dialect||(this.dialect=new A_(this.dialectConfig)),this.dialect}}class V_{constructor(e,i){this.name=e,this.schema=i}static[a]="PgDefaultViewBuilderCore";config={};with(e){return this.config.with=e,this}}class R_ extends V_{static[a]="PgViewBuilder";as(e){"function"==typeof e&&(e=e(new F_));const i=new jt({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}),t=new Proxy(e.getSelectedFields(),i);return new Proxy(new K_({pgConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:t,query:e.getSQL().inlineParams()}}),i)}}class Q_ extends V_{static[a]="PgManualViewBuilder";columns;constructor(e,i,t){super(e,t),this.columns=fe(Bt(e,i))}existing(){return new Proxy(new K_({pgConfig:void 0,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:void 0}}),new jt({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}as(e){return new Proxy(new K_({pgConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:e.inlineParams()}}),new jt({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}}class J_{constructor(e,i){this.name=e,this.schema=i}static[a]="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 U_ extends J_{static[a]="PgMaterializedViewBuilder";as(e){"function"==typeof e&&(e=e(new F_));const i=new jt({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}),t=new Proxy(e.getSelectedFields(),i);return new Proxy(new H_({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:t,query:e.getSQL().inlineParams()}}),i)}}class M_ extends J_{static[a]="PgManualMaterializedViewBuilder";columns;constructor(e,i,t){super(e,t),this.columns=fe(Bt(e,i))}existing(){return new Proxy(new H_({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 jt({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}as(e){return new Proxy(new H_({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 jt({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}}class K_ extends q_{static[a]="PgView";[Mt];constructor({pgConfig:e,config:i}){super(i),e&&(this[Mt]={with:e.with})}}const W_=Symbol.for("drizzle:PgMaterializedViewConfig");class H_ extends q_{static[a]="PgMaterializedView";[W_];constructor({pgConfig:e,config:i}){super(i),this[W_]={with:e?.with,using:e?.using,tablespace:e?.tablespace,withNoData:e?.withNoData}}}function Y_(e){return o(e,Dt)?[e[E]?`${e[E]}.${e[M.Symbol.BaseName]}`:e[M.Symbol.BaseName]]:o(e,L)?e._.usedTables??[]:o(e,G)?e.usedTables??[]:[]}class G_{constructor(e,i,t){this.seqName=e,this.seqOptions=i,this.schema=t}static[a]="PgSequence"}class Z_{constructor(e){this.schemaName=e}static[a]="PgSchema";table=(e,i,t)=>Pt(e,i,t,this.schemaName);view=(e,i)=>function(e,i,t){return i?new Q_(e,i,t):new R_(e,t)}(e,i,this.schemaName);materializedView=(e,i)=>function(e,i,t){return i?new M_(e,i,t):new U_(e,t)}(e,i,this.schemaName);enum(e,i){return Array.isArray(i)?function(e,i,t){const _=Object.assign(e=>new j(e??"",_),{enumName:e,enumValues:i,schema:t,[O]:!0});return _}(e,[...i],this.schemaName):function(e,i,t){const _=Object.assign(e=>new C(e??"",_),{enumName:e,enumValues:Object.values(i),schema:t,[O]:!0});return _}(e,i,this.schemaName)}sequence=(e,i)=>function(e,i,t){return new G_(e,i,t)}(e,i,this.schemaName);getSQL(){return new G([te.identifier(this.schemaName)])}shouldOmitSQLParens(){return!0}}function X_(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 Z_(e)}const es=X_("raw"),is=X_("rendered"),ts=X_("internal"),_s=X_("cached"),ss=es.enum("state",["draft","published","expired"]),ns=es.enum("cohort",["acorn_20","cat_23","studio_27","unknown","orphaned"]),as=es.enum("restriction_level",["ogl_compatible","ogl_equivalent","restricted","highly_restricted"]),os=es.enum("media_provenance",["oak_created","oak_illustration","partner_created","creative_commons","pixabay","pexels","unsplash","openverse","freesvg","needpix","bridgeman","shutterstock","dall_e","adobe_firefly","other"]),rs=es.enum("acquisition_basis",["oak_owned","public_domain","gratis","paid","creative_commons"]),ls=es.enum("permission_status",["not_required","granted","denied"]),us=es.enum("usage_restrictions",["restricted_use","ogl__open_government_license_","internal_use_only","attribution_required"]),ds=es.enum("licence",["cc0","cc_by","cc_by_sa","cc_by_nc","cc_by_nc_sa","cc_by_nc_nd","cc_by_nd","ogl","unlimited_use","limited_use_permission_required","single_use_permission_required","other"]),cs=es.enum("question_type",["explanatory-text","match","multiple-choice","order","short-answer","text"]),ps=es.enum("tag_category",["discipline","domain","world_view"]),ms=es.enum("media_kind",["video","sound"]),gs=es.enum("clip_section",["intro","lesson_outline"]),ys=es.enum("redirect_type",["301","302","307","308"]),hs=es.enum("redirect_entity_source",["lessons","units","programmes","subjects"]),fs=ts.enum("operation",["insert","update","delete"]),vs=ts.enum("media_type_enum",["video","sound","gdrive_file","bucket_file"]),bs=ts.enum("lesson_component_type_enum",["document","downloadable","lesson_video","media_clip","media_clip_collection","quiz"]),xs={_cohort:ns("_cohort")},ks={created_at:ct("created_at",{withTimezone:!0}).notNull().defaultNow()},Ns={...ks,updated_at:ct("updated_at",{withTimezone:!0}).notNull().defaultNow().$onUpdateFn(()=>new Date)},ws=ts.enum("release_type",["mathfix","migration"]),Ss=ts.table("releases",{release_id:si("release_id").primaryKey().generatedByDefaultAsIdentity(),_authoring_state:ss("_authoring_state").notNull(),approved:Le("approved").notNull().default(!1),approver:pi("approver"),description:st("description"),estimated_release_date:He("estimated_release_date"),locked:Le("locked").notNull().default(!1),name:st("name"),notes:st("notes"),release_type:ws("release_type"),release_uid:Be("release_uid",{length:16}).notNull(),...Ns},e=>[ge("releases_release_id_positive",t.sql`${e.release_id} > 0`)]),qs=e=>({_state:ss("_state").notNull(),_expired_release_id:e,_expiry_key:si("_expiry_key").generatedAlwaysAs(t.sql`coalesce(_expired_release_id, 0)`).notNull()}),As=qs(si("_expired_release_id").references(()=>Ss.release_id)),zs=qs(si("_expired_release_id")),Cs={_authoring_state:ss("_authoring_state").notNull()},Ts=({name:e,column:i})=>p({name:e,columns:[i],foreignColumns:[Ss.release_id]}),Os=e=>si(e).notNull().default(0),js={_choice_state:ss("_choice_state").notNull(),_choice_expiry_key:Os("_choice_expiry_key")},$s={_lesson_state:ss("_lesson_state").notNull(),_lesson_expiry_key:Os("_lesson_expiry_key")},Ls={_programme_state:ss("_programme_state").notNull(),_programme_expiry_key:Os("_programme_expiry_key")},Ds={_question_state:ss("_question_state").notNull(),_question_expiry_key:Os("_question_expiry_key")},Ps={_quiz_state:ss("_quiz_state").notNull(),_quiz_expiry_key:Os("_quiz_expiry_key")},Bs={_subject_phase_state:ss("_subject_phase_state").notNull(),_subject_phase_expiry_key:Os("_subject_phase_expiry_key")},Es={_thread_state:ss("_thread_state").notNull(),_thread_expiry_key:Os("_thread_expiry_key")},Is={_unit_state:ss("_unit_state").notNull(),_unit_expiry_key:Os("_unit_expiry_key")},Fs={_unit_variant_state:ss("_unit_variant_state").notNull(),_unit_variant_expiry_key:Os("_unit_variant_expiry_key")},Vs={_works_copyright_state:ss("_works_copyright_state").notNull(),_works_copyright_expiry_key:Os("_works_copyright_expiry_key")},Rs={_choice_state:ss("_choice_state"),_choice_expiry_key:Os("_choice_expiry_key")},Qs={_unit_variant_state:ss("_unit_variant_state"),_unit_variant_expiry_key:Os("_unit_variant_expiry_key")},Js=({name:e,columnA:i,columnB:_})=>ge(e,t.sql`${i} = 'expired' or ${_} = 'expired' or ${i} = ${_}`),Us=({name:e,columnA:i,columnB:_})=>ge(e,t.sql`${i} = 'expired' or ${_} is null or ${_} = 'expired' or ${i} = ${_}`),Ms=({name:e,columnA:i,columnB:_,allow:s})=>ge(e,t.sql.join([t.sql`${i} = 'expired'`,t.sql`${_} = 'expired'`,t.sql`${i} = ${_}`,...s.map(([e,s])=>t.sql`(${i} = ${t.sql.raw(`'${e}'`)} and ${_} = ${t.sql.raw(`'${s}'`)})`)],t.sql` or `)),Ks=e=>{if(t.is(e,$))return e.enum;if("PgEnumColumn"!==e.columnType)return;const i=Reflect.get(e,"config");var _;return"object"==typeof(_=i)&&null!==_&&!Array.isArray(_)&&"enum"in i?i.enum:void 0},Ws=(e,i)=>{if(Ks(i)!==ss)throw new Error(`${e}: ${i.name} is not a state column`);if(!i.notNull)throw new Error(`${e}: ${i.name} may be null, so a published check would pass`)},Hs=(e,i)=>{const _=Array.isArray(i)?i:[i];for(const i of _)Ws(e,i);return t.sql.join(_.map(e=>t.sql`${e} <> 'published'`),t.sql` or `)},Ys=({prefix:e,state:i,table:_,columns:s})=>{const n=Hs(e,i);return s.map(i=>ge(`${e}_${i}_req_pub`,t.sql`${n} or ${_[i]} is not null`))},Gs=({prefix:e,state:i,table:_,columns:s})=>{if(s.length<2)throw new Error(`${e}: at least two columns are required`);const n=`${e}_${s.join("_")}_one_req_pub`;if(n.length>=63)throw new Error(`${e}: constraint name ${n} is ${n.length} characters, which Postgres truncates at 62`);const a=Hs(e,i);return[ge(n,t.sql`${a} or ${t.sql.join(s.map(e=>t.sql`${_[e]} is not null`),t.sql` or `)}`)]},Zs={_expire_on_release:Le("_expire_on_release").notNull().default(!1),_release_id:si("_release_id").references(()=>Ss.release_id)},Xs=["_release_id","google_drive_url"],en=es.table("gdrive_files",{gdrive_file_id:si("gdrive_file_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,deprecated_fields:pi("deprecated_fields"),epoch:st("epoch"),google_drive_id:st("google_drive_id"),google_drive_url:st("google_drive_url"),opendocument_presentation_bucket_name:st("opendocument_presentation_bucket_name"),opendocument_presentation_bucket_path:st("opendocument_presentation_bucket_path"),opendocument_text_bucket_name:st("opendocument_text_bucket_name"),opendocument_text_bucket_path:st("opendocument_text_bucket_path"),pdf_bucket_name:st("pdf_bucket_name"),pdf_bucket_path:st("pdf_bucket_path"),powerpoint_bucket_name:st("powerpoint_bucket_name"),powerpoint_bucket_path:st("powerpoint_bucket_path"),previous_document_id:si("previous_document_id"),word_bucket_name:st("word_bucket_name"),word_bucket_path:st("word_bucket_path"),...xs,...Zs,...Ns},e=>[...Ys({prefix:"gdrive_files",state:e._authoring_state,table:e,columns:Xs})]),tn={lesson_id:si("lesson_id").notNull().generatedByDefaultAsIdentity(),...As,deprecated_fields:pi("deprecated_fields"),equipment_and_resources:pi("equipment_and_resources"),has_tag_practical_not_remote:Le("has_tag_practical_not_remote").notNull().default(!1),is_sensitive:Le("is_sensitive").notNull().default(!1),key_learning_points:pi("key_learning_points"),keywords:pi("keywords"),lesson_outline:pi("lesson_outline"),lesson_uid:Be("lesson_uid",{length:16}).notNull(),misconceptions_and_common_mistakes:pi("misconceptions_and_common_mistakes"),phonics_outcome:st("phonics_outcome"),pupil_lesson_outcome:st("pupil_lesson_outcome"),slug:st("slug").notNull(),teacher_tips:pi("teacher_tips"),title:st("title").notNull(),...xs,...Zs,...Ns},_n=["_release_id","key_learning_points","pupil_lesson_outcome"],sn=es.table("lessons",tn,e=>[Qt({columns:[e.lesson_id,e._state,e._expiry_key]}),m("lessons_slug_unique").on(e._state,e._expiry_key,e.slug),...Ys({prefix:"lessons",state:e._state,table:e,columns:_n})]),nn=es.enum("document_type",["slidedeck","worksheet","worksheet_answers","supplementary_resource","lesson_guide"]),an=["_release_id","lesson_id"];es.table("documents",{document_id:si("document_id").notNull().generatedByDefaultAsIdentity(),...As,gdrive_file_id:si("gdrive_file_id").notNull(),lesson_id:si("lesson_id"),deprecated_fields:pi("deprecated_fields"),document_type:nn("document_type").notNull(),document_uid:Be("document_uid",{length:16}).notNull(),previous_lesson_id:si("previous_lesson_id"),...xs,...Zs,...Ns},e=>[Qt({columns:[e.document_id,e._state,e._expiry_key]}),p({name:"documents_lesson_fk",columns:[e.lesson_id,e._state,e._expiry_key],foreignColumns:[sn.lesson_id,sn._state,sn._expiry_key]}),p({name:"documents_gdrive_file_fk",columns:[e.gdrive_file_id],foreignColumns:[en.gdrive_file_id]}),m("documents_lesson_id_document_type__state_unique").on(e._state,e._expiry_key,e.lesson_id,e.document_type),...Ys({prefix:"documents",state:e._state,table:e,columns:an})]);const on=["byte_size","cloudinary_public_id","content_type","name"],rn=es.table("bucket_files",{bucket_file_id:si("bucket_file_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,bucket_name:st("bucket_name"),bucket_path:st("bucket_path"),byte_size:si("byte_size"),cloudinary_public_id:st("cloudinary_public_id"),cloudinary_source_url:st("cloudinary_source_url"),content_type:st("content_type"),deprecated_fields:pi("deprecated_fields"),filename:st("filename"),media_description:st("media_description"),name:st("name"),previous_downloadable_id:si("previous_downloadable_id"),...xs,...Zs,...Ns},e=>[m("bucket_files_cloudinary_public_id_unique").on(e.cloudinary_public_id),...Ys({prefix:"bucket_files",state:e._authoring_state,table:e,columns:on})]),ln=["_release_id","lesson_id"];es.table("downloadables",{downloadable_id:si("downloadable_id").notNull().generatedByDefaultAsIdentity(),...As,bucket_file_id:si("bucket_file_id").notNull(),lesson_id:si("lesson_id"),custom_title:st("custom_title"),deprecated_fields:pi("deprecated_fields"),position:si("position").notNull(),previous_lesson_id:si("previous_lesson_id"),...xs,...Zs,...Ns},e=>[Qt({columns:[e.downloadable_id,e._state,e._expiry_key]}),p({name:"downloadables_lesson_fk",columns:[e.lesson_id,e._state,e._expiry_key],foreignColumns:[sn.lesson_id,sn._state,sn._expiry_key]}),p({name:"downloadables_bucket_file_fk",columns:[e.bucket_file_id],foreignColumns:[rn.bucket_file_id]}),Rt("downloadables_lesson_position_unique").on(e.lesson_id,e.position,e._state,e._expiry_key),...Ys({prefix:"downloadables",state:e._state,table:e,columns:ln})]);const un=es.table("videos",{video_id:si("video_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,cloudinary_public_id:st("cloudinary_public_id"),cloudinary_source_url:st("cloudinary_source_url"),contains_identifiable_face:Le("contains_identifiable_face"),deprecated_fields:pi("deprecated_fields"),duration_seconds:Oi("duration_seconds"),has_bsl:Le("has_bsl"),media_description:st("media_description"),mux_asset_id:st("mux_asset_id"),mux_open_playback_id:st("mux_open_playback_id"),mux_secure_playback_id:st("mux_secure_playback_id"),name:st("name"),previous_lesson_video_id:si("previous_lesson_video_id"),previous_media_clip_ids:si("previous_media_clip_ids").array(),raw_mux_data:pi("raw_mux_data"),title:st("title"),url:st("url"),video_uid:Be("video_uid",{length:16}),...xs,...Zs,...Ns},e=>[m("videos_cloudinary_public_id_unique").on(e.cloudinary_public_id),m("videos_cloudinary_source_url_unique").on(e.cloudinary_source_url)]),dn=["_release_id","lesson_id"];es.table("lesson_videos",{lesson_video_id:si("lesson_video_id").notNull().generatedByDefaultAsIdentity(),...As,lesson_id:si("lesson_id"),sign_language_video_id:si("sign_language_video_id"),video_id:si("video_id"),previous_lesson_id:si("previous_lesson_id"),...xs,...Zs,...Ns},e=>[Qt({columns:[e.lesson_video_id,e._state,e._expiry_key]}),p({name:"lesson_videos_lesson_fk",columns:[e.lesson_id,e._state,e._expiry_key],foreignColumns:[sn.lesson_id,sn._state,sn._expiry_key]}),p({columns:[e.video_id],foreignColumns:[un.video_id]}),p({name:"lesson_videos_sign_lang_video_fk",columns:[e.sign_language_video_id],foreignColumns:[un.video_id]}),Rt("lesson_videos_lesson_unique").on(e.lesson_id,e._state,e._expiry_key),ge("lesson_videos_video_required_published",t.sql`${e._state} <> 'published' or ${e.video_id} is not null`),...Ys({prefix:"lesson_videos",state:e._state,table:e,columns:dn})]);const cn=["_release_id","lesson_id"],pn=es.table("media_clip_collection",{media_clip_collection_id:si("media_clip_collection_id").notNull().generatedByDefaultAsIdentity(),...zs,lesson_id:si("lesson_id"),previous_lesson_id:si("previous_lesson_id"),...xs,...Zs,...Ns},e=>[Qt({name:"mc_collection_pk",columns:[e.media_clip_collection_id,e._state,e._expiry_key]}),p({name:"mc_collection_lesson_fk",columns:[e.lesson_id,e._state,e._expiry_key],foreignColumns:[sn.lesson_id,sn._state,sn._expiry_key]}),Rt("media_clip_collection_lesson_unique").on(e.lesson_id,e._state,e._expiry_key),Ts({name:"mc_collection_expired_release_fk",column:e._expired_release_id}),...Ys({prefix:"media_clip_collection",state:e._state,table:e,columns:cn})]),mn=es.table("sounds",{sound_id:si("sound_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,cloudinary_public_id:st("cloudinary_public_id"),cloudinary_source_url:st("cloudinary_source_url"),duration_seconds:Oi("duration_seconds"),media_description:st("media_description"),mux_asset_id:st("mux_asset_id"),mux_open_playback_id:st("mux_open_playback_id"),name:st("name"),previous_media_clip_ids:si("previous_media_clip_ids").array(),title:st("title"),...xs,...Zs,...Ns},e=>[m("sounds_cloudinary_public_id_unique").on(e.cloudinary_public_id),m("sounds_cloudinary_source_url_unique").on(e.cloudinary_source_url)]),gn=["_release_id"];es.table("media_clips",{media_clip_id:si("media_clip_id").notNull().generatedByDefaultAsIdentity(),...As,media_clip_collection_id:si("media_clip_collection_id").notNull(),sound_id:si("sound_id"),video_id:si("video_id"),clip_section:gs("clip_section").notNull(),custom_title:st("custom_title"),lesson_outline_index:si("lesson_outline_index"),media_kind:ms("media_kind").notNull(),position:si("position"),...xs,...Zs,...Ns},e=>[Qt({columns:[e.media_clip_id,e._state,e._expiry_key]}),p({name:"media_clips_mc_collection_fk",columns:[e.media_clip_collection_id,e._state,e._expiry_key],foreignColumns:[pn.media_clip_collection_id,pn._state,pn._expiry_key]}),p({columns:[e.sound_id],foreignColumns:[mn.sound_id]}),p({columns:[e.video_id],foreignColumns:[un.video_id]}),ge("media_clip_video_or_sound",t.sql`(video_id IS NOT NULL AND sound_id IS NULL) OR (video_id IS NULL AND sound_id IS NOT NULL)`),ge("media_clip_section_lesson_outline",t.sql`(clip_section = 'lesson_outline' AND lesson_outline_index IS NOT NULL)
8
+ OR (clip_section = 'intro' AND lesson_outline_index IS NULL)`),ge("media_clips_position_required_unless_expiring",t.sql`position IS NOT NULL
9
9
  OR _state = 'expired'
10
- OR (_state = 'draft' AND _expire_on_release)`),Q_("media_clips_lo_position_unique").on(e.media_clip_collection_id,e.lesson_outline_index,e.position,e._state,e._expiry_key).where(_.sql`${e.clip_section} = 'lesson_outline'`),Q_("media_clips_intro_position_unique").on(e.media_clip_collection_id,e.position,e._state,e._expiry_key).where(_.sql`${e.clip_section} = 'intro'`),V_("media_clips_mc_collection_idx").on(e.media_clip_collection_id,e._state)]);const on=es.table("images",{image_id:si("image_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,cloudinary_public_id:s_("cloudinary_public_id"),cloudinary_source_url:s_("cloudinary_source_url"),contains_identifiable_face:De("contains_identifiable_face"),height:si("height"),media_description:s_("media_description"),name:s_("name"),width:si("width"),...ks,...Ys,...Ss},e=>[m("images_cloudinary_public_id_unique").on(e.cloudinary_public_id),m("images_cloudinary_source_url_unique").on(e.cloudinary_source_url)]),rn=es.table("questions",{question_id:si("question_id").notNull().generatedByDefaultAsIdentity(),...As,stem_image_id:si("stem_image_id"),deprecated_fields:pi("deprecated_fields"),feedback:s_("feedback"),hint:s_("hint"),question_type:cs("question_type").notNull(),question_uid:Be("question_uid",{length:16}).notNull(),stem_text:s_("stem_text"),...ks,...Ys,...Ss},e=>[R_({columns:[e.question_id,e._state,e._expiry_key]}),p({columns:[e.stem_image_id],foreignColumns:[on.image_id]})]);es.table("question_options",{option_id:si("option_id").notNull().generatedByDefaultAsIdentity(),...As,body_image_id:si("body_image_id"),match_partner_image_id:si("match_partner_image_id"),question_id:si("question_id").notNull(),body_text:s_("body_text"),correct_order:si("correct_order"),is_default:De("is_default"),is_correct:De("is_correct"),match_partner_text:s_("match_partner_text"),position:si("position"),temporary_fields:pi("temporary_fields"),...ks,...Ys,...Ss},e=>[R_({columns:[e.option_id,e._state,e._expiry_key]}),p({name:"question_options_question_fk",columns:[e.question_id,e._state,e._expiry_key],foreignColumns:[rn.question_id,rn._state,rn._expiry_key]}),p({name:"question_options_body_image_fk",columns:[e.body_image_id],foreignColumns:[on.image_id]}),p({name:"question_options_match_partner_image_fk",columns:[e.match_partner_image_id],foreignColumns:[on.image_id]}),V_("question_options_question_idx").on(e.question_id,e._state)]);const ln=es.table("units",{unit_id:si("unit_id").notNull().generatedByDefaultAsIdentity(),...As,deprecated_fields:pi("deprecated_fields"),description:s_("description").notNull(),slug:s_("slug"),title:s_("title").notNull(),unit_uid:Be("unit_uid",{length:16}),why_this_why_now:s_("why_this_why_now"),...ks,...Ys,...Ss},e=>[R_({columns:[e.unit_id,e._state,e._expiry_key]})]);es.table("question_units",{question_id:si("question_id").notNull(),unit_id:si("unit_id").notNull(),...Ls,...Es,...ks,...Ys,...Ss},e=>[R_({name:"question_units_pk",columns:[e.question_id,e.unit_id,e._question_state,e._question_expiry_key,e._unit_state,e._unit_expiry_key]}),p({name:"question_units_question_fk",columns:[e.question_id,e._question_state,e._question_expiry_key],foreignColumns:[rn.question_id,rn._state,rn._expiry_key]}),p({name:"question_units_unit_fk",columns:[e.unit_id,e._unit_state,e._unit_expiry_key],foreignColumns:[ln.unit_id,ln._state,ln._expiry_key]}),Js({name:"question_units_state_coherence",columnA:e._question_state,columnB:e._unit_state})]);const dn=es.enum("quiz_role",["starter","exit"]),un=es.table("quizzes",{quiz_id:si("quiz_id").notNull().generatedByDefaultAsIdentity(),...As,lesson_id:si("lesson_id"),deprecated_fields:pi("deprecated_fields"),previous_lesson_id:si("previous_lesson_id"),quiz_answers_pdf_bucket_name:s_("quiz_answers_pdf_bucket_name"),quiz_answers_pdf_bucket_path:s_("quiz_answers_pdf_bucket_path"),quiz_pdf_bucket_name:s_("quiz_pdf_bucket_name"),quiz_pdf_bucket_path:s_("quiz_pdf_bucket_path"),quiz_role:dn("quiz_role").notNull(),quiz_uid:Be("quiz_uid",{length:16}).notNull(),...ks,...Ys,...Ss},e=>[R_({columns:[e.quiz_id,e._state,e._expiry_key]}),p({name:"quizzes_lesson_fk",columns:[e.lesson_id,e._state,e._expiry_key],foreignColumns:[en.lesson_id,en._state,en._expiry_key]}),Q_("quizzes_lesson_role_unique").on(e.lesson_id,e.quiz_role,e._state,e._expiry_key)]);es.table("quiz_questions",{quiz_id:si("quiz_id").notNull(),question_id:si("question_id").notNull(),...Ps,...Ls,position:si("position").notNull(),...ks,...Ys,...Ss},e=>[R_({name:"quiz_questions_pk",columns:[e.quiz_id,e.question_id,e._quiz_state,e._quiz_expiry_key,e._question_state,e._question_expiry_key]}),p({name:"quiz_questions_quiz_fk",columns:[e.quiz_id,e._quiz_state,e._quiz_expiry_key],foreignColumns:[un.quiz_id,un._state,un._expiry_key]}),p({name:"quiz_questions_question_fk",columns:[e.question_id,e._question_state,e._question_expiry_key],foreignColumns:[rn.question_id,rn._state,rn._expiry_key]}),Js({name:"quiz_questions_state_coherence",columnA:e._quiz_state,columnB:e._question_state})]);const cn=es.table("urls",{url_id:si("url_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,cloudinary_public_id:s_("cloudinary_public_id"),cloudinary_source_url:s_("cloudinary_source_url"),name:s_("name"),url:s_("url"),...ks,...Ys,...Ss},e=>[m("urls_cloudinary_public_id_unique").on(e.cloudinary_public_id),m("urls_cloudinary_source_url_unique").on(e.cloudinary_source_url)]),pn=es.table("media_copyright",{media_copyright_id:si("media_copyright_id").notNull().generatedByDefaultAsIdentity(),...As,bucket_file_id:si("bucket_file_id"),image_id:si("image_id"),sound_id:si("sound_id"),url_id:si("url_id"),video_id:si("video_id"),acquisition_basis:rs("acquisition_basis"),additional_restrictions:s_("additional_restrictions"),attribution:s_("attribution"),attribution_required:De("attribution_required"),deprecated_fields:pi("deprecated_fields"),internal_notes:s_("internal_notes"),legacy_data_shape:De("legacy_data_shape").notNull(),licence:us("licence"),media_copyright_uid:Be("media_copyright_uid",{length:16}).notNull(),media_provenance:os("media_provenance"),media_provenance_url:s_("media_provenance_url"),permission_status:ls("permission_status"),restriction_level_override:as("restriction_level_override"),third_party_id:s_("third_party_id"),usage_restrictions:ds("usage_restrictions"),...ks,...Ys,...Ss},e=>[R_({columns:[e.media_copyright_id,e._state,e._expiry_key]}),p({columns:[e.image_id],foreignColumns:[on.image_id]}),p({columns:[e.sound_id],foreignColumns:[an.sound_id]}),p({columns:[e.video_id],foreignColumns:[sn.video_id]}),p({name:"media_copyright_bucket_file_fk",columns:[e.bucket_file_id],foreignColumns:[tn.bucket_file_id]}),p({columns:[e.url_id],foreignColumns:[cn.url_id]}),ge("media_copyright_has_exactly_one_media",_.sql`(image_id IS NOT NULL)::int + (sound_id IS NOT NULL)::int + (video_id IS NOT NULL)::int + (bucket_file_id IS NOT NULL)::int + (url_id IS NOT NULL)::int = 1`),m("media_copyright_image_unique").on(e._state,e._expiry_key,e.image_id),m("media_copyright_sound_unique").on(e._state,e._expiry_key,e.sound_id),m("media_copyright_video_unique").on(e._state,e._expiry_key,e.video_id),m("media_copyright_bucket_file_unique").on(e._state,e._expiry_key,e.bucket_file_id),m("media_copyright_url_unique").on(e._state,e._expiry_key,e.url_id),m("media_copyright_uid_unique").on(e._state,e._expiry_key,e.media_copyright_uid)]),mn=_s.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"]),gn=_s.table("tpc_contracts",{tpc_contract_id:si("tpc_contract_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,deprecated_fields:pi("deprecated_fields"),effective_date:He("effective_date"),end_date:He("end_date"),juro_id:s_("juro_id").notNull(),juro_url:s_("juro_url"),name:s_("name").notNull(),raw_contract:pi("raw_contract"),restriction_level_override:as("restriction_level_override"),signing_side:s_("signing_side"),territory:mn("territory"),tpc_contract_uid:Be("tpc_contract_uid",{length:16}).notNull(),...Ss},()=>[]);es.table("media_copyright_tpc_contracts",{media_copyright_id:si("media_copyright_id").notNull(),tpc_contract_id:si("tpc_contract_id").notNull(),...zs,...ks,...Ys,_release_id:si("_release_id"),...Ss},e=>[R_({name:"media_copyright_tpc_contracts_pk",columns:[e.media_copyright_id,e.tpc_contract_id,e._state,e._expiry_key]}),p({name:"media_copyright_tpc_contract_media_copyright_fk",columns:[e.media_copyright_id,e._state,e._expiry_key],foreignColumns:[pn.media_copyright_id,pn._state,pn._expiry_key]}),p({name:"media_copyright_tpc_contract_tpc_contract_fk",columns:[e.tpc_contract_id],foreignColumns:[gn.tpc_contract_id]}),p({name:"media_copyright_tpc_contracts_release_fk",columns:[e._release_id],foreignColumns:[Ns.release_id]}),Ts({name:"media_copyright_tpc_contracts_expired_release_fk",column:e._expired_release_id})]),es.table("gdrive_file_images",{gdrive_file_id:si("gdrive_file_id").notNull(),image_id:si("image_id").notNull(),...Cs,...ks,...Ys,...Ss},e=>[R_({columns:[e.gdrive_file_id,e.image_id]}),p({name:"gdrive_file_images_gdrive_file_fk",columns:[e.gdrive_file_id],foreignColumns:[Gs.gdrive_file_id]}),p({columns:[e.image_id],foreignColumns:[on.image_id]})]),es.table("lesson_media",{lesson_media_id:si("lesson_media_id").notNull().generatedByDefaultAsIdentity(),...As,lesson_id:si("lesson_id").notNull(),bucket_file_id:si("bucket_file_id"),image_id:si("image_id"),sound_id:si("sound_id"),url_id:si("url_id"),video_id:si("video_id"),...ks,...Ys,...Ss},e=>[R_({name:"lesson_media_pk",columns:[e.lesson_media_id,e._state,e._expiry_key]}),p({name:"lesson_media_lesson_fk",columns:[e.lesson_id,e._state,e._expiry_key],foreignColumns:[en.lesson_id,en._state,en._expiry_key]}),p({name:"lesson_media_image_fk",columns:[e.image_id],foreignColumns:[on.image_id]}),p({name:"lesson_media_sound_fk",columns:[e.sound_id],foreignColumns:[an.sound_id]}),p({name:"lesson_media_video_fk",columns:[e.video_id],foreignColumns:[sn.video_id]}),p({name:"lesson_media_bucket_file_fk",columns:[e.bucket_file_id],foreignColumns:[tn.bucket_file_id]}),p({name:"lesson_media_url_fk",columns:[e.url_id],foreignColumns:[cn.url_id]}),ge("lesson_media_has_exactly_one_media",_.sql`(image_id IS NOT NULL)::int + (sound_id IS NOT NULL)::int + (video_id IS NOT NULL)::int + (bucket_file_id IS NOT NULL)::int + (url_id IS NOT NULL)::int = 1`),m("lesson_media_lesson_asset_unique").on(e._state,e._expiry_key,e.lesson_id,e.bucket_file_id,e.image_id,e.sound_id,e.url_id,e.video_id).nullsNotDistinct()]);const yn=es.table("works_copyright",{works_copyright_id:si("works_copyright_id").notNull().generatedByDefaultAsIdentity(),...As,attribution:s_("attribution"),author:s_("author"),deprecated_fields:pi("deprecated_fields"),raw_juro_data:pi("raw_juro_data"),restriction_level_override:as("restriction_level_override"),title:s_("title"),works_copyright_uid:Be("works_copyright_uid",{length:16}),...ks,...Ys,...Ss},e=>[R_({columns:[e.works_copyright_id,e._state,e._expiry_key]})]);es.table("lesson_works_copyright",{lesson_id:si("lesson_id").notNull(),works_copyright_id:si("works_copyright_id").notNull(),...$s,...Vs,...ks,...Ys,...Ss},e=>[R_({name:"lesson_works_copyright_pk",columns:[e.lesson_id,e.works_copyright_id,e._lesson_state,e._lesson_expiry_key,e._works_copyright_state,e._works_copyright_expiry_key]}),p({name:"lesson_works_copyright_lesson_fk",columns:[e.lesson_id,e._lesson_state,e._lesson_expiry_key],foreignColumns:[en.lesson_id,en._state,en._expiry_key]}),p({name:"lesson_works_copyright_works_copyright_fk",columns:[e.works_copyright_id,e._works_copyright_state,e._works_copyright_expiry_key],foreignColumns:[yn.works_copyright_id,yn._state,yn._expiry_key]}),Ms({name:"lesson_works_copyright_state_coherence",columnA:e._lesson_state,columnB:e._works_copyright_state,allow:[["draft","published"]]})]);const hn=es.table("features",{feature_id:si("feature_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,key:s_("key").notNull(),...Ys,...Ss},e=>[m("features_key_unique").on(e.key)]);es.table("lesson_features",{lesson_id:si("lesson_id").notNull(),feature_id:si("feature_id").notNull(),...As,value:s_("value"),...ks,...Ys,...Ss},e=>[R_({columns:[e.lesson_id,e.feature_id,e._state,e._expiry_key]}),p({name:"lesson_features_lesson_fk",columns:[e.lesson_id,e._state,e._expiry_key],foreignColumns:[en.lesson_id,en._state,en._expiry_key]}),p({name:"lesson_features_feature_fk",columns:[e.feature_id],foreignColumns:[hn.feature_id]})]),es.table("sound_transcripts",{sound_id:si("sound_id").notNull(),...As,bad_language_detected:De("bad_language_detected"),deprecated_fields:pi("deprecated_fields"),inappropriate_words:pi("inappropriate_words"),language_approved:De("language_approved"),transcript:s_("transcript"),transcript_vtt_url:s_("transcript_vtt_url"),...ks,...Ys,...Ss},e=>[R_({columns:[e.sound_id,e._state,e._expiry_key]}),p({columns:[e.sound_id],foreignColumns:[an.sound_id]})]),es.table("video_captions",{video_id:si("video_id").notNull(),...As,bad_language_detected:De("bad_language_detected"),deprecated_fields:pi("deprecated_fields"),inappropriate_words:pi("inappropriate_words"),language_approved:De("language_approved"),transcript:s_("transcript"),transcript_vtt_url:s_("transcript_vtt_url"),...ks,...Ys,...Ss},e=>[R_({columns:[e.video_id,e._state,e._expiry_key]}),p({columns:[e.video_id],foreignColumns:[sn.video_id]})]),es.table("works_copyright_tpc_contracts",{works_copyright_id:si("works_copyright_id").notNull(),tpc_contract_id:si("tpc_contract_id").notNull(),...zs,...ks,...Ys,_release_id:si("_release_id"),...Ss},e=>[R_({name:"works_copyright_tpc_contracts_pk",columns:[e.works_copyright_id,e.tpc_contract_id,e._state,e._expiry_key]}),p({name:"works_copyright_tpc_contract_works_copyright_fk",columns:[e.works_copyright_id,e._state,e._expiry_key],foreignColumns:[yn.works_copyright_id,yn._state,yn._expiry_key]}),p({name:"works_copyright_tpc_contract_tpc_contract_fk",columns:[e.tpc_contract_id],foreignColumns:[gn.tpc_contract_id]}),p({name:"works_copyright_tpc_contracts_release_fk",columns:[e._release_id],foreignColumns:[Ns.release_id]}),Ts({name:"works_copyright_tpc_contracts_expired_release_fk",column:e._expired_release_id})]),es.table("videos_works_copyright",{video_id:si("video_id").notNull(),works_copyright_id:si("works_copyright_id").notNull(),...zs,...ks,...Ys,...Ss},e=>[R_({name:"videos_works_copyright_pk",columns:[e.video_id,e.works_copyright_id,e._state,e._expiry_key]}),p({name:"videos_works_copyright_video_fk",columns:[e.video_id],foreignColumns:[sn.video_id]}),p({name:"videos_works_copyright_works_copyright_fk",columns:[e.works_copyright_id,e._state,e._expiry_key],foreignColumns:[yn.works_copyright_id,yn._state,yn._expiry_key]}),Ts({name:"videos_works_copyright_expired_release_fk",column:e._expired_release_id})]);const fn=es.table("supervision_levels",{supervision_level_id:si("supervision_level_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,deprecated_fields:pi("deprecated_fields"),description:s_("description"),global_position:si("global_position").notNull(),supervision_level_rating:si("supervision_level_rating"),title:s_("title").notNull(),...Ys,...Ss}),vn=es.table("content_guidance",{content_guidance_id:si("content_guidance_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,supervision_level_id:si("supervision_level_id").notNull(),content_guidance_area:s_("content_guidance_area"),content_guidance_code:s_("content_guidance_code"),content_guidance_description:s_("content_guidance_description"),content_guidance_label:s_("content_guidance_label"),deprecated_fields:pi("deprecated_fields"),...Ys,...Ss},e=>[p({name:"content_guid_super_level_fk",columns:[e.supervision_level_id],foreignColumns:[fn.supervision_level_id]})]),bn=es.table("key_stages",{key_stage_id:si("key_stage_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,deprecated_fields:pi("deprecated_fields"),description:s_("description"),global_position:si("global_position").notNull(),key_stage:s_("key_stage"),slug:s_("slug"),...Ys,...Ss}),kn=es.table("phases",{phase_id:si("phase_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,deprecated_fields:pi("deprecated_fields"),description:s_("description"),global_position:si("global_position").notNull(),phase:s_("phase"),slug:s_("slug"),...Ys,...Ss}),xn=es.table("subjects",{subject_id:si("subject_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,subject_parent_id:si("subject_parent_id"),deprecated_fields:pi("deprecated_fields"),description:s_("description"),global_position:si("global_position").notNull(),non_curriculum:De("non_curriculum"),slug:s_("slug"),subject:s_("subject"),...Ys,...Ss},e=>[p({name:"subjects_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[e.subject_id]})]),Sn=es.table("years",{year_id:si("year_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,key_stage_id:si("key_stage_id").notNull(),phase_id:si("phase_id").notNull(),deprecated_fields:pi("deprecated_fields"),description:s_("description"),global_position:si("global_position").notNull(),slug:s_("slug"),year:s_("year"),...Ys,...Ss},e=>[p({columns:[e.key_stage_id],foreignColumns:[bn.key_stage_id]}),p({columns:[e.phase_id],foreignColumns:[kn.phase_id]})]);es.table("content_guidance_scopes",{scope_id:si("scope_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,content_guidance_id:si("content_guidance_id").notNull(),key_stage_id:si("key_stage_id"),phase_id:si("phase_id"),subject_id:si("subject_id"),subject_parent_id:si("subject_parent_id"),year_id:si("year_id"),...Ys,...Ss},e=>[p({name:"content_guid_scopes_content_guid_fk",columns:[e.content_guidance_id],foreignColumns:[vn.content_guidance_id]}),p({name:"content_guid_scopes_subject_fk",columns:[e.subject_id],foreignColumns:[xn.subject_id]}),p({name:"content_guid_scopes_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[xn.subject_id]}),p({name:"content_guid_scopes_phase_fk",columns:[e.phase_id],foreignColumns:[kn.phase_id]}),p({name:"content_guid_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[bn.key_stage_id]}),p({columns:[e.year_id],foreignColumns:[Sn.year_id]}),V_("content_guid_scopes_guidance_idx").on(e.content_guidance_id)]);const wn=es.table("exam_board_specs",{exam_board_spec_id:si("exam_board_spec_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,deprecated_fields:pi("deprecated_fields"),description:s_("description"),title:s_("title").notNull(),...Ys,...Ss});es.table("exam_board_spec_scopes",{scope_id:si("scope_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,exam_board_spec_id:si("exam_board_spec_id").notNull(),key_stage_id:si("key_stage_id"),phase_id:si("phase_id"),subject_id:si("subject_id"),subject_parent_id:si("subject_parent_id"),year_id:si("year_id"),...Ys,...Ss},e=>[p({name:"exam_spec_scopes_exam_spec_fk",columns:[e.exam_board_spec_id],foreignColumns:[wn.exam_board_spec_id]}),p({name:"exam_spec_scopes_subject_fk",columns:[e.subject_id],foreignColumns:[xn.subject_id]}),p({name:"exam_spec_scopes_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[xn.subject_id]}),p({name:"exam_spec_scopes_phase_fk",columns:[e.phase_id],foreignColumns:[kn.phase_id]}),p({name:"exam_spec_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[bn.key_stage_id]}),p({columns:[e.year_id],foreignColumns:[Sn.year_id]})]),es.table("lesson_content_guidance",{lesson_id:si("lesson_id").notNull(),content_guidance_id:si("content_guidance_id").notNull(),...zs,position:si("position").notNull(),...ks,...Ys,...Ss},e=>[R_({name:"lesson_content_guid_pk",columns:[e.lesson_id,e.content_guidance_id,e._state,e._expiry_key]}),p({name:"lesson_content_guid_lesson_fk",columns:[e.lesson_id,e._state,e._expiry_key],foreignColumns:[en.lesson_id,en._state,en._expiry_key]}),p({name:"lesson_content_guid_content_guid_fk",columns:[e.content_guidance_id],foreignColumns:[vn.content_guidance_id]}),Ts({name:"lesson_content_guid_expired_release_fk",column:e._expired_release_id})]);const Nn=es.table("tags",{tag_id:si("tag_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,deprecated_fields:pi("deprecated_fields"),tag_category:ps("tag_category"),title:s_("title").notNull(),...Ys,...Ss});es.table("lesson_tags",{lesson_id:si("lesson_id").notNull(),tag_id:si("tag_id").notNull(),...As,position:si("position").notNull(),...ks,...Ys,...Ss},e=>[R_({columns:[e.lesson_id,e.tag_id,e._state,e._expiry_key]}),p({name:"lesson_tags_lesson_fk",columns:[e.lesson_id,e._state,e._expiry_key],foreignColumns:[en.lesson_id,en._state,en._expiry_key]}),p({columns:[e.tag_id],foreignColumns:[Nn.tag_id]})]);const qn=es.table("national_curriculum",{national_curriculum_id:si("national_curriculum_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,deprecated_fields:pi("deprecated_fields"),description:s_("description"),title:s_("title").notNull(),...Ys,...Ss});es.table("national_curriculum_scopes",{scope_id:si("scope_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,key_stage_id:si("key_stage_id"),national_curriculum_id:si("national_curriculum_id").notNull(),phase_id:si("phase_id"),subject_id:si("subject_id"),subject_parent_id:si("subject_parent_id"),year_id:si("year_id"),...Ys,...Ss},e=>[p({name:"nat_curric_scopes_nat_curric_fk",columns:[e.national_curriculum_id],foreignColumns:[qn.national_curriculum_id]}),p({name:"nat_curric_scopes_subject_fk",columns:[e.subject_id],foreignColumns:[xn.subject_id]}),p({name:"nat_curric_scopes_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[xn.subject_id]}),p({name:"nat_curric_scopes_phase_fk",columns:[e.phase_id],foreignColumns:[kn.phase_id]}),p({name:"nat_curric_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[bn.key_stage_id]}),p({name:"nat_curric_scopes_year_fk",columns:[e.year_id],foreignColumns:[Sn.year_id]})]);const An=es.table("subject_categories",{subject_category_id:si("subject_category_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,deprecated_fields:pi("deprecated_fields"),description:s_("description"),slug:s_("slug"),title:s_("title").notNull(),...Ys,...Ss});es.table("subject_category_scopes",{scope_id:si("scope_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,key_stage_id:si("key_stage_id"),phase_id:si("phase_id"),subject_category_id:si("subject_category_id").notNull(),subject_id:si("subject_id"),subject_parent_id:si("subject_parent_id"),year_id:si("year_id"),...Ys,...Ss},e=>[p({name:"subj_cat_scopes_subj_cat_fk",columns:[e.subject_category_id],foreignColumns:[An.subject_category_id]}),p({name:"subj_cat_scopes_subject_fk",columns:[e.subject_id],foreignColumns:[xn.subject_id]}),p({name:"subj_cat_scopes_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[xn.subject_id]}),p({name:"subj_cat_scopes_phase_fk",columns:[e.phase_id],foreignColumns:[kn.phase_id]}),p({name:"subj_cat_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[bn.key_stage_id]}),p({columns:[e.year_id],foreignColumns:[Sn.year_id]})]),es.table("tag_scopes",{scope_id:si("scope_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,key_stage_id:si("key_stage_id"),phase_id:si("phase_id"),subject_id:si("subject_id"),subject_parent_id:si("subject_parent_id"),tag_id:si("tag_id").notNull(),year_id:si("year_id"),...Ys,...Ss},e=>[p({columns:[e.tag_id],foreignColumns:[Nn.tag_id]}),p({columns:[e.subject_id],foreignColumns:[xn.subject_id]}),p({name:"tag_scopes_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[xn.subject_id]}),p({columns:[e.phase_id],foreignColumns:[kn.phase_id]}),p({name:"tag_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[bn.key_stage_id]}),p({columns:[e.year_id],foreignColumns:[Sn.year_id]})]),es.table("unit_exam_board_specs",{unit_id:si("unit_id").notNull(),exam_board_spec_id:si("exam_board_spec_id").notNull(),...zs,position:si("position").notNull(),...ks,...Ys,...Ss},e=>[R_({name:"unit_exam_specs_pk",columns:[e.unit_id,e.exam_board_spec_id,e._state,e._expiry_key]}),p({name:"unit_exam_specs_unit_fk",columns:[e.unit_id,e._state,e._expiry_key],foreignColumns:[ln.unit_id,ln._state,ln._expiry_key]}),p({name:"unit_exam_spec_exam_spec_fk",columns:[e.exam_board_spec_id],foreignColumns:[wn.exam_board_spec_id]}),Ts({name:"unit_exam_specs_expired_release_fk",column:e._expired_release_id})]),es.table("unit_national_curriculum",{unit_id:si("unit_id").notNull(),national_curriculum_id:si("national_curriculum_id").notNull(),...zs,position:si("position").notNull(),...ks,...Ys,...Ss},e=>[R_({name:"unit_nat_curric_pk",columns:[e.unit_id,e.national_curriculum_id,e._state,e._expiry_key]}),p({name:"unit_nat_curric_unit_fk",columns:[e.unit_id,e._state,e._expiry_key],foreignColumns:[ln.unit_id,ln._state,ln._expiry_key]}),p({name:"unit_nat_curric_nat_curric_fk",columns:[e.national_curriculum_id],foreignColumns:[qn.national_curriculum_id]}),Ts({name:"unit_nat_curric_expired_release_fk",column:e._expired_release_id})]),es.table("unit_subject_categories",{unit_id:si("unit_id").notNull(),subject_category_id:si("subject_category_id").notNull(),...zs,position:si("position").notNull(),...ks,...Ys,...Ss},e=>[R_({name:"unit_subject_categories_pk",columns:[e.unit_id,e.subject_category_id,e._state,e._expiry_key]}),p({name:"unit_subject_categories_unit_fk",columns:[e.unit_id,e._state,e._expiry_key],foreignColumns:[ln.unit_id,ln._state,ln._expiry_key]}),p({name:"unit_subj_cat_subj_cat_fk",columns:[e.subject_category_id],foreignColumns:[An.subject_category_id]}),Ts({name:"unit_subject_categories_expired_release_fk",column:e._expired_release_id})]);const zn=es.table("exam_boards",{exam_board_id:si("exam_board_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,deprecated_fields:pi("deprecated_fields"),description:s_("description"),exam_board:s_("exam_board"),global_position:si("global_position").notNull(),slug:s_("slug"),...Ys,...Ss}),Cn=es.table("pathways",{pathway_id:si("pathway_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,deprecated_fields:pi("deprecated_fields"),description:s_("description"),global_position:si("global_position").notNull(),pathway:s_("pathway"),slug:s_("slug"),...Ys,...Ss}),Tn=es.table("tiers",{tier_id:si("tier_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,deprecated_fields:pi("deprecated_fields"),description:s_("description"),global_position:si("global_position").notNull(),slug:s_("slug"),tier:s_("tier"),...Ys,...Ss}),jn=es.table("unit_variants",{unit_variant_id:si("unit_variant_id").notNull().generatedByDefaultAsIdentity(),...As,exam_board_id:si("exam_board_id"),pathway_id:si("pathway_id"),subject_id:si("subject_id"),tier_id:si("tier_id"),unit_id:si("unit_id").notNull(),deprecated_fields:pi("deprecated_fields"),description_override:s_("description_override"),optionality:s_("optionality"),planned_number_of_lessons_override:si("planned_number_of_lessons_override"),prior_knowledge_requirements_override:s_("prior_knowledge_requirements_override").array(),title_override:s_("title_override"),unit_variant_uid:Be("unit_variant_uid",{length:16}),why_this_why_now_override:s_("why_this_why_now_override"),...ks,...Ys,...Ss},e=>[R_({columns:[e.unit_variant_id,e._state,e._expiry_key]}),p({name:"unit_variants_exam_board_fk",columns:[e.exam_board_id],foreignColumns:[zn.exam_board_id]}),p({columns:[e.pathway_id],foreignColumns:[Cn.pathway_id]}),p({columns:[e.subject_id],foreignColumns:[xn.subject_id]}),p({columns:[e.tier_id],foreignColumns:[Tn.tier_id]}),p({name:"unit_variants_unit_fk",columns:[e.unit_id,e._state,e._expiry_key],foreignColumns:[ln.unit_id,ln._state,ln._expiry_key]}),m("unit_variants_unit_scope_unique").on(e._state,e._expiry_key,e.exam_board_id,e.pathway_id,e.subject_id,e.tier_id,e.unit_id,e.optionality).nullsNotDistinct()]);es.table("unit_variant_exam_board_specs_override",{unit_variant_id:si("unit_variant_id").notNull(),exam_board_spec_id:si("exam_board_spec_id").notNull(),...zs,position:si("position").notNull(),...ks,...Ys,_release_id:si("_release_id"),...Ss},e=>[R_({name:"unit_variant_exam_board_specs_override_pk",columns:[e.unit_variant_id,e.exam_board_spec_id,e._state,e._expiry_key]}),p({name:"unit_var_exam_spec_ovr_release_fk",columns:[e._release_id],foreignColumns:[Ns.release_id]}),p({name:"unit_var_exam_spec_ovr_unit_var_fk",columns:[e.unit_variant_id,e._state,e._expiry_key],foreignColumns:[jn.unit_variant_id,jn._state,jn._expiry_key]}),p({name:"unit_var_exam_spec_ovr_exam_spec_fk",columns:[e.exam_board_spec_id],foreignColumns:[wn.exam_board_spec_id]}),Ts({name:"unit_var_exam_spec_ovr_expired_release_fk",column:e._expired_release_id})]),es.table("unit_variant_national_curriculum_override",{unit_variant_id:si("unit_variant_id").notNull(),national_curriculum_id:si("national_curriculum_id").notNull(),...zs,position:si("position").notNull(),...ks,...Ys,_release_id:si("_release_id"),...Ss},e=>[R_({name:"unit_variant_national_curriculum_override_pk",columns:[e.unit_variant_id,e.national_curriculum_id,e._state,e._expiry_key]}),p({name:"unit_var_nat_curric_ovr_release_fk",columns:[e._release_id],foreignColumns:[Ns.release_id]}),p({name:"unit_var_nat_curric_ovr_unit_var_fk",columns:[e.unit_variant_id,e._state,e._expiry_key],foreignColumns:[jn.unit_variant_id,jn._state,jn._expiry_key]}),p({name:"unit_var_nat_curric_ovr_nat_curric_fk",columns:[e.national_curriculum_id],foreignColumns:[qn.national_curriculum_id]}),Ts({name:"unit_var_nat_curric_ovr_expired_release_fk",column:e._expired_release_id})]),es.table("unit_variant_subject_categories_override",{unit_variant_id:si("unit_variant_id").notNull(),subject_category_id:si("subject_category_id").notNull(),...zs,position:si("position").notNull(),...ks,...Ys,_release_id:si("_release_id"),...Ss},e=>[R_({name:"unit_variant_subject_categories_override_pk",columns:[e.unit_variant_id,e.subject_category_id,e._state,e._expiry_key]}),p({name:"unit_var_subj_cat_ovr_release_fk",columns:[e._release_id],foreignColumns:[Ns.release_id]}),p({name:"unit_var_subj_cat_ovr_unit_var_fk",columns:[e.unit_variant_id,e._state,e._expiry_key],foreignColumns:[jn.unit_variant_id,jn._state,jn._expiry_key]}),p({name:"unit_var_subj_cat_ovr_subj_cat_fk",columns:[e.subject_category_id],foreignColumns:[An.subject_category_id]}),Ts({name:"unit_var_subj_cat_ovr_expired_release_fk",column:e._expired_release_id})]);const On=es.table("actions",{action_id:si("action_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,key:s_("key").notNull(),...Ys,...Ss},e=>[m("actions_key_unique").on(e.key)]),$n=es.table("overrides_and_exceptions",{overrides_and_exceptions_id:si("overrides_and_exceptions_id").notNull().generatedByDefaultAsIdentity(),...zs,description:s_("description"),temporary_fields:pi("temporary_fields"),used_by_queries:pi("used_by_queries").notNull().default([]),...ks,...Ys,...Ss},e=>[R_({name:"ovr_exc_pk",columns:[e.overrides_and_exceptions_id,e._state,e._expiry_key]}),Ts({name:"ovr_exc_expired_release_fk",column:e._expired_release_id})]);es.table("overrides_and_exceptions_actions",{overrides_and_exceptions_id:si("overrides_and_exceptions_id").notNull(),action_id:si("action_id").notNull(),...zs,value:pi("value").notNull(),...ks,...Ys,_release_id:si("_release_id"),...Ss},e=>[R_({name:"ovr_exc_actions_pk",columns:[e.overrides_and_exceptions_id,e.action_id,e._state,e._expiry_key]}),p({name:"ovr_exc_actions_release_fk",columns:[e._release_id],foreignColumns:[Ns.release_id]}),p({name:"ovr_exc_actions_ovr_exc_fk",columns:[e.overrides_and_exceptions_id,e._state,e._expiry_key],foreignColumns:[$n.overrides_and_exceptions_id,$n._state,$n._expiry_key]}),p({name:"ovr_exc_actions_action_fk",columns:[e.action_id],foreignColumns:[On.action_id]}),Ts({name:"ovr_exc_actions_expired_release_fk",column:e._expired_release_id})]),es.table("overrides_and_exceptions_feature_scopes",{overrides_and_exceptions_id:si("overrides_and_exceptions_id").notNull(),condition_id:si("condition_id").notNull(),feature_id:si("feature_id").notNull(),...zs,value:s_("value").notNull(),...ks,...Ys,_release_id:si("_release_id"),...Ss},e=>[R_({name:"ovr_exc_feature_scopes_pk",columns:[e.overrides_and_exceptions_id,e.condition_id,e.feature_id,e._state,e._expiry_key]}),p({name:"ovr_exc_feature_scopes_release_fk",columns:[e._release_id],foreignColumns:[Ns.release_id]}),p({name:"ovr_exc_feature_scopes_ovr_exc_fk",columns:[e.overrides_and_exceptions_id,e._state,e._expiry_key],foreignColumns:[$n.overrides_and_exceptions_id,$n._state,$n._expiry_key]}),p({name:"ovr_exc_feature_scopes_feature_fk",columns:[e.feature_id],foreignColumns:[hn.feature_id]}),Ts({name:"ovr_exc_feature_scopes_expired_release_fk",column:e._expired_release_id})]),es.table("overrides_and_exceptions_programme_scopes",{scope_id:si("scope_id").notNull().generatedByDefaultAsIdentity(),...zs,key_stage_id:si("key_stage_id"),overrides_and_exceptions_id:si("overrides_and_exceptions_id").notNull(),pathway_id:si("pathway_id"),phase_id:si("phase_id"),subject_id:si("subject_id"),tier_id:si("tier_id"),legacy:De("legacy"),subject_slug:s_("subject_slug"),...ks,...Ys,_release_id:si("_release_id"),...Ss},e=>[R_({name:"ovr_exc_programme_scopes_pk",columns:[e.scope_id,e._state,e._expiry_key]}),p({name:"ovr_exc_programme_scopes_release_fk",columns:[e._release_id],foreignColumns:[Ns.release_id]}),p({name:"ovr_exc_programme_scopes_ovr_exc_fk",columns:[e.overrides_and_exceptions_id,e._state,e._expiry_key],foreignColumns:[$n.overrides_and_exceptions_id,$n._state,$n._expiry_key]}),p({name:"ovr_exc_programme_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[bn.key_stage_id]}),p({name:"ovr_exc_programme_scopes_pathway_fk",columns:[e.pathway_id],foreignColumns:[Cn.pathway_id]}),p({name:"ovr_exc_programme_scopes_phase_fk",columns:[e.phase_id],foreignColumns:[kn.phase_id]}),p({name:"ovr_exc_programme_scopes_subject_fk",columns:[e.subject_id],foreignColumns:[xn.subject_id]}),p({name:"ovr_exc_programme_scopes_tier_fk",columns:[e.tier_id],foreignColumns:[Tn.tier_id]}),Ts({name:"ovr_exc_programme_scopes_expired_release_fk",column:e._expired_release_id})]),es.table("redirects",{entity_id:si("entity_id").notNull(),entity_source:hs("entity_source").notNull(),...As,description:s_("description"),redirect_entity_id:si("redirect_entity_id"),redirect_entity_source:hs("redirect_entity_source"),redirect_type:ys("redirect_type").notNull(),redirect_url:s_("redirect_url"),...ks,...Ys,...Ss},e=>[R_({columns:[e.entity_id,e.entity_source,e._state,e._expiry_key]}),ge("redirect_has_exactly_one_target",_.sql`(redirect_url IS NOT NULL)::int + (redirect_entity_id IS NOT NULL)::int = 1`),ge("redirect_entity_ref_complete",_.sql`(redirect_entity_id IS NULL) = (redirect_entity_source IS NULL)`)]);const Dn=es.table("choices",{choice_id:si("choice_id").notNull().generatedByDefaultAsIdentity(),...As,unit_id:si("unit_id").notNull(),temporary_fields:pi("temporary_fields"),...ks,...Ys,...Ss},e=>[R_({columns:[e.choice_id,e._state,e._expiry_key]}),p({name:"choices_unit_fk",columns:[e.unit_id,e._state,e._expiry_key],foreignColumns:[ln.unit_id,ln._state,ln._expiry_key]})]);es.table("choices_unit_variants",{unit_variant_id:si("unit_variant_id").notNull(),choice_id:si("choice_id").notNull(),...Fs,...Os,position:si("position").notNull(),...ks,...Ys,...Ss},e=>[R_({name:"choices_unit_var_pk",columns:[e.unit_variant_id,e.choice_id,e._unit_variant_state,e._unit_variant_expiry_key,e._choice_state,e._choice_expiry_key]}),p({name:"choices_unit_var_unit_var_fk",columns:[e.unit_variant_id,e._unit_variant_state,e._unit_variant_expiry_key],foreignColumns:[jn.unit_variant_id,jn._state,jn._expiry_key]}),p({name:"choices_unit_var_choice_fk",columns:[e.choice_id,e._choice_state,e._choice_expiry_key],foreignColumns:[Dn.choice_id,Dn._state,Dn._expiry_key]}),Js({name:"choices_unit_var_state_coherence",columnA:e._unit_variant_state,columnB:e._choice_state})]);const Ln=es.table("programmes",{programme_id:si("programme_id").notNull().generatedByDefaultAsIdentity(),...As,exam_board_id:si("exam_board_id"),pathway_id:si("pathway_id"),subject_id:si("subject_id").notNull(),tier_id:si("tier_id"),year_id:si("year_id").notNull(),deprecated_fields:pi("deprecated_fields"),legacy:De("legacy").notNull().default(!1),national_curriculum_content:De("national_curriculum_content").notNull().default(!1),programme_uid:Be("programme_uid",{length:16}),...ks,...Ys,...Ss},e=>[R_({columns:[e.programme_id,e._state,e._expiry_key]}),p({columns:[e.subject_id],foreignColumns:[xn.subject_id]}),p({columns:[e.year_id],foreignColumns:[Sn.year_id]}),p({columns:[e.tier_id],foreignColumns:[Tn.tier_id]}),p({name:"programmes_exam_board_fk",columns:[e.exam_board_id],foreignColumns:[zn.exam_board_id]}),p({columns:[e.pathway_id],foreignColumns:[Cn.pathway_id]}),m("programmes_factor_scope_unique").on(e._state,e._expiry_key,e.exam_board_id,e.pathway_id,e.subject_id,e.tier_id,e.year_id,e.legacy).nullsNotDistinct()]);es.table("inclusions",{programme_id:si("programme_id").notNull(),position:si("position").notNull(),...Ds,...Qs,...Rs,choice_id:si("choice_id"),unit_variant_id:si("unit_variant_id"),...ks,...Ys,...Ss},e=>[R_({name:"inclusions_pk",columns:[e.programme_id,e.position,e._programme_state,e._programme_expiry_key]}),ge("inclusions_xor_variant_choice",_.sql`num_nonnulls(${e.unit_variant_id}, ${e.choice_id}) = 1`),ge("inclusions_choice_state_matches",_.sql`(${e.choice_id} is null) = (${e._choice_state} is null)`),ge("inclusions_unit_variant_state_matches",_.sql`(${e.unit_variant_id} is null) = (${e._unit_variant_state} is null)`),Q_("inclusions_choice_unique").on(e.choice_id,e._choice_state,e._choice_expiry_key,e._programme_state,e._programme_expiry_key).where(_.sql`${e.choice_id} is not null`),Q_("inclusions_programme_unit_variant_unique").on(e.programme_id,e.unit_variant_id,e._programme_state,e._programme_expiry_key,e._unit_variant_state,e._unit_variant_expiry_key).where(_.sql`${e.unit_variant_id} is not null`),p({name:"inclusions_programme_fk",columns:[e.programme_id,e._programme_state,e._programme_expiry_key],foreignColumns:[Ln.programme_id,Ln._state,Ln._expiry_key]}),p({name:"inclusions_choice_fk",columns:[e.choice_id,e._choice_state,e._choice_expiry_key],foreignColumns:[Dn.choice_id,Dn._state,Dn._expiry_key]}),p({name:"inclusions_unit_var_fk",columns:[e.unit_variant_id,e._unit_variant_state,e._unit_variant_expiry_key],foreignColumns:[jn.unit_variant_id,jn._state,jn._expiry_key]}),Us({name:"inclusions_choice_state_coherence",columnA:e._programme_state,columnB:e._choice_state}),Us({name:"inclusions_unit_var_state_coherence",columnA:e._programme_state,columnB:e._unit_variant_state}),V_("inclusions_unit_var_idx").on(e.unit_variant_id,e._unit_variant_state)]);const Pn=es.table("subject_phases",{subject_id:si("subject_id").notNull(),phase_id:si("phase_id").notNull(),...As,curriculum_intent:s_("curriculum_intent"),deprecated_fields:pi("deprecated_fields"),prior_knowledge_requirements:De("prior_knowledge_requirements").notNull().default(!1),related_units:De("related_units").notNull().default(!1),unit_description:De("unit_description").notNull().default(!1),...ks,...Ys,...Ss},e=>[R_({columns:[e.subject_id,e.phase_id,e._state,e._expiry_key]}),p({columns:[e.subject_id],foreignColumns:[xn.subject_id]}),p({columns:[e.phase_id],foreignColumns:[kn.phase_id]})]),Bn=es.table("threads",{thread_id:si("thread_id").notNull().generatedByDefaultAsIdentity(),...As,deprecated_fields:pi("deprecated_fields"),description:s_("description"),slug:s_("slug"),thread_uid:Be("thread_uid",{length:16}),title:s_("title"),...ks,...Ys,...Ss},e=>[R_({columns:[e.thread_id,e._state,e._expiry_key]})]);es.table("subject_phase_threads",{subject_id:si("subject_id").notNull(),phase_id:si("phase_id").notNull(),thread_id:si("thread_id").notNull(),...Bs,...Is,deprecated_fields:pi("deprecated_fields"),position:si("position").notNull(),...ks,...Ys,...Ss},e=>[R_({name:"subject_phase_threads_pk",columns:[e.subject_id,e.phase_id,e.thread_id,e._subject_phase_state,e._subject_phase_expiry_key,e._thread_state,e._thread_expiry_key]}),p({name:"subject_phase_threads_subject_phase_fk",columns:[e.subject_id,e.phase_id,e._subject_phase_state,e._subject_phase_expiry_key],foreignColumns:[Pn.subject_id,Pn.phase_id,Pn._state,Pn._expiry_key]}),p({name:"subject_phase_threads_thread_fk",columns:[e.thread_id,e._thread_state,e._thread_expiry_key],foreignColumns:[Bn.thread_id,Bn._state,Bn._expiry_key]}),Js({name:"subject_phase_threads_state_coherence",columnA:e._subject_phase_state,columnB:e._thread_state})]),es.table("unit_threads",{thread_id:si("thread_id").notNull(),unit_id:si("unit_id").notNull(),...Is,...Es,deprecated_fields:pi("deprecated_fields"),position:si("position").notNull(),...ks,...Ys,...Ss},e=>[R_({name:"unit_threads_pk",columns:[e.thread_id,e.unit_id,e._thread_state,e._thread_expiry_key,e._unit_state,e._unit_expiry_key]}),p({name:"unit_threads_thread_fk",columns:[e.thread_id,e._thread_state,e._thread_expiry_key],foreignColumns:[Bn.thread_id,Bn._state,Bn._expiry_key]}),p({name:"unit_threads_unit_fk",columns:[e.unit_id,e._unit_state,e._unit_expiry_key],foreignColumns:[ln.unit_id,ln._state,ln._expiry_key]}),Js({name:"unit_threads_state_coherence",columnA:e._thread_state,columnB:e._unit_state})]),es.table("unit_catalogue",{subject_id:si("subject_id").notNull(),year_id:si("year_id").notNull(),unit_id:si("unit_id").notNull(),...As,...ks,...Ys,...Ss},e=>[R_({name:"unit_catalogue_pk",columns:[e.subject_id,e.year_id,e.unit_id,e._state,e._expiry_key]}),p({name:"unit_catalogue_unit_fk",columns:[e.unit_id,e._state,e._expiry_key],foreignColumns:[ln.unit_id,ln._state,ln._expiry_key]}),p({columns:[e.subject_id],foreignColumns:[xn.subject_id]}),p({columns:[e.year_id],foreignColumns:[Sn.year_id]}),V_("unit_catalogue_unit_idx").on(e.unit_id,e._state,e._expiry_key,e.subject_id,e.year_id)]),es.table("unit_lessons",{unit_id:si("unit_id").notNull(),lesson_id:si("lesson_id").notNull(),...Es,...$s,position:si("position").notNull(),...ks,...Ys,...Ss},e=>[R_({name:"unit_lessons_pk",columns:[e.unit_id,e.lesson_id,e._unit_state,e._unit_expiry_key,e._lesson_state,e._lesson_expiry_key]}),p({name:"unit_lessons_unit_fk",columns:[e.unit_id,e._unit_state,e._unit_expiry_key],foreignColumns:[ln.unit_id,ln._state,ln._expiry_key]}),p({name:"unit_lessons_lesson_fk",columns:[e.lesson_id,e._lesson_state,e._lesson_expiry_key],foreignColumns:[en.lesson_id,en._state,en._expiry_key]}),Js({name:"unit_lessons_state_coherence",columnA:e._unit_state,columnB:e._lesson_state}),V_("unit_lessons_lesson_idx").on(e.lesson_id,e._lesson_state,e._lesson_expiry_key,e.unit_id,e._unit_state,e._unit_expiry_key)]),es.table("unit_variant_lessons",{unit_variant_id:si("unit_variant_id").notNull(),lesson_id:si("lesson_id").notNull(),...Fs,...$s,deprecated_fields:pi("deprecated_fields"),position:si("position").notNull(),...ks,...Ys,...Ss},e=>[R_({name:"unit_var_lessons_pk",columns:[e.unit_variant_id,e.lesson_id,e._unit_variant_state,e._unit_variant_expiry_key,e._lesson_state,e._lesson_expiry_key]}),p({name:"unit_var_lessons_unit_var_fk",columns:[e.unit_variant_id,e._unit_variant_state,e._unit_variant_expiry_key],foreignColumns:[jn.unit_variant_id,jn._state,jn._expiry_key]}),p({name:"unit_var_lessons_lesson_fk",columns:[e.lesson_id,e._lesson_state,e._lesson_expiry_key],foreignColumns:[en.lesson_id,en._state,en._expiry_key]}),Js({name:"unit_var_lessons_state_coherence",columnA:e._unit_variant_state,columnB:e._lesson_state}),V_("unit_var_lessons_lesson_idx").on(e.lesson_id,e._lesson_state)]),es.table("unit_features",{unit_id:si("unit_id").notNull(),feature_id:si("feature_id").notNull(),...As,value:s_("value"),...ks,...Ys,...Ss},e=>[R_({columns:[e.unit_id,e.feature_id,e._state,e._expiry_key]}),p({name:"unit_features_unit_fk",columns:[e.unit_id,e._state,e._expiry_key],foreignColumns:[ln.unit_id,ln._state,ln._expiry_key]}),p({columns:[e.feature_id],foreignColumns:[hn.feature_id]})]);const In=_s.enum("lesson_component_operation_status_enum",["api_neutral","api_in_progress","api_failed","ingest_queued","ingest_in_progress","ingest_failed","ingest_completed"]),En=_s.enum("lesson_component_status_retirement_enum",["superseded","draft_discarded","component_expired","component_removed","orphaned"]);_s.table("lesson_component_status",{lesson_component_status_id:g_("lesson_component_status_id").primaryKey().defaultRandom(),lesson_component_id:si("lesson_component_id").notNull(),lesson_component_type:bs("lesson_component_type").notNull(),active_media_id:si("active_media_id"),active_media_type:vs("active_media_type"),approved:De("approved").notNull().default(!1),last_approved:c_("last_approved"),last_error_location:s_("last_error_location"),last_error_message:s_("last_error_message"),last_error_timestamp:c_("last_error_timestamp"),last_ingest_id:g_("last_ingest_id"),operation_status:In("operation_status").notNull().default("api_neutral"),previous_media_id:si("previous_media_id"),previous_media_type:vs("previous_media_type"),retired_at:c_("retired_at",{withTimezone:!0}),retired_reason:En("retired_reason"),...Ss},e=>[ge("lesson_comp_status_retired_both",_.sql`(${e.retired_at} is null) = (${e.retired_reason} is null)`),Q_("lesson_comp_status_live_unq").on(e.lesson_component_id,e.lesson_component_type).where(_.sql`${e.retired_at} is null`)]);const Fn=_s.enum("lesson_status_enum",["api_neutral","ingest_queued","ingest_in_progress","ingest_complete","ingest_failed"]);_s.table("lesson_status",{lesson_id:si("lesson_id").primaryKey(),approved:De("approved").notNull().default(!1),last_approved:c_("last_approved"),last_error_location:s_("last_error_location"),last_error_message:s_("last_error_message"),last_error_timestamp:c_("last_error_timestamp"),status:Fn("status").notNull().default("api_neutral"),...Ss});const Vn=_s.enum("media_status_enum",["neutral","in_progress","failed"]),Qn=_s.enum("media_status_retirement_enum",["superseded","media_retired","orphaned"]);_s.table("media_status",{media_status_id:g_("media_status_id").primaryKey().defaultRandom(),media_id:si("media_id").notNull(),media_type:vs("media_type").notNull(),last_error_location:s_("last_error_location"),last_error_message:s_("last_error_message"),last_error_timestamp:c_("last_error_timestamp"),last_lesson_component_id:si("last_lesson_component_id"),last_lesson_component_type:bs("last_lesson_component_type"),retired_at:c_("retired_at",{withTimezone:!0}),retired_reason:Qn("retired_reason"),status:Vn("status").notNull().default("neutral"),...Ss},e=>[ge("media_status_retired_both",_.sql`(${e.retired_at} is null) = (${e.retired_reason} is null)`),Q_("media_status_live_unq").on(e.media_id,e.media_type).where(_.sql`${e.retired_at} is null`)]),_s.table("mutations_log",{mutations_log_id:g_("mutations_log_id").primaryKey().defaultRandom(),actor_role:s_("actor_role"),actor_type:s_("actor_type"),app_id:s_("app_id"),changes:pi("changes").notNull(),operation:fs("operation").notNull(),record_key:pi("record_key").notNull(),table_name:s_("table_name").notNull(),...xs},e=>[V_("idx_mutations_log_record_key").using("gin",e.record_key)]);const Rn=_s.enum("contract_log_event_type_enum",["works_change","contract_change","works_added_to_contract"]);_s.table("tpc_contract_log",{tpc_contract_log_id:si("tpc_contract_log_id").primaryKey().generatedByDefaultAsIdentity(),tpc_contract_id:si("tpc_contract_id").notNull(),changed_at:c_("changed_at",{withTimezone:!0}).notNull(),event_type:Rn("event_type").notNull(),payload:pi("payload")},e=>[p({name:"tpc_contract_log_tpc_contract_fk",columns:[e.tpc_contract_id],foreignColumns:[gn.tpc_contract_id]})]);const Jn=_s.enum("restrictions_type_enum",["Restrictions 1","Restrictions 2","Restrictions 3","Restrictions 4","Restrictions 5","Restrictions 6","Restrictions 7","Additional Restrictions"]),Un=_s.table("tpc_restriction_definitions",{tpc_restriction_definition_id:si("tpc_restriction_definition_id").primaryKey().generatedByDefaultAsIdentity(),restriction_text:s_("restriction_text").notNull(),type:Jn("type").notNull(),...Ss},e=>[m("tpc_restriction_definitions_type_unique").on(e.restriction_text,e.type)]);_s.table("tpc_restrictions",{tpc_contract_id:si("tpc_contract_id").notNull(),tpc_restriction_definition_id:si("tpc_restriction_definition_id").notNull(),...As,restriction_override:s_("restriction_override"),...Ss},e=>[R_({name:"tpc_restrictions_pk",columns:[e.tpc_contract_id,e.tpc_restriction_definition_id,e._state,e._expiry_key]}),p({name:"tpc_restrictions_tpc_contract_fk",columns:[e.tpc_contract_id],foreignColumns:[gn.tpc_contract_id]}),p({name:"tpc_restrictions_tpc_restriction_definition_fk",columns:[e.tpc_restriction_definition_id],foreignColumns:[Un.tpc_restriction_definition_id]})]),is.view("sub_live_lesson_component_status",{lesson_component_id:si("lesson_component_id"),lesson_component_type:bs("lesson_component_type"),approved:De("approved"),last_approved:c_("last_approved"),operation_status:In("operation_status"),active_media_id:si("active_media_id"),active_media_type:vs("active_media_type"),last_ingest_id:g_("last_ingest_id"),created_at:c_("created_at",{withTimezone:!0})}).as(_.sql`
10
+ OR (_state = 'draft' AND _expire_on_release)`),Rt("media_clips_lo_position_unique").on(e.media_clip_collection_id,e.lesson_outline_index,e.position,e._state,e._expiry_key).where(t.sql`${e.clip_section} = 'lesson_outline'`),Rt("media_clips_intro_position_unique").on(e.media_clip_collection_id,e.position,e._state,e._expiry_key).where(t.sql`${e.clip_section} = 'intro'`),Vt("media_clips_mc_collection_idx").on(e.media_clip_collection_id,e._state),...Ys({prefix:"media_clips",state:e._state,table:e,columns:gn})]);const yn=es.table("images",{image_id:si("image_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,cloudinary_public_id:st("cloudinary_public_id").notNull(),cloudinary_source_url:st("cloudinary_source_url").notNull(),contains_identifiable_face:Le("contains_identifiable_face"),height:si("height"),media_description:st("media_description"),name:st("name").notNull(),width:si("width"),...xs,...Zs,...Ns},e=>[m("images_cloudinary_public_id_unique").on(e.cloudinary_public_id),m("images_cloudinary_source_url_unique").on(e.cloudinary_source_url)]),hn=["feedback","hint"],fn=es.table("questions",{question_id:si("question_id").notNull().generatedByDefaultAsIdentity(),...As,stem_image_id:si("stem_image_id"),deprecated_fields:pi("deprecated_fields"),feedback:st("feedback"),hint:st("hint"),question_type:cs("question_type").notNull(),question_uid:Be("question_uid",{length:16}).notNull(),stem_text:st("stem_text"),...xs,...Zs,...Ns},e=>[Qt({columns:[e.question_id,e._state,e._expiry_key]}),p({columns:[e.stem_image_id],foreignColumns:[yn.image_id]}),...Gs({prefix:"questions",state:e._state,table:e,columns:["stem_text","stem_image_id"]}),...Ys({prefix:"questions",state:e._state,table:e,columns:hn})]);es.table("question_options",{option_id:si("option_id").notNull().generatedByDefaultAsIdentity(),...As,body_image_id:si("body_image_id"),match_partner_image_id:si("match_partner_image_id"),question_id:si("question_id").notNull(),body_text:st("body_text"),correct_order:si("correct_order"),is_default:Le("is_default"),is_correct:Le("is_correct"),match_partner_text:st("match_partner_text"),position:si("position"),temporary_fields:pi("temporary_fields"),...xs,...Zs,...Ns},e=>[Qt({columns:[e.option_id,e._state,e._expiry_key]}),p({name:"question_options_question_fk",columns:[e.question_id,e._state,e._expiry_key],foreignColumns:[fn.question_id,fn._state,fn._expiry_key]}),p({name:"question_options_body_image_fk",columns:[e.body_image_id],foreignColumns:[yn.image_id]}),p({name:"question_options_match_partner_image_fk",columns:[e.match_partner_image_id],foreignColumns:[yn.image_id]}),Vt("question_options_question_idx").on(e.question_id,e._state),...Gs({prefix:"question_options",state:e._state,table:e,columns:["body_text","body_image_id"]})]);const vn=["_release_id"],bn=es.table("units",{unit_id:si("unit_id").notNull().generatedByDefaultAsIdentity(),...As,deprecated_fields:pi("deprecated_fields"),description:st("description").notNull(),slug:st("slug").notNull(),title:st("title").notNull(),unit_uid:Be("unit_uid",{length:16}).notNull(),why_this_why_now:st("why_this_why_now"),...xs,...Zs,...Ns},e=>[Qt({columns:[e.unit_id,e._state,e._expiry_key]}),...Ys({prefix:"units",state:e._state,table:e,columns:vn})]);es.table("question_units",{question_id:si("question_id").notNull(),unit_id:si("unit_id").notNull(),...Ds,...Is,...xs,...Zs,...Ns},e=>[Qt({name:"question_units_pk",columns:[e.question_id,e.unit_id,e._question_state,e._question_expiry_key,e._unit_state,e._unit_expiry_key]}),p({name:"question_units_question_fk",columns:[e.question_id,e._question_state,e._question_expiry_key],foreignColumns:[fn.question_id,fn._state,fn._expiry_key]}),p({name:"question_units_unit_fk",columns:[e.unit_id,e._unit_state,e._unit_expiry_key],foreignColumns:[bn.unit_id,bn._state,bn._expiry_key]}),Js({name:"question_units_state_coherence",columnA:e._question_state,columnB:e._unit_state})]);const xn=es.enum("quiz_role",["starter","exit"]),kn=["_release_id","lesson_id","quiz_pdf_bucket_name","quiz_pdf_bucket_path","quiz_answers_pdf_bucket_name","quiz_answers_pdf_bucket_path"],Nn=es.table("quizzes",{quiz_id:si("quiz_id").notNull().generatedByDefaultAsIdentity(),...As,lesson_id:si("lesson_id"),deprecated_fields:pi("deprecated_fields"),previous_lesson_id:si("previous_lesson_id"),quiz_answers_pdf_bucket_name:st("quiz_answers_pdf_bucket_name"),quiz_answers_pdf_bucket_path:st("quiz_answers_pdf_bucket_path"),quiz_pdf_bucket_name:st("quiz_pdf_bucket_name"),quiz_pdf_bucket_path:st("quiz_pdf_bucket_path"),quiz_role:xn("quiz_role").notNull(),quiz_uid:Be("quiz_uid",{length:16}).notNull(),...xs,...Zs,...Ns},e=>[Qt({columns:[e.quiz_id,e._state,e._expiry_key]}),p({name:"quizzes_lesson_fk",columns:[e.lesson_id,e._state,e._expiry_key],foreignColumns:[sn.lesson_id,sn._state,sn._expiry_key]}),Rt("quizzes_lesson_role_unique").on(e.lesson_id,e.quiz_role,e._state,e._expiry_key),...Ys({prefix:"quizzes",state:e._state,table:e,columns:kn})]);es.table("quiz_questions",{quiz_id:si("quiz_id").notNull(),question_id:si("question_id").notNull(),...Ps,...Ds,position:si("position").notNull(),...xs,...Zs,...Ns},e=>[Qt({name:"quiz_questions_pk",columns:[e.quiz_id,e.question_id,e._quiz_state,e._quiz_expiry_key,e._question_state,e._question_expiry_key]}),p({name:"quiz_questions_quiz_fk",columns:[e.quiz_id,e._quiz_state,e._quiz_expiry_key],foreignColumns:[Nn.quiz_id,Nn._state,Nn._expiry_key]}),p({name:"quiz_questions_question_fk",columns:[e.question_id,e._question_state,e._question_expiry_key],foreignColumns:[fn.question_id,fn._state,fn._expiry_key]}),Js({name:"quiz_questions_state_coherence",columnA:e._quiz_state,columnB:e._question_state})]);const wn=es.table("urls",{url_id:si("url_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,cloudinary_public_id:st("cloudinary_public_id"),cloudinary_source_url:st("cloudinary_source_url"),name:st("name").notNull(),url:st("url").notNull(),...xs,...Zs,...Ns},e=>[m("urls_cloudinary_public_id_unique").on(e.cloudinary_public_id),m("urls_cloudinary_source_url_unique").on(e.cloudinary_source_url)]),Sn=es.table("media_copyright",{media_copyright_id:si("media_copyright_id").notNull().generatedByDefaultAsIdentity(),...As,bucket_file_id:si("bucket_file_id"),image_id:si("image_id"),sound_id:si("sound_id"),url_id:si("url_id"),video_id:si("video_id"),acquisition_basis:rs("acquisition_basis"),additional_restrictions:st("additional_restrictions"),attribution:st("attribution"),attribution_required:Le("attribution_required"),deprecated_fields:pi("deprecated_fields"),internal_notes:st("internal_notes"),legacy_data_shape:Le("legacy_data_shape").notNull(),licence:ds("licence"),media_copyright_uid:Be("media_copyright_uid",{length:16}).notNull(),media_provenance:os("media_provenance"),media_provenance_url:st("media_provenance_url"),permission_status:ls("permission_status"),restriction_level_override:as("restriction_level_override"),third_party_id:st("third_party_id"),usage_restrictions:us("usage_restrictions"),...xs,...Zs,...Ns},e=>[Qt({columns:[e.media_copyright_id,e._state,e._expiry_key]}),p({columns:[e.image_id],foreignColumns:[yn.image_id]}),p({columns:[e.sound_id],foreignColumns:[mn.sound_id]}),p({columns:[e.video_id],foreignColumns:[un.video_id]}),p({name:"media_copyright_bucket_file_fk",columns:[e.bucket_file_id],foreignColumns:[rn.bucket_file_id]}),p({columns:[e.url_id],foreignColumns:[wn.url_id]}),ge("media_copyright_has_exactly_one_media",t.sql`(image_id IS NOT NULL)::int + (sound_id IS NOT NULL)::int + (video_id IS NOT NULL)::int + (bucket_file_id IS NOT NULL)::int + (url_id IS NOT NULL)::int = 1`),m("media_copyright_image_unique").on(e._state,e._expiry_key,e.image_id),m("media_copyright_sound_unique").on(e._state,e._expiry_key,e.sound_id),m("media_copyright_video_unique").on(e._state,e._expiry_key,e.video_id),m("media_copyright_bucket_file_unique").on(e._state,e._expiry_key,e.bucket_file_id),m("media_copyright_url_unique").on(e._state,e._expiry_key,e.url_id),m("media_copyright_uid_unique").on(e._state,e._expiry_key,e.media_copyright_uid)]),qn=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"]),An=ts.table("tpc_contracts",{tpc_contract_id:si("tpc_contract_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,deprecated_fields:pi("deprecated_fields"),effective_date:He("effective_date"),end_date:He("end_date"),juro_id:st("juro_id").notNull(),juro_url:st("juro_url").notNull(),name:st("name").notNull(),raw_contract:pi("raw_contract").notNull(),restriction_level_override:as("restriction_level_override"),signing_side:st("signing_side"),territory:qn("territory"),tpc_contract_uid:Be("tpc_contract_uid",{length:16}).notNull(),...Ns},()=>[]);es.table("media_copyright_tpc_contracts",{media_copyright_id:si("media_copyright_id").notNull(),tpc_contract_id:si("tpc_contract_id").notNull(),...zs,...xs,...Zs,_release_id:si("_release_id"),...Ns},e=>[Qt({name:"media_copyright_tpc_contracts_pk",columns:[e.media_copyright_id,e.tpc_contract_id,e._state,e._expiry_key]}),p({name:"media_copyright_tpc_contract_media_copyright_fk",columns:[e.media_copyright_id,e._state,e._expiry_key],foreignColumns:[Sn.media_copyright_id,Sn._state,Sn._expiry_key]}),p({name:"media_copyright_tpc_contract_tpc_contract_fk",columns:[e.tpc_contract_id],foreignColumns:[An.tpc_contract_id]}),p({name:"media_copyright_tpc_contracts_release_fk",columns:[e._release_id],foreignColumns:[Ss.release_id]}),Ts({name:"media_copyright_tpc_contracts_expired_release_fk",column:e._expired_release_id})]),es.table("gdrive_file_images",{gdrive_file_id:si("gdrive_file_id").notNull(),image_id:si("image_id").notNull(),...Cs,...xs,...Zs,...Ns},e=>[Qt({columns:[e.gdrive_file_id,e.image_id]}),p({name:"gdrive_file_images_gdrive_file_fk",columns:[e.gdrive_file_id],foreignColumns:[en.gdrive_file_id]}),p({columns:[e.image_id],foreignColumns:[yn.image_id]})]);const zn=["_release_id"];es.table("lesson_media",{lesson_media_id:si("lesson_media_id").notNull().generatedByDefaultAsIdentity(),...As,lesson_id:si("lesson_id").notNull(),bucket_file_id:si("bucket_file_id"),image_id:si("image_id"),sound_id:si("sound_id"),url_id:si("url_id"),video_id:si("video_id"),...xs,...Zs,...Ns},e=>[Qt({name:"lesson_media_pk",columns:[e.lesson_media_id,e._state,e._expiry_key]}),p({name:"lesson_media_lesson_fk",columns:[e.lesson_id,e._state,e._expiry_key],foreignColumns:[sn.lesson_id,sn._state,sn._expiry_key]}),p({name:"lesson_media_image_fk",columns:[e.image_id],foreignColumns:[yn.image_id]}),p({name:"lesson_media_sound_fk",columns:[e.sound_id],foreignColumns:[mn.sound_id]}),p({name:"lesson_media_video_fk",columns:[e.video_id],foreignColumns:[un.video_id]}),p({name:"lesson_media_bucket_file_fk",columns:[e.bucket_file_id],foreignColumns:[rn.bucket_file_id]}),p({name:"lesson_media_url_fk",columns:[e.url_id],foreignColumns:[wn.url_id]}),ge("lesson_media_has_exactly_one_media",t.sql`(image_id IS NOT NULL)::int + (sound_id IS NOT NULL)::int + (video_id IS NOT NULL)::int + (bucket_file_id IS NOT NULL)::int + (url_id IS NOT NULL)::int = 1`),...Ys({prefix:"lesson_media",state:e._state,table:e,columns:zn}),m("lesson_media_lesson_asset_unique").on(e._state,e._expiry_key,e.lesson_id,e.bucket_file_id,e.image_id,e.sound_id,e.url_id,e.video_id).nullsNotDistinct()]);const Cn=es.table("works_copyright",{works_copyright_id:si("works_copyright_id").notNull().generatedByDefaultAsIdentity(),...As,attribution:st("attribution"),author:st("author"),deprecated_fields:pi("deprecated_fields"),raw_juro_data:pi("raw_juro_data").notNull(),restriction_level_override:as("restriction_level_override"),title:st("title").notNull(),works_copyright_uid:Be("works_copyright_uid",{length:16}).notNull(),...xs,...Zs,...Ns},e=>[Qt({columns:[e.works_copyright_id,e._state,e._expiry_key]})]);es.table("lesson_works_copyright",{lesson_id:si("lesson_id").notNull(),works_copyright_id:si("works_copyright_id").notNull(),...$s,...Vs,...xs,...Zs,...Ns},e=>[Qt({name:"lesson_works_copyright_pk",columns:[e.lesson_id,e.works_copyright_id,e._lesson_state,e._lesson_expiry_key,e._works_copyright_state,e._works_copyright_expiry_key]}),p({name:"lesson_works_copyright_lesson_fk",columns:[e.lesson_id,e._lesson_state,e._lesson_expiry_key],foreignColumns:[sn.lesson_id,sn._state,sn._expiry_key]}),p({name:"lesson_works_copyright_works_copyright_fk",columns:[e.works_copyright_id,e._works_copyright_state,e._works_copyright_expiry_key],foreignColumns:[Cn.works_copyright_id,Cn._state,Cn._expiry_key]}),Ms({name:"lesson_works_copyright_state_coherence",columnA:e._lesson_state,columnB:e._works_copyright_state,allow:[["draft","published"]]})]);const Tn=es.table("features",{feature_id:si("feature_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,key:st("key").notNull(),...Zs,...Ns},e=>[m("features_key_unique").on(e.key)]),On=["_release_id"];es.table("lesson_features",{lesson_id:si("lesson_id").notNull(),feature_id:si("feature_id").notNull(),...As,value:st("value").notNull(),...xs,...Zs,...Ns},e=>[Qt({columns:[e.lesson_id,e.feature_id,e._state,e._expiry_key]}),p({name:"lesson_features_lesson_fk",columns:[e.lesson_id,e._state,e._expiry_key],foreignColumns:[sn.lesson_id,sn._state,sn._expiry_key]}),p({name:"lesson_features_feature_fk",columns:[e.feature_id],foreignColumns:[Tn.feature_id]}),...Ys({prefix:"lesson_features",state:e._state,table:e,columns:On})]);const jn=["_release_id"];es.table("sound_transcripts",{sound_id:si("sound_id").notNull(),...As,bad_language_detected:Le("bad_language_detected").notNull(),deprecated_fields:pi("deprecated_fields"),inappropriate_words:pi("inappropriate_words"),language_approved:Le("language_approved").notNull(),transcript:st("transcript"),transcript_vtt_url:st("transcript_vtt_url"),...xs,...Zs,...Ns},e=>[Qt({columns:[e.sound_id,e._state,e._expiry_key]}),p({columns:[e.sound_id],foreignColumns:[mn.sound_id]}),...Ys({prefix:"sound_transcripts",state:e._state,table:e,columns:jn})]),es.table("video_captions",{video_id:si("video_id").notNull(),...As,bad_language_detected:Le("bad_language_detected").notNull(),deprecated_fields:pi("deprecated_fields"),inappropriate_words:pi("inappropriate_words"),language_approved:Le("language_approved").notNull(),transcript:st("transcript"),transcript_vtt_url:st("transcript_vtt_url"),...xs,...Zs,...Ns},e=>[Qt({columns:[e.video_id,e._state,e._expiry_key]}),p({columns:[e.video_id],foreignColumns:[un.video_id]})]),es.table("works_copyright_tpc_contracts",{works_copyright_id:si("works_copyright_id").notNull(),tpc_contract_id:si("tpc_contract_id").notNull(),...zs,...xs,...Zs,_release_id:si("_release_id"),...Ns},e=>[Qt({name:"works_copyright_tpc_contracts_pk",columns:[e.works_copyright_id,e.tpc_contract_id,e._state,e._expiry_key]}),p({name:"works_copyright_tpc_contract_works_copyright_fk",columns:[e.works_copyright_id,e._state,e._expiry_key],foreignColumns:[Cn.works_copyright_id,Cn._state,Cn._expiry_key]}),p({name:"works_copyright_tpc_contract_tpc_contract_fk",columns:[e.tpc_contract_id],foreignColumns:[An.tpc_contract_id]}),p({name:"works_copyright_tpc_contracts_release_fk",columns:[e._release_id],foreignColumns:[Ss.release_id]}),Ts({name:"works_copyright_tpc_contracts_expired_release_fk",column:e._expired_release_id})]),es.table("videos_works_copyright",{video_id:si("video_id").notNull(),works_copyright_id:si("works_copyright_id").notNull(),...zs,...xs,...Zs,...Ns},e=>[Qt({name:"videos_works_copyright_pk",columns:[e.video_id,e.works_copyright_id,e._state,e._expiry_key]}),p({name:"videos_works_copyright_video_fk",columns:[e.video_id],foreignColumns:[un.video_id]}),p({name:"videos_works_copyright_works_copyright_fk",columns:[e.works_copyright_id,e._state,e._expiry_key],foreignColumns:[Cn.works_copyright_id,Cn._state,Cn._expiry_key]}),Ts({name:"videos_works_copyright_expired_release_fk",column:e._expired_release_id})]);const $n=es.table("supervision_levels",{supervision_level_id:si("supervision_level_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,deprecated_fields:pi("deprecated_fields"),description:st("description"),global_position:si("global_position").notNull(),supervision_level_rating:si("supervision_level_rating").notNull(),title:st("title").notNull(),...Zs,...Ns}),Ln=es.table("content_guidance",{content_guidance_id:si("content_guidance_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,supervision_level_id:si("supervision_level_id").notNull(),content_guidance_area:st("content_guidance_area").notNull(),content_guidance_code:st("content_guidance_code").notNull(),content_guidance_description:st("content_guidance_description").notNull(),content_guidance_label:st("content_guidance_label").notNull(),deprecated_fields:pi("deprecated_fields"),...Zs,...Ns},e=>[p({name:"content_guid_super_level_fk",columns:[e.supervision_level_id],foreignColumns:[$n.supervision_level_id]})]),Dn=es.table("key_stages",{key_stage_id:si("key_stage_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,deprecated_fields:pi("deprecated_fields"),description:st("description").notNull(),global_position:si("global_position").notNull(),key_stage:st("key_stage").notNull(),slug:st("slug").notNull(),...Zs,...Ns}),Pn=es.table("phases",{phase_id:si("phase_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,deprecated_fields:pi("deprecated_fields"),description:st("description").notNull(),global_position:si("global_position").notNull(),phase:st("phase").notNull(),slug:st("slug").notNull(),...Zs,...Ns}),Bn=es.table("subjects",{subject_id:si("subject_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,subject_parent_id:si("subject_parent_id"),deprecated_fields:pi("deprecated_fields"),description:st("description").notNull(),global_position:si("global_position").notNull(),non_curriculum:Le("non_curriculum"),slug:st("slug").notNull(),subject:st("subject").notNull(),...Zs,...Ns},e=>[p({name:"subjects_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[e.subject_id]})]),En=es.table("years",{year_id:si("year_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,key_stage_id:si("key_stage_id").notNull(),phase_id:si("phase_id").notNull(),deprecated_fields:pi("deprecated_fields"),description:st("description").notNull(),global_position:si("global_position").notNull(),slug:st("slug").notNull(),year:st("year").notNull(),...Zs,...Ns},e=>[p({columns:[e.key_stage_id],foreignColumns:[Dn.key_stage_id]}),p({columns:[e.phase_id],foreignColumns:[Pn.phase_id]})]);es.table("content_guidance_scopes",{scope_id:si("scope_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,content_guidance_id:si("content_guidance_id").notNull(),key_stage_id:si("key_stage_id"),phase_id:si("phase_id"),subject_id:si("subject_id"),subject_parent_id:si("subject_parent_id"),year_id:si("year_id"),...Zs,...Ns},e=>[p({name:"content_guid_scopes_content_guid_fk",columns:[e.content_guidance_id],foreignColumns:[Ln.content_guidance_id]}),p({name:"content_guid_scopes_subject_fk",columns:[e.subject_id],foreignColumns:[Bn.subject_id]}),p({name:"content_guid_scopes_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[Bn.subject_id]}),p({name:"content_guid_scopes_phase_fk",columns:[e.phase_id],foreignColumns:[Pn.phase_id]}),p({name:"content_guid_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[Dn.key_stage_id]}),p({columns:[e.year_id],foreignColumns:[En.year_id]}),Vt("content_guid_scopes_guidance_idx").on(e.content_guidance_id)]);const In=es.table("exam_board_specs",{exam_board_spec_id:si("exam_board_spec_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,deprecated_fields:pi("deprecated_fields"),description:st("description"),title:st("title").notNull(),...Zs,...Ns});es.table("exam_board_spec_scopes",{scope_id:si("scope_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,exam_board_spec_id:si("exam_board_spec_id").notNull(),key_stage_id:si("key_stage_id"),phase_id:si("phase_id"),subject_id:si("subject_id"),subject_parent_id:si("subject_parent_id"),year_id:si("year_id"),...Zs,...Ns},e=>[p({name:"exam_spec_scopes_exam_spec_fk",columns:[e.exam_board_spec_id],foreignColumns:[In.exam_board_spec_id]}),p({name:"exam_spec_scopes_subject_fk",columns:[e.subject_id],foreignColumns:[Bn.subject_id]}),p({name:"exam_spec_scopes_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[Bn.subject_id]}),p({name:"exam_spec_scopes_phase_fk",columns:[e.phase_id],foreignColumns:[Pn.phase_id]}),p({name:"exam_spec_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[Dn.key_stage_id]}),p({columns:[e.year_id],foreignColumns:[En.year_id]})]);const Fn=["_release_id"];es.table("lesson_content_guidance",{lesson_id:si("lesson_id").notNull(),content_guidance_id:si("content_guidance_id").notNull(),...zs,position:si("position").notNull(),...xs,...Zs,...Ns},e=>[Qt({name:"lesson_content_guid_pk",columns:[e.lesson_id,e.content_guidance_id,e._state,e._expiry_key]}),p({name:"lesson_content_guid_lesson_fk",columns:[e.lesson_id,e._state,e._expiry_key],foreignColumns:[sn.lesson_id,sn._state,sn._expiry_key]}),p({name:"lesson_content_guid_content_guid_fk",columns:[e.content_guidance_id],foreignColumns:[Ln.content_guidance_id]}),Ts({name:"lesson_content_guid_expired_release_fk",column:e._expired_release_id}),...Ys({prefix:"lesson_content_guidance",state:e._state,table:e,columns:Fn})]);const Vn=es.table("tags",{tag_id:si("tag_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,deprecated_fields:pi("deprecated_fields"),tag_category:ps("tag_category"),title:st("title").notNull(),...Zs,...Ns}),Rn=["_release_id"];es.table("lesson_tags",{lesson_id:si("lesson_id").notNull(),tag_id:si("tag_id").notNull(),...As,position:si("position").notNull(),...xs,...Zs,...Ns},e=>[Qt({columns:[e.lesson_id,e.tag_id,e._state,e._expiry_key]}),p({name:"lesson_tags_lesson_fk",columns:[e.lesson_id,e._state,e._expiry_key],foreignColumns:[sn.lesson_id,sn._state,sn._expiry_key]}),p({columns:[e.tag_id],foreignColumns:[Vn.tag_id]}),...Ys({prefix:"lesson_tags",state:e._state,table:e,columns:Rn})]);const Qn=es.table("national_curriculum",{national_curriculum_id:si("national_curriculum_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,deprecated_fields:pi("deprecated_fields"),description:st("description"),title:st("title").notNull(),...Zs,...Ns});es.table("national_curriculum_scopes",{scope_id:si("scope_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,key_stage_id:si("key_stage_id"),national_curriculum_id:si("national_curriculum_id").notNull(),phase_id:si("phase_id"),subject_id:si("subject_id"),subject_parent_id:si("subject_parent_id"),year_id:si("year_id"),...Zs,...Ns},e=>[p({name:"nat_curric_scopes_nat_curric_fk",columns:[e.national_curriculum_id],foreignColumns:[Qn.national_curriculum_id]}),p({name:"nat_curric_scopes_subject_fk",columns:[e.subject_id],foreignColumns:[Bn.subject_id]}),p({name:"nat_curric_scopes_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[Bn.subject_id]}),p({name:"nat_curric_scopes_phase_fk",columns:[e.phase_id],foreignColumns:[Pn.phase_id]}),p({name:"nat_curric_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[Dn.key_stage_id]}),p({name:"nat_curric_scopes_year_fk",columns:[e.year_id],foreignColumns:[En.year_id]})]);const Jn=es.table("subject_categories",{subject_category_id:si("subject_category_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,deprecated_fields:pi("deprecated_fields"),description:st("description"),slug:st("slug").notNull(),title:st("title").notNull(),...Zs,...Ns});es.table("subject_category_scopes",{scope_id:si("scope_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,key_stage_id:si("key_stage_id"),phase_id:si("phase_id"),subject_category_id:si("subject_category_id").notNull(),subject_id:si("subject_id"),subject_parent_id:si("subject_parent_id"),year_id:si("year_id"),...Zs,...Ns},e=>[p({name:"subj_cat_scopes_subj_cat_fk",columns:[e.subject_category_id],foreignColumns:[Jn.subject_category_id]}),p({name:"subj_cat_scopes_subject_fk",columns:[e.subject_id],foreignColumns:[Bn.subject_id]}),p({name:"subj_cat_scopes_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[Bn.subject_id]}),p({name:"subj_cat_scopes_phase_fk",columns:[e.phase_id],foreignColumns:[Pn.phase_id]}),p({name:"subj_cat_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[Dn.key_stage_id]}),p({columns:[e.year_id],foreignColumns:[En.year_id]})]),es.table("tag_scopes",{scope_id:si("scope_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,key_stage_id:si("key_stage_id"),phase_id:si("phase_id"),subject_id:si("subject_id"),subject_parent_id:si("subject_parent_id"),tag_id:si("tag_id").notNull(),year_id:si("year_id"),...Zs,...Ns},e=>[p({columns:[e.tag_id],foreignColumns:[Vn.tag_id]}),p({columns:[e.subject_id],foreignColumns:[Bn.subject_id]}),p({name:"tag_scopes_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[Bn.subject_id]}),p({columns:[e.phase_id],foreignColumns:[Pn.phase_id]}),p({name:"tag_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[Dn.key_stage_id]}),p({columns:[e.year_id],foreignColumns:[En.year_id]})]),es.table("unit_exam_board_specs",{unit_id:si("unit_id").notNull(),exam_board_spec_id:si("exam_board_spec_id").notNull(),...zs,position:si("position").notNull(),...xs,...Zs,...Ns},e=>[Qt({name:"unit_exam_specs_pk",columns:[e.unit_id,e.exam_board_spec_id,e._state,e._expiry_key]}),p({name:"unit_exam_specs_unit_fk",columns:[e.unit_id,e._state,e._expiry_key],foreignColumns:[bn.unit_id,bn._state,bn._expiry_key]}),p({name:"unit_exam_spec_exam_spec_fk",columns:[e.exam_board_spec_id],foreignColumns:[In.exam_board_spec_id]}),Ts({name:"unit_exam_specs_expired_release_fk",column:e._expired_release_id})]);const Un=["_release_id"];es.table("unit_national_curriculum",{unit_id:si("unit_id").notNull(),national_curriculum_id:si("national_curriculum_id").notNull(),...zs,position:si("position").notNull(),...xs,...Zs,...Ns},e=>[Qt({name:"unit_nat_curric_pk",columns:[e.unit_id,e.national_curriculum_id,e._state,e._expiry_key]}),p({name:"unit_nat_curric_unit_fk",columns:[e.unit_id,e._state,e._expiry_key],foreignColumns:[bn.unit_id,bn._state,bn._expiry_key]}),p({name:"unit_nat_curric_nat_curric_fk",columns:[e.national_curriculum_id],foreignColumns:[Qn.national_curriculum_id]}),Ts({name:"unit_nat_curric_expired_release_fk",column:e._expired_release_id}),...Ys({prefix:"unit_national_curriculum",state:e._state,table:e,columns:Un})]);const Mn=["_release_id"];es.table("unit_subject_categories",{unit_id:si("unit_id").notNull(),subject_category_id:si("subject_category_id").notNull(),...zs,position:si("position").notNull(),...xs,...Zs,...Ns},e=>[Qt({name:"unit_subject_categories_pk",columns:[e.unit_id,e.subject_category_id,e._state,e._expiry_key]}),p({name:"unit_subject_categories_unit_fk",columns:[e.unit_id,e._state,e._expiry_key],foreignColumns:[bn.unit_id,bn._state,bn._expiry_key]}),p({name:"unit_subj_cat_subj_cat_fk",columns:[e.subject_category_id],foreignColumns:[Jn.subject_category_id]}),Ts({name:"unit_subject_categories_expired_release_fk",column:e._expired_release_id}),...Ys({prefix:"unit_subject_categories",state:e._state,table:e,columns:Mn})]);const Kn=es.table("exam_boards",{exam_board_id:si("exam_board_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,deprecated_fields:pi("deprecated_fields"),description:st("description").notNull(),exam_board:st("exam_board").notNull(),global_position:si("global_position").notNull(),slug:st("slug").notNull(),...Zs,...Ns}),Wn=es.table("pathways",{pathway_id:si("pathway_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,deprecated_fields:pi("deprecated_fields"),description:st("description").notNull(),global_position:si("global_position").notNull(),pathway:st("pathway").notNull(),slug:st("slug").notNull(),...Zs,...Ns}),Hn=es.table("tiers",{tier_id:si("tier_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,deprecated_fields:pi("deprecated_fields"),description:st("description").notNull(),global_position:si("global_position").notNull(),slug:st("slug").notNull(),tier:st("tier").notNull(),...Zs,...Ns}),Yn=["_release_id"],Gn=es.table("unit_variants",{unit_variant_id:si("unit_variant_id").notNull().generatedByDefaultAsIdentity(),...As,exam_board_id:si("exam_board_id"),pathway_id:si("pathway_id"),subject_id:si("subject_id"),tier_id:si("tier_id"),unit_id:si("unit_id").notNull(),deprecated_fields:pi("deprecated_fields"),description_override:st("description_override"),optionality:st("optionality"),planned_number_of_lessons_override:si("planned_number_of_lessons_override"),prior_knowledge_requirements_override:st("prior_knowledge_requirements_override").array(),title_override:st("title_override"),unit_variant_uid:Be("unit_variant_uid",{length:16}).notNull(),why_this_why_now_override:st("why_this_why_now_override"),...xs,...Zs,...Ns},e=>[Qt({columns:[e.unit_variant_id,e._state,e._expiry_key]}),p({name:"unit_variants_exam_board_fk",columns:[e.exam_board_id],foreignColumns:[Kn.exam_board_id]}),p({columns:[e.pathway_id],foreignColumns:[Wn.pathway_id]}),p({columns:[e.subject_id],foreignColumns:[Bn.subject_id]}),p({columns:[e.tier_id],foreignColumns:[Hn.tier_id]}),p({name:"unit_variants_unit_fk",columns:[e.unit_id,e._state,e._expiry_key],foreignColumns:[bn.unit_id,bn._state,bn._expiry_key]}),m("unit_variants_unit_scope_unique").on(e._state,e._expiry_key,e.exam_board_id,e.pathway_id,e.subject_id,e.tier_id,e.unit_id,e.optionality).nullsNotDistinct(),...Ys({prefix:"unit_variants",state:e._state,table:e,columns:Yn})]);es.table("unit_variant_exam_board_specs_override",{unit_variant_id:si("unit_variant_id").notNull(),exam_board_spec_id:si("exam_board_spec_id").notNull(),...zs,position:si("position").notNull(),...xs,...Zs,_release_id:si("_release_id"),...Ns},e=>[Qt({name:"unit_variant_exam_board_specs_override_pk",columns:[e.unit_variant_id,e.exam_board_spec_id,e._state,e._expiry_key]}),p({name:"unit_var_exam_spec_ovr_release_fk",columns:[e._release_id],foreignColumns:[Ss.release_id]}),p({name:"unit_var_exam_spec_ovr_unit_var_fk",columns:[e.unit_variant_id,e._state,e._expiry_key],foreignColumns:[Gn.unit_variant_id,Gn._state,Gn._expiry_key]}),p({name:"unit_var_exam_spec_ovr_exam_spec_fk",columns:[e.exam_board_spec_id],foreignColumns:[In.exam_board_spec_id]}),Ts({name:"unit_var_exam_spec_ovr_expired_release_fk",column:e._expired_release_id})]);const Zn=["_release_id"];es.table("unit_variant_national_curriculum_override",{unit_variant_id:si("unit_variant_id").notNull(),national_curriculum_id:si("national_curriculum_id").notNull(),...zs,position:si("position").notNull(),...xs,...Zs,_release_id:si("_release_id"),...Ns},e=>[Qt({name:"unit_variant_national_curriculum_override_pk",columns:[e.unit_variant_id,e.national_curriculum_id,e._state,e._expiry_key]}),p({name:"unit_var_nat_curric_ovr_release_fk",columns:[e._release_id],foreignColumns:[Ss.release_id]}),p({name:"unit_var_nat_curric_ovr_unit_var_fk",columns:[e.unit_variant_id,e._state,e._expiry_key],foreignColumns:[Gn.unit_variant_id,Gn._state,Gn._expiry_key]}),p({name:"unit_var_nat_curric_ovr_nat_curric_fk",columns:[e.national_curriculum_id],foreignColumns:[Qn.national_curriculum_id]}),Ts({name:"unit_var_nat_curric_ovr_expired_release_fk",column:e._expired_release_id}),...Ys({prefix:"unit_variant_national_curriculum_override",state:e._state,table:e,columns:Zn})]);const Xn=["_release_id"];es.table("unit_variant_subject_categories_override",{unit_variant_id:si("unit_variant_id").notNull(),subject_category_id:si("subject_category_id").notNull(),...zs,position:si("position").notNull(),...xs,...Zs,_release_id:si("_release_id"),...Ns},e=>[Qt({name:"unit_variant_subject_categories_override_pk",columns:[e.unit_variant_id,e.subject_category_id,e._state,e._expiry_key]}),p({name:"unit_var_subj_cat_ovr_release_fk",columns:[e._release_id],foreignColumns:[Ss.release_id]}),p({name:"unit_var_subj_cat_ovr_unit_var_fk",columns:[e.unit_variant_id,e._state,e._expiry_key],foreignColumns:[Gn.unit_variant_id,Gn._state,Gn._expiry_key]}),p({name:"unit_var_subj_cat_ovr_subj_cat_fk",columns:[e.subject_category_id],foreignColumns:[Jn.subject_category_id]}),Ts({name:"unit_var_subj_cat_ovr_expired_release_fk",column:e._expired_release_id}),...Ys({prefix:"unit_variant_subject_categories_override",state:e._state,table:e,columns:Xn})]);const ea=es.table("actions",{action_id:si("action_id").primaryKey().generatedByDefaultAsIdentity(),...Cs,key:st("key").notNull(),...Zs,...Ns},e=>[m("actions_key_unique").on(e.key)]),ia=es.table("overrides_and_exceptions",{overrides_and_exceptions_id:si("overrides_and_exceptions_id").notNull().generatedByDefaultAsIdentity(),...zs,description:st("description").notNull(),temporary_fields:pi("temporary_fields"),used_by_queries:pi("used_by_queries").notNull().default([]),...xs,...Zs,...Ns},e=>[Qt({name:"ovr_exc_pk",columns:[e.overrides_and_exceptions_id,e._state,e._expiry_key]}),Ts({name:"ovr_exc_expired_release_fk",column:e._expired_release_id})]);es.table("overrides_and_exceptions_actions",{overrides_and_exceptions_id:si("overrides_and_exceptions_id").notNull(),action_id:si("action_id").notNull(),...zs,value:pi("value").notNull(),...xs,...Zs,_release_id:si("_release_id"),...Ns},e=>[Qt({name:"ovr_exc_actions_pk",columns:[e.overrides_and_exceptions_id,e.action_id,e._state,e._expiry_key]}),p({name:"ovr_exc_actions_release_fk",columns:[e._release_id],foreignColumns:[Ss.release_id]}),p({name:"ovr_exc_actions_ovr_exc_fk",columns:[e.overrides_and_exceptions_id,e._state,e._expiry_key],foreignColumns:[ia.overrides_and_exceptions_id,ia._state,ia._expiry_key]}),p({name:"ovr_exc_actions_action_fk",columns:[e.action_id],foreignColumns:[ea.action_id]}),Ts({name:"ovr_exc_actions_expired_release_fk",column:e._expired_release_id})]),es.table("overrides_and_exceptions_feature_scopes",{overrides_and_exceptions_id:si("overrides_and_exceptions_id").notNull(),condition_id:si("condition_id").notNull(),feature_id:si("feature_id").notNull(),...zs,value:st("value").notNull(),...xs,...Zs,_release_id:si("_release_id"),...Ns},e=>[Qt({name:"ovr_exc_feature_scopes_pk",columns:[e.overrides_and_exceptions_id,e.condition_id,e.feature_id,e._state,e._expiry_key]}),p({name:"ovr_exc_feature_scopes_release_fk",columns:[e._release_id],foreignColumns:[Ss.release_id]}),p({name:"ovr_exc_feature_scopes_ovr_exc_fk",columns:[e.overrides_and_exceptions_id,e._state,e._expiry_key],foreignColumns:[ia.overrides_and_exceptions_id,ia._state,ia._expiry_key]}),p({name:"ovr_exc_feature_scopes_feature_fk",columns:[e.feature_id],foreignColumns:[Tn.feature_id]}),Ts({name:"ovr_exc_feature_scopes_expired_release_fk",column:e._expired_release_id})]),es.table("overrides_and_exceptions_programme_scopes",{scope_id:si("scope_id").notNull().generatedByDefaultAsIdentity(),...zs,key_stage_id:si("key_stage_id"),overrides_and_exceptions_id:si("overrides_and_exceptions_id").notNull(),pathway_id:si("pathway_id"),phase_id:si("phase_id"),subject_id:si("subject_id"),tier_id:si("tier_id"),legacy:Le("legacy"),subject_slug:st("subject_slug"),...xs,...Zs,_release_id:si("_release_id"),...Ns},e=>[Qt({name:"ovr_exc_programme_scopes_pk",columns:[e.scope_id,e._state,e._expiry_key]}),p({name:"ovr_exc_programme_scopes_release_fk",columns:[e._release_id],foreignColumns:[Ss.release_id]}),p({name:"ovr_exc_programme_scopes_ovr_exc_fk",columns:[e.overrides_and_exceptions_id,e._state,e._expiry_key],foreignColumns:[ia.overrides_and_exceptions_id,ia._state,ia._expiry_key]}),p({name:"ovr_exc_programme_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[Dn.key_stage_id]}),p({name:"ovr_exc_programme_scopes_pathway_fk",columns:[e.pathway_id],foreignColumns:[Wn.pathway_id]}),p({name:"ovr_exc_programme_scopes_phase_fk",columns:[e.phase_id],foreignColumns:[Pn.phase_id]}),p({name:"ovr_exc_programme_scopes_subject_fk",columns:[e.subject_id],foreignColumns:[Bn.subject_id]}),p({name:"ovr_exc_programme_scopes_tier_fk",columns:[e.tier_id],foreignColumns:[Hn.tier_id]}),Ts({name:"ovr_exc_programme_scopes_expired_release_fk",column:e._expired_release_id})]),es.table("redirects",{entity_id:si("entity_id").notNull(),entity_source:hs("entity_source").notNull(),...As,description:st("description").notNull(),redirect_entity_id:si("redirect_entity_id"),redirect_entity_source:hs("redirect_entity_source"),redirect_type:ys("redirect_type").notNull(),redirect_url:st("redirect_url"),...xs,...Zs,...Ns},e=>[Qt({columns:[e.entity_id,e.entity_source,e._state,e._expiry_key]}),ge("redirect_has_exactly_one_target",t.sql`(redirect_url IS NOT NULL)::int + (redirect_entity_id IS NOT NULL)::int = 1`),ge("redirect_entity_ref_complete",t.sql`(redirect_entity_id IS NULL) = (redirect_entity_source IS NULL)`)]);const ta=["_release_id"],_a=es.table("choices",{choice_id:si("choice_id").notNull().generatedByDefaultAsIdentity(),...As,unit_id:si("unit_id").notNull(),temporary_fields:pi("temporary_fields"),...xs,...Zs,...Ns},e=>[Qt({columns:[e.choice_id,e._state,e._expiry_key]}),p({name:"choices_unit_fk",columns:[e.unit_id,e._state,e._expiry_key],foreignColumns:[bn.unit_id,bn._state,bn._expiry_key]}),...Ys({prefix:"choices",state:e._state,table:e,columns:ta})]),sa=["_release_id"];es.table("choices_unit_variants",{unit_variant_id:si("unit_variant_id").notNull(),choice_id:si("choice_id").notNull(),...Fs,...js,position:si("position").notNull(),...xs,...Zs,...Ns},e=>[Qt({name:"choices_unit_var_pk",columns:[e.unit_variant_id,e.choice_id,e._unit_variant_state,e._unit_variant_expiry_key,e._choice_state,e._choice_expiry_key]}),p({name:"choices_unit_var_unit_var_fk",columns:[e.unit_variant_id,e._unit_variant_state,e._unit_variant_expiry_key],foreignColumns:[Gn.unit_variant_id,Gn._state,Gn._expiry_key]}),p({name:"choices_unit_var_choice_fk",columns:[e.choice_id,e._choice_state,e._choice_expiry_key],foreignColumns:[_a.choice_id,_a._state,_a._expiry_key]}),Js({name:"choices_unit_var_state_coherence",columnA:e._unit_variant_state,columnB:e._choice_state}),...Ys({prefix:"choices_unit_variants",state:[e._unit_variant_state,e._choice_state],table:e,columns:sa})]);const na=["_release_id"],aa=es.table("programmes",{programme_id:si("programme_id").notNull().generatedByDefaultAsIdentity(),...As,exam_board_id:si("exam_board_id"),pathway_id:si("pathway_id"),subject_id:si("subject_id").notNull(),tier_id:si("tier_id"),year_id:si("year_id").notNull(),deprecated_fields:pi("deprecated_fields"),legacy:Le("legacy").notNull().default(!1),national_curriculum_content:Le("national_curriculum_content").notNull().default(!1),programme_uid:Be("programme_uid",{length:16}).notNull(),...xs,...Zs,...Ns},e=>[Qt({columns:[e.programme_id,e._state,e._expiry_key]}),p({columns:[e.subject_id],foreignColumns:[Bn.subject_id]}),p({columns:[e.year_id],foreignColumns:[En.year_id]}),p({columns:[e.tier_id],foreignColumns:[Hn.tier_id]}),p({name:"programmes_exam_board_fk",columns:[e.exam_board_id],foreignColumns:[Kn.exam_board_id]}),p({columns:[e.pathway_id],foreignColumns:[Wn.pathway_id]}),m("programmes_factor_scope_unique").on(e._state,e._expiry_key,e.exam_board_id,e.pathway_id,e.subject_id,e.tier_id,e.year_id,e.legacy).nullsNotDistinct(),...Ys({prefix:"programmes",state:e._state,table:e,columns:na})]);es.table("inclusions",{programme_id:si("programme_id").notNull(),position:si("position").notNull(),...Ls,...Rs,...Qs,choice_id:si("choice_id"),unit_variant_id:si("unit_variant_id"),...xs,...Zs,...Ns},e=>[Qt({name:"inclusions_pk",columns:[e.programme_id,e.position,e._programme_state,e._programme_expiry_key]}),ge("inclusions_xor_variant_choice",t.sql`num_nonnulls(${e.unit_variant_id}, ${e.choice_id}) = 1`),ge("inclusions_choice_state_matches",t.sql`(${e.choice_id} is null) = (${e._choice_state} is null)`),ge("inclusions_unit_variant_state_matches",t.sql`(${e.unit_variant_id} is null) = (${e._unit_variant_state} is null)`),Rt("inclusions_choice_unique").on(e.choice_id,e._choice_state,e._choice_expiry_key,e._programme_state,e._programme_expiry_key).where(t.sql`${e.choice_id} is not null`),Rt("inclusions_programme_unit_variant_unique").on(e.programme_id,e.unit_variant_id,e._programme_state,e._programme_expiry_key,e._unit_variant_state,e._unit_variant_expiry_key).where(t.sql`${e.unit_variant_id} is not null`),p({name:"inclusions_programme_fk",columns:[e.programme_id,e._programme_state,e._programme_expiry_key],foreignColumns:[aa.programme_id,aa._state,aa._expiry_key]}),p({name:"inclusions_choice_fk",columns:[e.choice_id,e._choice_state,e._choice_expiry_key],foreignColumns:[_a.choice_id,_a._state,_a._expiry_key]}),p({name:"inclusions_unit_var_fk",columns:[e.unit_variant_id,e._unit_variant_state,e._unit_variant_expiry_key],foreignColumns:[Gn.unit_variant_id,Gn._state,Gn._expiry_key]}),Us({name:"inclusions_choice_state_coherence",columnA:e._programme_state,columnB:e._choice_state}),Us({name:"inclusions_unit_var_state_coherence",columnA:e._programme_state,columnB:e._unit_variant_state}),Vt("inclusions_unit_var_idx").on(e.unit_variant_id,e._unit_variant_state)]);const oa=es.table("subject_phases",{subject_id:si("subject_id").notNull(),phase_id:si("phase_id").notNull(),...As,curriculum_intent:st("curriculum_intent"),deprecated_fields:pi("deprecated_fields"),prior_knowledge_requirements:Le("prior_knowledge_requirements").notNull().default(!1),related_units:Le("related_units").notNull().default(!1),unit_description:Le("unit_description").notNull().default(!1),...xs,...Zs,...Ns},e=>[Qt({columns:[e.subject_id,e.phase_id,e._state,e._expiry_key]}),p({columns:[e.subject_id],foreignColumns:[Bn.subject_id]}),p({columns:[e.phase_id],foreignColumns:[Pn.phase_id]})]),ra=["_release_id"],la=es.table("threads",{thread_id:si("thread_id").notNull().generatedByDefaultAsIdentity(),...As,deprecated_fields:pi("deprecated_fields"),description:st("description").notNull(),slug:st("slug").notNull(),thread_uid:Be("thread_uid",{length:16}).notNull(),title:st("title").notNull(),...xs,...Zs,...Ns},e=>[Qt({columns:[e.thread_id,e._state,e._expiry_key]}),...Ys({prefix:"threads",state:e._state,table:e,columns:ra})]),ua=["_release_id"];es.table("subject_phase_threads",{subject_id:si("subject_id").notNull(),phase_id:si("phase_id").notNull(),thread_id:si("thread_id").notNull(),...Bs,...Es,deprecated_fields:pi("deprecated_fields"),position:si("position").notNull(),...xs,...Zs,...Ns},e=>[Qt({name:"subject_phase_threads_pk",columns:[e.subject_id,e.phase_id,e.thread_id,e._subject_phase_state,e._subject_phase_expiry_key,e._thread_state,e._thread_expiry_key]}),p({name:"subject_phase_threads_subject_phase_fk",columns:[e.subject_id,e.phase_id,e._subject_phase_state,e._subject_phase_expiry_key],foreignColumns:[oa.subject_id,oa.phase_id,oa._state,oa._expiry_key]}),p({name:"subject_phase_threads_thread_fk",columns:[e.thread_id,e._thread_state,e._thread_expiry_key],foreignColumns:[la.thread_id,la._state,la._expiry_key]}),Js({name:"subject_phase_threads_state_coherence",columnA:e._subject_phase_state,columnB:e._thread_state}),...Ys({prefix:"subject_phase_threads",state:[e._subject_phase_state,e._thread_state],table:e,columns:ua})]),es.table("unit_threads",{thread_id:si("thread_id").notNull(),unit_id:si("unit_id").notNull(),...Es,...Is,deprecated_fields:pi("deprecated_fields"),position:si("position").notNull(),...xs,...Zs,...Ns},e=>[Qt({name:"unit_threads_pk",columns:[e.thread_id,e.unit_id,e._thread_state,e._thread_expiry_key,e._unit_state,e._unit_expiry_key]}),p({name:"unit_threads_thread_fk",columns:[e.thread_id,e._thread_state,e._thread_expiry_key],foreignColumns:[la.thread_id,la._state,la._expiry_key]}),p({name:"unit_threads_unit_fk",columns:[e.unit_id,e._unit_state,e._unit_expiry_key],foreignColumns:[bn.unit_id,bn._state,bn._expiry_key]}),Js({name:"unit_threads_state_coherence",columnA:e._thread_state,columnB:e._unit_state})]);const da=["_release_id"];es.table("unit_catalogue",{subject_id:si("subject_id").notNull(),year_id:si("year_id").notNull(),unit_id:si("unit_id").notNull(),...As,...xs,...Zs,...Ns},e=>[Qt({name:"unit_catalogue_pk",columns:[e.subject_id,e.year_id,e.unit_id,e._state,e._expiry_key]}),p({name:"unit_catalogue_unit_fk",columns:[e.unit_id,e._state,e._expiry_key],foreignColumns:[bn.unit_id,bn._state,bn._expiry_key]}),p({columns:[e.subject_id],foreignColumns:[Bn.subject_id]}),p({columns:[e.year_id],foreignColumns:[En.year_id]}),Vt("unit_catalogue_unit_idx").on(e.unit_id,e._state,e._expiry_key,e.subject_id,e.year_id),...Ys({prefix:"unit_catalogue",state:e._state,table:e,columns:da})]);const ca=["_release_id"];es.table("unit_lessons",{unit_id:si("unit_id").notNull(),lesson_id:si("lesson_id").notNull(),...Is,...$s,position:si("position").notNull(),...xs,...Zs,...Ns},e=>[Qt({name:"unit_lessons_pk",columns:[e.unit_id,e.lesson_id,e._unit_state,e._unit_expiry_key,e._lesson_state,e._lesson_expiry_key]}),p({name:"unit_lessons_unit_fk",columns:[e.unit_id,e._unit_state,e._unit_expiry_key],foreignColumns:[bn.unit_id,bn._state,bn._expiry_key]}),p({name:"unit_lessons_lesson_fk",columns:[e.lesson_id,e._lesson_state,e._lesson_expiry_key],foreignColumns:[sn.lesson_id,sn._state,sn._expiry_key]}),Js({name:"unit_lessons_state_coherence",columnA:e._unit_state,columnB:e._lesson_state}),Vt("unit_lessons_lesson_idx").on(e.lesson_id,e._lesson_state,e._lesson_expiry_key,e.unit_id,e._unit_state,e._unit_expiry_key),...Ys({prefix:"unit_lessons",state:[e._unit_state,e._lesson_state],table:e,columns:ca})]);const pa=["_release_id"];es.table("unit_variant_lessons",{unit_variant_id:si("unit_variant_id").notNull(),lesson_id:si("lesson_id").notNull(),...Fs,...$s,deprecated_fields:pi("deprecated_fields"),position:si("position").notNull(),...xs,...Zs,...Ns},e=>[Qt({name:"unit_var_lessons_pk",columns:[e.unit_variant_id,e.lesson_id,e._unit_variant_state,e._unit_variant_expiry_key,e._lesson_state,e._lesson_expiry_key]}),p({name:"unit_var_lessons_unit_var_fk",columns:[e.unit_variant_id,e._unit_variant_state,e._unit_variant_expiry_key],foreignColumns:[Gn.unit_variant_id,Gn._state,Gn._expiry_key]}),p({name:"unit_var_lessons_lesson_fk",columns:[e.lesson_id,e._lesson_state,e._lesson_expiry_key],foreignColumns:[sn.lesson_id,sn._state,sn._expiry_key]}),Js({name:"unit_var_lessons_state_coherence",columnA:e._unit_variant_state,columnB:e._lesson_state}),Vt("unit_var_lessons_lesson_idx").on(e.lesson_id,e._lesson_state),...Ys({prefix:"unit_variant_lessons",state:[e._unit_variant_state,e._lesson_state],table:e,columns:pa})]);const ma=["_release_id"];es.table("unit_features",{unit_id:si("unit_id").notNull(),feature_id:si("feature_id").notNull(),...As,value:st("value").notNull(),...xs,...Zs,...Ns},e=>[Qt({columns:[e.unit_id,e.feature_id,e._state,e._expiry_key]}),p({name:"unit_features_unit_fk",columns:[e.unit_id,e._state,e._expiry_key],foreignColumns:[bn.unit_id,bn._state,bn._expiry_key]}),p({columns:[e.feature_id],foreignColumns:[Tn.feature_id]}),...Ys({prefix:"unit_features",state:e._state,table:e,columns:ma})]);const ga=ts.enum("lesson_component_operation_status_enum",["api_neutral","api_in_progress","api_failed","ingest_queued","ingest_in_progress","ingest_failed","ingest_completed"]),ya=ts.enum("lesson_component_status_retirement_enum",["superseded","draft_discarded","component_expired","component_removed","orphaned"]);ts.table("lesson_component_status",{lesson_component_status_id:gt("lesson_component_status_id").primaryKey().defaultRandom(),lesson_component_id:si("lesson_component_id").notNull(),lesson_component_type:bs("lesson_component_type").notNull(),active_media_id:si("active_media_id"),active_media_type:vs("active_media_type"),approved:Le("approved").notNull().default(!1),last_approved:ct("last_approved"),last_error_location:st("last_error_location"),last_error_message:st("last_error_message"),last_error_timestamp:ct("last_error_timestamp"),last_ingest_id:gt("last_ingest_id"),operation_status:ga("operation_status").notNull().default("api_neutral"),previous_media_id:si("previous_media_id"),previous_media_type:vs("previous_media_type"),retired_at:ct("retired_at",{withTimezone:!0}),retired_reason:ya("retired_reason"),...Ns},e=>[ge("lesson_comp_status_retired_both",t.sql`(${e.retired_at} is null) = (${e.retired_reason} is null)`),Rt("lesson_comp_status_live_unq").on(e.lesson_component_id,e.lesson_component_type).where(t.sql`${e.retired_at} is null`)]);const ha=ts.enum("lesson_status_enum",["api_neutral","ingest_queued","ingest_in_progress","ingest_complete","ingest_failed"]);ts.table("lesson_status",{lesson_id:si("lesson_id").primaryKey(),approved:Le("approved").notNull().default(!1),last_approved:ct("last_approved"),last_error_location:st("last_error_location"),last_error_message:st("last_error_message"),last_error_timestamp:ct("last_error_timestamp"),status:ha("status").notNull().default("api_neutral"),...Ns});const fa=ts.enum("media_status_enum",["neutral","in_progress","failed"]),va=ts.enum("media_status_retirement_enum",["superseded","media_retired","orphaned"]);ts.table("media_status",{media_status_id:gt("media_status_id").primaryKey().defaultRandom(),media_id:si("media_id").notNull(),media_type:vs("media_type").notNull(),last_error_location:st("last_error_location"),last_error_message:st("last_error_message"),last_error_timestamp:ct("last_error_timestamp"),last_lesson_component_id:si("last_lesson_component_id"),last_lesson_component_type:bs("last_lesson_component_type"),retired_at:ct("retired_at",{withTimezone:!0}),retired_reason:va("retired_reason"),status:fa("status").notNull().default("neutral"),...Ns},e=>[ge("media_status_retired_both",t.sql`(${e.retired_at} is null) = (${e.retired_reason} is null)`),Rt("media_status_live_unq").on(e.media_id,e.media_type).where(t.sql`${e.retired_at} is null`)]),ts.table("mutations_log",{mutations_log_id:gt("mutations_log_id").primaryKey().defaultRandom(),actor_role:st("actor_role"),actor_type:st("actor_type"),app_id:st("app_id"),changes:pi("changes").notNull(),operation:fs("operation").notNull(),record_key:pi("record_key").notNull(),table_name:st("table_name").notNull(),...ks},e=>[Vt("idx_mutations_log_record_key").using("gin",e.record_key)]);const ba=ts.enum("contract_log_event_type_enum",["works_change","contract_change","works_added_to_contract"]);ts.table("tpc_contract_log",{tpc_contract_log_id:si("tpc_contract_log_id").primaryKey().generatedByDefaultAsIdentity(),tpc_contract_id:si("tpc_contract_id").notNull(),changed_at:ct("changed_at",{withTimezone:!0}).notNull(),event_type:ba("event_type").notNull(),payload:pi("payload").notNull()},e=>[p({name:"tpc_contract_log_tpc_contract_fk",columns:[e.tpc_contract_id],foreignColumns:[An.tpc_contract_id]})]);const xa=ts.enum("restrictions_type_enum",["Restrictions 1","Restrictions 2","Restrictions 3","Restrictions 4","Restrictions 5","Restrictions 6","Restrictions 7","Additional Restrictions"]),ka=ts.table("tpc_restriction_definitions",{tpc_restriction_definition_id:si("tpc_restriction_definition_id").primaryKey().generatedByDefaultAsIdentity(),restriction_text:st("restriction_text").notNull(),type:xa("type").notNull(),...Ns},e=>[m("tpc_restriction_definitions_type_unique").on(e.restriction_text,e.type)]);ts.table("tpc_restrictions",{tpc_contract_id:si("tpc_contract_id").notNull(),tpc_restriction_definition_id:si("tpc_restriction_definition_id").notNull(),...As,restriction_override:st("restriction_override"),...Ns},e=>[Qt({name:"tpc_restrictions_pk",columns:[e.tpc_contract_id,e.tpc_restriction_definition_id,e._state,e._expiry_key]}),p({name:"tpc_restrictions_tpc_contract_fk",columns:[e.tpc_contract_id],foreignColumns:[An.tpc_contract_id]}),p({name:"tpc_restrictions_tpc_restriction_definition_fk",columns:[e.tpc_restriction_definition_id],foreignColumns:[ka.tpc_restriction_definition_id]})]),is.view("sub_live_lesson_component_status",{lesson_component_id:si("lesson_component_id"),lesson_component_type:bs("lesson_component_type"),approved:Le("approved"),last_approved:ct("last_approved"),operation_status:ga("operation_status"),active_media_id:si("active_media_id"),active_media_type:vs("active_media_type"),last_ingest_id:gt("last_ingest_id"),created_at:ct("created_at",{withTimezone:!0})}).as(t.sql`
11
11
  SELECT lesson_component_id,
12
12
  lesson_component_type,
13
13
  approved,
@@ -19,7 +19,52 @@
19
19
  created_at
20
20
  FROM internal.lesson_component_status
21
21
  WHERE retired_at IS NULL
22
- `);const Mn=is.view("draft_documents_with_status_by_lesson",{document_id:si("document_id").notNull(),document_type:_n("document_type").notNull(),document_uid:Be("document_uid",{length:16}),lesson_id:si("lesson_id"),previous_lesson_id:si("previous_lesson_id"),gdrive_file_id:si("gdrive_file_id").notNull(),gdrive_files__epoch:s_("gdrive_files__epoch"),gdrive_files__google_drive_id:s_("gdrive_files__google_drive_id"),gdrive_files__google_drive_url:s_("gdrive_files__google_drive_url"),gdrive_files__opendocument_presentation_bucket_name:s_("gdrive_files__opendocument_presentation_bucket_name"),gdrive_files__opendocument_presentation_bucket_path:s_("gdrive_files__opendocument_presentation_bucket_path"),gdrive_files__opendocument_text_bucket_name:s_("gdrive_files__opendocument_text_bucket_name"),gdrive_files__opendocument_text_bucket_path:s_("gdrive_files__opendocument_text_bucket_path"),gdrive_files__pdf_bucket_name:s_("gdrive_files__pdf_bucket_name"),gdrive_files__pdf_bucket_path:s_("gdrive_files__pdf_bucket_path"),gdrive_files__powerpoint_bucket_name:s_("gdrive_files__powerpoint_bucket_name"),gdrive_files__powerpoint_bucket_path:s_("gdrive_files__powerpoint_bucket_path"),gdrive_files__word_bucket_name:s_("gdrive_files__word_bucket_name"),gdrive_files__word_bucket_path:s_("gdrive_files__word_bucket_path"),_expire_on_release:De("_expire_on_release").notNull(),_release_id:si("_release_id"),created_at:c_("created_at",{withTimezone:!0}),updated_at:c_("updated_at",{withTimezone:!0}),lesson_component_status__operation_status:In("lesson_component_status__operation_status"),lesson_component_status__active_media_id:si("lesson_component_status__active_media_id"),lesson_component_status__active_media_type:vs("lesson_component_status__active_media_type"),lesson_component_status__last_ingest_id:g_("lesson_component_status__last_ingest_id"),lesson_component_status__created_at:c_("lesson_component_status__created_at",{withTimezone:!0})}).as(_.sql`
22
+ `),is.view("sub_published_contract_restrictions",{tpc_contract_id:si("tpc_contract_id").notNull(),restriction_level:as("restriction_level").notNull(),geo_restricted:Le("geo_restricted").notNull(),login_required:Le("login_required").notNull(),restricted_download:Le("restricted_download").notNull()}).as(t.sql`
23
+ SELECT
24
+ c.tpc_contract_id,
25
+ COALESCE(
26
+ c.restriction_level_override,
27
+ CASE
28
+ WHEN c.territory IS NOT NULL AND c.territory <> 'worldwide'
29
+ OR COALESCE(BOOL_OR(d.type = 'Restrictions 6'), false)
30
+ OR COALESCE(BOOL_OR(d.type = 'Restrictions 4'), false)
31
+ THEN 'highly_restricted'::raw.restriction_level
32
+ WHEN COALESCE(
33
+ BOOL_OR(
34
+ d.type IN (
35
+ 'Restrictions 1',
36
+ 'Restrictions 3',
37
+ 'Restrictions 5',
38
+ 'Restrictions 7',
39
+ 'Additional Restrictions'
40
+ )
41
+ ),
42
+ false
43
+ ) THEN 'restricted'::raw.restriction_level
44
+ ELSE 'ogl_equivalent'::raw.restriction_level
45
+ END
46
+ ) AS restriction_level,
47
+ (c.territory IS NOT NULL AND c.territory <> 'worldwide') AS geo_restricted,
48
+ COALESCE(BOOL_OR(d.type = 'Restrictions 6'), false) AS login_required,
49
+ COALESCE(BOOL_OR(d.type = 'Restrictions 4'), false) AS restricted_download
50
+ FROM internal.tpc_contracts c
51
+ LEFT JOIN internal.tpc_restrictions r
52
+ ON r.tpc_contract_id = c.tpc_contract_id
53
+ AND r._state = 'published'
54
+ AND r._expiry_key = 0
55
+ LEFT JOIN internal.tpc_restriction_definitions d
56
+ ON d.tpc_restriction_definition_id = r.tpc_restriction_definition_id
57
+ WHERE c._authoring_state = 'published'
58
+ GROUP BY c.tpc_contract_id, c.restriction_level_override, c.territory
59
+ `),is.view("sub_published_lesson_works_copyright",{lesson_id:si("lesson_id").notNull(),works_copyright_id:si("works_copyright_id").notNull()}).as(t.sql`
60
+ SELECT lesson_id,
61
+ works_copyright_id
62
+ FROM raw.lesson_works_copyright
63
+ WHERE _lesson_state = 'published'
64
+ AND _lesson_expiry_key = 0
65
+ AND _works_copyright_state = 'published'
66
+ AND _works_copyright_expiry_key = 0
67
+ `);const Na=is.view("draft_documents_with_status_by_lesson",{document_id:si("document_id").notNull(),document_type:nn("document_type").notNull(),document_uid:Be("document_uid",{length:16}).notNull(),lesson_id:si("lesson_id"),previous_lesson_id:si("previous_lesson_id"),gdrive_file_id:si("gdrive_file_id").notNull(),gdrive_files__epoch:st("gdrive_files__epoch"),gdrive_files__google_drive_id:st("gdrive_files__google_drive_id"),gdrive_files__google_drive_url:st("gdrive_files__google_drive_url"),gdrive_files__opendocument_presentation_bucket_name:st("gdrive_files__opendocument_presentation_bucket_name"),gdrive_files__opendocument_presentation_bucket_path:st("gdrive_files__opendocument_presentation_bucket_path"),gdrive_files__opendocument_text_bucket_name:st("gdrive_files__opendocument_text_bucket_name"),gdrive_files__opendocument_text_bucket_path:st("gdrive_files__opendocument_text_bucket_path"),gdrive_files__pdf_bucket_name:st("gdrive_files__pdf_bucket_name"),gdrive_files__pdf_bucket_path:st("gdrive_files__pdf_bucket_path"),gdrive_files__powerpoint_bucket_name:st("gdrive_files__powerpoint_bucket_name"),gdrive_files__powerpoint_bucket_path:st("gdrive_files__powerpoint_bucket_path"),gdrive_files__word_bucket_name:st("gdrive_files__word_bucket_name"),gdrive_files__word_bucket_path:st("gdrive_files__word_bucket_path"),_expire_on_release:Le("_expire_on_release").notNull(),_release_id:si("_release_id"),created_at:ct("created_at",{withTimezone:!0}),updated_at:ct("updated_at",{withTimezone:!0}),lesson_component_status__operation_status:ga("lesson_component_status__operation_status"),lesson_component_status__active_media_id:si("lesson_component_status__active_media_id"),lesson_component_status__active_media_type:vs("lesson_component_status__active_media_type"),lesson_component_status__last_ingest_id:gt("lesson_component_status__last_ingest_id"),lesson_component_status__created_at:ct("lesson_component_status__created_at",{withTimezone:!0})}).as(t.sql`
23
68
  SELECT
24
69
  d.document_id,
25
70
  d.document_type,
@@ -59,7 +104,7 @@
59
104
  ON lcs.lesson_component_id = d.document_id
60
105
  AND lcs.lesson_component_type = 'document'
61
106
  WHERE d._state = 'draft'
62
- `),Kn=is.view("draft_downloadables_with_status_by_lesson",{downloadable_id:si("downloadable_id").notNull(),bucket_file_id:si("bucket_file_id").notNull(),lesson_id:si("lesson_id"),custom_title:s_("custom_title"),position:si("position").notNull(),previous_lesson_id:si("previous_lesson_id"),bucket_files___authoring_state:ss("bucket_files___authoring_state").notNull(),bucket_files__bucket_name:s_("bucket_files__bucket_name"),bucket_files__bucket_path:s_("bucket_files__bucket_path"),bucket_files__byte_size:si("bucket_files__byte_size"),bucket_files__cloudinary_public_id:s_("bucket_files__cloudinary_public_id"),bucket_files__cloudinary_source_url:s_("bucket_files__cloudinary_source_url"),bucket_files__content_type:s_("bucket_files__content_type"),bucket_files__filename:s_("bucket_files__filename"),bucket_files__media_description:s_("bucket_files__media_description"),bucket_files__name:s_("bucket_files__name"),bucket_files__previous_downloadable_id:si("bucket_files__previous_downloadable_id"),bucket_files___expire_on_release:De("bucket_files___expire_on_release").notNull(),bucket_files___release_id:si("bucket_files___release_id"),_expire_on_release:De("_expire_on_release").notNull(),_release_id:si("_release_id"),created_at:c_("created_at",{withTimezone:!0}),updated_at:c_("updated_at",{withTimezone:!0}),bucket_files__created_at:c_("bucket_files__created_at",{withTimezone:!0}),bucket_files__updated_at:c_("bucket_files__updated_at",{withTimezone:!0}),lesson_component_status__operation_status:In("lesson_component_status__operation_status"),lesson_component_status__active_media_id:si("lesson_component_status__active_media_id"),lesson_component_status__active_media_type:vs("lesson_component_status__active_media_type"),lesson_component_status__last_ingest_id:g_("lesson_component_status__last_ingest_id"),lesson_component_status__created_at:c_("lesson_component_status__created_at",{withTimezone:!0})}).as(_.sql`
107
+ `),wa=is.view("draft_downloadables_with_status_by_lesson",{downloadable_id:si("downloadable_id").notNull(),bucket_file_id:si("bucket_file_id").notNull(),lesson_id:si("lesson_id"),custom_title:st("custom_title"),position:si("position").notNull(),previous_lesson_id:si("previous_lesson_id"),bucket_files___authoring_state:ss("bucket_files___authoring_state").notNull(),bucket_files__bucket_name:st("bucket_files__bucket_name"),bucket_files__bucket_path:st("bucket_files__bucket_path"),bucket_files__byte_size:si("bucket_files__byte_size"),bucket_files__cloudinary_public_id:st("bucket_files__cloudinary_public_id"),bucket_files__cloudinary_source_url:st("bucket_files__cloudinary_source_url"),bucket_files__content_type:st("bucket_files__content_type"),bucket_files__filename:st("bucket_files__filename"),bucket_files__media_description:st("bucket_files__media_description"),bucket_files__name:st("bucket_files__name"),bucket_files__previous_downloadable_id:si("bucket_files__previous_downloadable_id"),bucket_files___expire_on_release:Le("bucket_files___expire_on_release").notNull(),bucket_files___release_id:si("bucket_files___release_id"),_expire_on_release:Le("_expire_on_release").notNull(),_release_id:si("_release_id"),created_at:ct("created_at",{withTimezone:!0}),updated_at:ct("updated_at",{withTimezone:!0}),bucket_files__created_at:ct("bucket_files__created_at",{withTimezone:!0}),bucket_files__updated_at:ct("bucket_files__updated_at",{withTimezone:!0}),lesson_component_status__operation_status:ga("lesson_component_status__operation_status"),lesson_component_status__active_media_id:si("lesson_component_status__active_media_id"),lesson_component_status__active_media_type:vs("lesson_component_status__active_media_type"),lesson_component_status__last_ingest_id:gt("lesson_component_status__last_ingest_id"),lesson_component_status__created_at:ct("lesson_component_status__created_at",{withTimezone:!0})}).as(t.sql`
63
108
  SELECT
64
109
  d.downloadable_id,
65
110
  d.bucket_file_id,
@@ -98,7 +143,7 @@
98
143
  AND lcs.lesson_component_type = 'downloadable'
99
144
  WHERE d._state = 'draft'
100
145
  ORDER BY d.position
101
- `),Wn=is.view("draft_quiz_with_status_by_lesson_and_quiz_role",{quiz_id:si("quiz_id").notNull(),lesson_id:si("lesson_id").notNull(),quiz_role:dn("quiz_role").notNull(),quiz_pdf_bucket_name:s_("quiz_pdf_bucket_name"),quiz_pdf_bucket_path:s_("quiz_pdf_bucket_path"),quiz_answers_pdf_bucket_name:s_("quiz_answers_pdf_bucket_name"),quiz_answers_pdf_bucket_path:s_("quiz_answers_pdf_bucket_path"),lesson_component_status__operation_status:In("lesson_component_status__operation_status"),lesson_component_status__approved:De("lesson_component_status__approved"),lesson_component_status__last_approved:c_("lesson_component_status__last_approved"),quiz_uid:Be("quiz_uid",{length:16}).notNull()}).as(_.sql`
146
+ `),Sa=is.view("draft_quiz_with_status_by_lesson_and_quiz_role",{quiz_id:si("quiz_id").notNull(),lesson_id:si("lesson_id").notNull(),quiz_role:xn("quiz_role").notNull(),quiz_pdf_bucket_name:st("quiz_pdf_bucket_name"),quiz_pdf_bucket_path:st("quiz_pdf_bucket_path"),quiz_answers_pdf_bucket_name:st("quiz_answers_pdf_bucket_name"),quiz_answers_pdf_bucket_path:st("quiz_answers_pdf_bucket_path"),lesson_component_status__operation_status:ga("lesson_component_status__operation_status"),lesson_component_status__approved:Le("lesson_component_status__approved"),lesson_component_status__last_approved:ct("lesson_component_status__last_approved"),quiz_uid:Be("quiz_uid",{length:16}).notNull()}).as(t.sql`
102
147
  SELECT
103
148
  q.quiz_id,
104
149
  q.lesson_id,
@@ -120,7 +165,7 @@
120
165
  ON lcs.lesson_component_id = q.quiz_id
121
166
  AND lcs.lesson_component_type = 'quiz'
122
167
  WHERE q._state = 'draft'
123
- `),Hn=is.view("draft_lesson_with_status",{lesson_id:si("lesson_id").notNull(),equipment_and_resources:pi("equipment_and_resources"),has_tag_practical_not_remote:De("has_tag_practical_not_remote").notNull(),is_sensitive:De("is_sensitive").notNull(),key_learning_points:pi("key_learning_points"),keywords:pi("keywords"),lesson_outline:pi("lesson_outline"),lesson_uid:Be("lesson_uid",{length:16}).notNull(),misconceptions_and_common_mistakes:pi("misconceptions_and_common_mistakes"),phonics_outcome:s_("phonics_outcome"),pupil_lesson_outcome:s_("pupil_lesson_outcome"),slug:s_("slug").notNull(),teacher_tips:pi("teacher_tips"),title:s_("title").notNull(),_expire_on_release:De("_expire_on_release").notNull(),_release_id:si("_release_id"),created_at:c_("created_at",{withTimezone:!0}),updated_at:c_("updated_at",{withTimezone:!0}),lesson_status__status:Fn("lesson_status__status"),lesson_status__approved:De("lesson_status__approved"),lesson_status__last_approved:c_("lesson_status__last_approved"),lesson_status__last_error_location:s_("lesson_status__last_error_location"),lesson_status__last_error_message:s_("lesson_status__last_error_message"),lesson_status__last_error_timestamp:c_("lesson_status__last_error_timestamp"),lesson_status__created_at:c_("lesson_status__created_at",{withTimezone:!0}),lesson_status__updated_at:c_("lesson_status__updated_at",{withTimezone:!0})}).as(_.sql`
168
+ `),qa=is.view("draft_lesson_with_status",{lesson_id:si("lesson_id").notNull(),equipment_and_resources:pi("equipment_and_resources"),has_tag_practical_not_remote:Le("has_tag_practical_not_remote").notNull(),is_sensitive:Le("is_sensitive").notNull(),key_learning_points:pi("key_learning_points"),keywords:pi("keywords"),lesson_outline:pi("lesson_outline"),lesson_uid:Be("lesson_uid",{length:16}).notNull(),misconceptions_and_common_mistakes:pi("misconceptions_and_common_mistakes"),phonics_outcome:st("phonics_outcome"),pupil_lesson_outcome:st("pupil_lesson_outcome"),slug:st("slug").notNull(),teacher_tips:pi("teacher_tips"),title:st("title").notNull(),_expire_on_release:Le("_expire_on_release").notNull(),_release_id:si("_release_id"),created_at:ct("created_at",{withTimezone:!0}),updated_at:ct("updated_at",{withTimezone:!0}),lesson_status__status:ha("lesson_status__status"),lesson_status__approved:Le("lesson_status__approved"),lesson_status__last_approved:ct("lesson_status__last_approved"),lesson_status__last_error_location:st("lesson_status__last_error_location"),lesson_status__last_error_message:st("lesson_status__last_error_message"),lesson_status__last_error_timestamp:ct("lesson_status__last_error_timestamp"),lesson_status__created_at:ct("lesson_status__created_at",{withTimezone:!0}),lesson_status__updated_at:ct("lesson_status__updated_at",{withTimezone:!0})}).as(t.sql`
124
169
  SELECT
125
170
  l.lesson_id,
126
171
  l.equipment_and_resources,
@@ -151,7 +196,7 @@
151
196
  FROM raw.lessons l
152
197
  LEFT JOIN internal.lesson_status ls ON ls.lesson_id = l.lesson_id
153
198
  WHERE l._state = 'draft'
154
- `),Yn=is.view("draft_lesson_video_with_status_by_lesson",{lesson_video_id:si("lesson_video_id").notNull(),lesson_id:si("lesson_id").notNull(),video_id:si("video_id"),main_video___authoring_state:ss("main_video___authoring_state"),main_video__cloudinary_public_id:s_("main_video__cloudinary_public_id"),main_video__cloudinary_source_url:s_("main_video__cloudinary_source_url"),main_video__contains_identifiable_face:De("main_video__contains_identifiable_face"),main_video__duration_seconds:ji("main_video__duration_seconds"),main_video__has_bsl:De("main_video__has_bsl"),main_video__media_description:s_("main_video__media_description"),main_video__mux_asset_id:s_("main_video__mux_asset_id"),main_video__mux_open_playback_id:s_("main_video__mux_open_playback_id"),main_video__mux_secure_playback_id:s_("main_video__mux_secure_playback_id"),main_video__name:s_("main_video__name"),main_video__previous_lesson_video_id:si("main_video__previous_lesson_video_id"),main_video__previous_media_clip_ids:si("main_video__previous_media_clip_ids").array(),main_video__raw_mux_data:pi("main_video__raw_mux_data"),main_video__title:s_("main_video__title"),main_video__url:s_("main_video__url"),main_video__video_uid:Be("main_video__video_uid",{length:16}),main_video___expire_on_release:De("main_video___expire_on_release"),main_video___release_id:si("main_video___release_id"),main_video__created_at:c_("main_video__created_at",{withTimezone:!0}),main_video__updated_at:c_("main_video__updated_at",{withTimezone:!0}),sign_language_video_id:si("sign_language_video_id"),sign_language_video___authoring_state:ss("sign_language_video___authoring_state"),sign_language_video__cloudinary_public_id:s_("sign_language_video__cloudinary_public_id"),sign_language_video__cloudinary_source_url:s_("sign_language_video__cloudinary_source_url"),sign_language_video__contains_identifiable_face:De("sign_language_video__contains_identifiable_face"),sign_language_video__duration_seconds:ji("sign_language_video__duration_seconds"),sign_language_video__has_bsl:De("sign_language_video__has_bsl"),sign_language_video__media_description:s_("sign_language_video__media_description"),sign_language_video__mux_asset_id:s_("sign_language_video__mux_asset_id"),sign_language_video__mux_open_playback_id:s_("sign_language_video__mux_open_playback_id"),sign_language_video__mux_secure_playback_id:s_("sign_language_video__mux_secure_playback_id"),sign_language_video__name:s_("sign_language_video__name"),sign_language_video__previous_lesson_video_id:si("sign_language_video__previous_lesson_video_id"),sign_language_video__previous_media_clip_ids:si("sign_language_video__previous_media_clip_ids").array(),sign_language_video__raw_mux_data:pi("sign_language_video__raw_mux_data"),sign_language_video__title:s_("sign_language_video__title"),sign_language_video__url:s_("sign_language_video__url"),sign_language_video__video_uid:Be("sign_language_video__video_uid",{length:16}),sign_language_video___expire_on_release:De("sign_language_video___expire_on_release"),sign_language_video___release_id:si("sign_language_video___release_id"),sign_language_video__created_at:c_("sign_language_video__created_at",{withTimezone:!0}),sign_language_video__updated_at:c_("sign_language_video__updated_at",{withTimezone:!0}),_expire_on_release:De("_expire_on_release").notNull(),_release_id:si("_release_id"),created_at:c_("created_at",{withTimezone:!0}),updated_at:c_("updated_at",{withTimezone:!0}),lesson_component_status__operation_status:In("lesson_component_status__operation_status"),lesson_component_status__active_media_id:si("lesson_component_status__active_media_id"),lesson_component_status__active_media_type:vs("lesson_component_status__active_media_type"),lesson_component_status__last_ingest_id:g_("lesson_component_status__last_ingest_id"),lesson_component_status__created_at:c_("lesson_component_status__created_at",{withTimezone:!0})}).as(_.sql`
199
+ `),Aa=is.view("draft_lesson_video_with_status_by_lesson",{lesson_video_id:si("lesson_video_id").notNull(),lesson_id:si("lesson_id").notNull(),video_id:si("video_id"),main_video___authoring_state:ss("main_video___authoring_state"),main_video__cloudinary_public_id:st("main_video__cloudinary_public_id"),main_video__cloudinary_source_url:st("main_video__cloudinary_source_url"),main_video__contains_identifiable_face:Le("main_video__contains_identifiable_face"),main_video__duration_seconds:Oi("main_video__duration_seconds"),main_video__has_bsl:Le("main_video__has_bsl"),main_video__media_description:st("main_video__media_description"),main_video__mux_asset_id:st("main_video__mux_asset_id"),main_video__mux_open_playback_id:st("main_video__mux_open_playback_id"),main_video__mux_secure_playback_id:st("main_video__mux_secure_playback_id"),main_video__name:st("main_video__name"),main_video__previous_lesson_video_id:si("main_video__previous_lesson_video_id"),main_video__previous_media_clip_ids:si("main_video__previous_media_clip_ids").array(),main_video__raw_mux_data:pi("main_video__raw_mux_data"),main_video__title:st("main_video__title"),main_video__url:st("main_video__url"),main_video__video_uid:Be("main_video__video_uid",{length:16}),main_video___expire_on_release:Le("main_video___expire_on_release"),main_video___release_id:si("main_video___release_id"),main_video__created_at:ct("main_video__created_at",{withTimezone:!0}),main_video__updated_at:ct("main_video__updated_at",{withTimezone:!0}),sign_language_video_id:si("sign_language_video_id"),sign_language_video___authoring_state:ss("sign_language_video___authoring_state"),sign_language_video__cloudinary_public_id:st("sign_language_video__cloudinary_public_id"),sign_language_video__cloudinary_source_url:st("sign_language_video__cloudinary_source_url"),sign_language_video__contains_identifiable_face:Le("sign_language_video__contains_identifiable_face"),sign_language_video__duration_seconds:Oi("sign_language_video__duration_seconds"),sign_language_video__has_bsl:Le("sign_language_video__has_bsl"),sign_language_video__media_description:st("sign_language_video__media_description"),sign_language_video__mux_asset_id:st("sign_language_video__mux_asset_id"),sign_language_video__mux_open_playback_id:st("sign_language_video__mux_open_playback_id"),sign_language_video__mux_secure_playback_id:st("sign_language_video__mux_secure_playback_id"),sign_language_video__name:st("sign_language_video__name"),sign_language_video__previous_lesson_video_id:si("sign_language_video__previous_lesson_video_id"),sign_language_video__previous_media_clip_ids:si("sign_language_video__previous_media_clip_ids").array(),sign_language_video__raw_mux_data:pi("sign_language_video__raw_mux_data"),sign_language_video__title:st("sign_language_video__title"),sign_language_video__url:st("sign_language_video__url"),sign_language_video__video_uid:Be("sign_language_video__video_uid",{length:16}),sign_language_video___expire_on_release:Le("sign_language_video___expire_on_release"),sign_language_video___release_id:si("sign_language_video___release_id"),sign_language_video__created_at:ct("sign_language_video__created_at",{withTimezone:!0}),sign_language_video__updated_at:ct("sign_language_video__updated_at",{withTimezone:!0}),_expire_on_release:Le("_expire_on_release").notNull(),_release_id:si("_release_id"),created_at:ct("created_at",{withTimezone:!0}),updated_at:ct("updated_at",{withTimezone:!0}),lesson_component_status__operation_status:ga("lesson_component_status__operation_status"),lesson_component_status__active_media_id:si("lesson_component_status__active_media_id"),lesson_component_status__active_media_type:vs("lesson_component_status__active_media_type"),lesson_component_status__last_ingest_id:gt("lesson_component_status__last_ingest_id"),lesson_component_status__created_at:ct("lesson_component_status__created_at",{withTimezone:!0})}).as(t.sql`
155
200
  SELECT
156
201
  lv.lesson_video_id,
157
202
  lv.lesson_id,
@@ -219,7 +264,7 @@
219
264
  ON lcs.lesson_component_id = lv.lesson_video_id
220
265
  AND lcs.lesson_component_type = 'lesson_video'
221
266
  WHERE lv._state = 'draft'
222
- `),Gn=is.view("draft_media_clip_collection_with_status_by_lesson",{media_clip_collection_id:si("media_clip_collection_id").notNull(),lesson_id:si("lesson_id"),previous_lesson_id:si("previous_lesson_id"),_expire_on_release:De("_expire_on_release").notNull(),_release_id:si("_release_id"),created_at:c_("created_at",{withTimezone:!0}),updated_at:c_("updated_at",{withTimezone:!0}),lesson_component_status__operation_status:In("lesson_component_status__operation_status")}).as(_.sql`
267
+ `),za=is.view("draft_media_clip_collection_with_status_by_lesson",{media_clip_collection_id:si("media_clip_collection_id").notNull(),lesson_id:si("lesson_id"),previous_lesson_id:si("previous_lesson_id"),_expire_on_release:Le("_expire_on_release").notNull(),_release_id:si("_release_id"),created_at:ct("created_at",{withTimezone:!0}),updated_at:ct("updated_at",{withTimezone:!0}),lesson_component_status__operation_status:ga("lesson_component_status__operation_status")}).as(t.sql`
223
268
  SELECT
224
269
  mcc.media_clip_collection_id,
225
270
  mcc.lesson_id,
@@ -234,7 +279,7 @@
234
279
  ON lcs.lesson_component_id = mcc.media_clip_collection_id
235
280
  AND lcs.lesson_component_type = 'media_clip_collection'
236
281
  WHERE mcc._state = 'draft'
237
- `),Zn=is.view("draft_media_clips_with_media_and_status_by_lesson",{media_clip_id:si("media_clip_id").notNull(),media_clip_collection_id:si("media_clip_collection_id").notNull(),lesson_id:si("lesson_id").notNull(),video_id:si("video_id"),sound_id:si("sound_id"),clip_section:gs("clip_section").notNull(),custom_title:s_("custom_title"),lesson_outline_index:si("lesson_outline_index"),lesson_outline_entry:pi("lesson_outline_entry"),media_kind:ms("media_kind"),position:si("position"),videos___authoring_state:ss("videos___authoring_state"),videos__cloudinary_public_id:s_("videos__cloudinary_public_id"),videos__cloudinary_source_url:s_("videos__cloudinary_source_url"),videos__contains_identifiable_face:De("videos__contains_identifiable_face"),videos__duration_seconds:ji("videos__duration_seconds"),videos__has_bsl:De("videos__has_bsl"),videos__media_description:s_("videos__media_description"),videos__mux_asset_id:s_("videos__mux_asset_id"),videos__mux_open_playback_id:s_("videos__mux_open_playback_id"),videos__mux_secure_playback_id:s_("videos__mux_secure_playback_id"),videos__name:s_("videos__name"),videos__previous_lesson_video_id:si("videos__previous_lesson_video_id"),videos__previous_media_clip_ids:si("videos__previous_media_clip_ids").array(),videos__raw_mux_data:pi("videos__raw_mux_data"),videos__title:s_("videos__title"),videos__url:s_("videos__url"),videos__video_uid:Be("videos__video_uid",{length:16}),videos___cohort:ns("videos___cohort"),videos___expire_on_release:De("videos___expire_on_release"),videos___release_id:si("videos___release_id"),videos__created_at:c_("videos__created_at",{withTimezone:!0}),videos__updated_at:c_("videos__updated_at",{withTimezone:!0}),sounds___authoring_state:ss("sounds___authoring_state"),sounds__cloudinary_public_id:s_("sounds__cloudinary_public_id"),sounds__cloudinary_source_url:s_("sounds__cloudinary_source_url"),sounds__duration_seconds:ji("sounds__duration_seconds"),sounds__media_description:s_("sounds__media_description"),sounds__mux_asset_id:s_("sounds__mux_asset_id"),sounds__mux_open_playback_id:s_("sounds__mux_open_playback_id"),sounds__name:s_("sounds__name"),sounds__previous_media_clip_ids:si("sounds__previous_media_clip_ids").array(),sounds__title:s_("sounds__title"),sounds___cohort:ns("sounds___cohort"),sounds___expire_on_release:De("sounds___expire_on_release"),sounds___release_id:si("sounds___release_id"),sounds__created_at:c_("sounds__created_at",{withTimezone:!0}),sounds__updated_at:c_("sounds__updated_at",{withTimezone:!0}),_expire_on_release:De("_expire_on_release").notNull(),_release_id:si("_release_id"),created_at:c_("created_at",{withTimezone:!0}),updated_at:c_("updated_at",{withTimezone:!0}),lesson_component_status__operation_status:In("lesson_component_status__operation_status"),lesson_component_status__active_media_id:si("lesson_component_status__active_media_id"),lesson_component_status__active_media_type:vs("lesson_component_status__active_media_type"),lesson_component_status__last_ingest_id:g_("lesson_component_status__last_ingest_id"),lesson_component_status__created_at:c_("lesson_component_status__created_at",{withTimezone:!0})}).as(_.sql`
282
+ `),Ca=is.view("draft_media_clips_with_media_and_status_by_lesson",{media_clip_id:si("media_clip_id").notNull(),media_clip_collection_id:si("media_clip_collection_id").notNull(),lesson_id:si("lesson_id").notNull(),video_id:si("video_id"),sound_id:si("sound_id"),clip_section:gs("clip_section").notNull(),custom_title:st("custom_title"),lesson_outline_index:si("lesson_outline_index"),lesson_outline_entry:pi("lesson_outline_entry"),media_kind:ms("media_kind").notNull(),position:si("position"),videos___authoring_state:ss("videos___authoring_state"),videos__cloudinary_public_id:st("videos__cloudinary_public_id"),videos__cloudinary_source_url:st("videos__cloudinary_source_url"),videos__contains_identifiable_face:Le("videos__contains_identifiable_face"),videos__duration_seconds:Oi("videos__duration_seconds"),videos__has_bsl:Le("videos__has_bsl"),videos__media_description:st("videos__media_description"),videos__mux_asset_id:st("videos__mux_asset_id"),videos__mux_open_playback_id:st("videos__mux_open_playback_id"),videos__mux_secure_playback_id:st("videos__mux_secure_playback_id"),videos__name:st("videos__name"),videos__previous_lesson_video_id:si("videos__previous_lesson_video_id"),videos__previous_media_clip_ids:si("videos__previous_media_clip_ids").array(),videos__raw_mux_data:pi("videos__raw_mux_data"),videos__title:st("videos__title"),videos__url:st("videos__url"),videos__video_uid:Be("videos__video_uid",{length:16}),videos___cohort:ns("videos___cohort"),videos___expire_on_release:Le("videos___expire_on_release"),videos___release_id:si("videos___release_id"),videos__created_at:ct("videos__created_at",{withTimezone:!0}),videos__updated_at:ct("videos__updated_at",{withTimezone:!0}),sounds___authoring_state:ss("sounds___authoring_state"),sounds__cloudinary_public_id:st("sounds__cloudinary_public_id"),sounds__cloudinary_source_url:st("sounds__cloudinary_source_url"),sounds__duration_seconds:Oi("sounds__duration_seconds"),sounds__media_description:st("sounds__media_description"),sounds__mux_asset_id:st("sounds__mux_asset_id"),sounds__mux_open_playback_id:st("sounds__mux_open_playback_id"),sounds__name:st("sounds__name"),sounds__previous_media_clip_ids:si("sounds__previous_media_clip_ids").array(),sounds__title:st("sounds__title"),sounds___cohort:ns("sounds___cohort"),sounds___expire_on_release:Le("sounds___expire_on_release"),sounds___release_id:si("sounds___release_id"),sounds__created_at:ct("sounds__created_at",{withTimezone:!0}),sounds__updated_at:ct("sounds__updated_at",{withTimezone:!0}),_expire_on_release:Le("_expire_on_release").notNull(),_release_id:si("_release_id"),created_at:ct("created_at",{withTimezone:!0}),updated_at:ct("updated_at",{withTimezone:!0}),lesson_component_status__operation_status:ga("lesson_component_status__operation_status"),lesson_component_status__active_media_id:si("lesson_component_status__active_media_id"),lesson_component_status__active_media_type:vs("lesson_component_status__active_media_type"),lesson_component_status__last_ingest_id:gt("lesson_component_status__last_ingest_id"),lesson_component_status__created_at:ct("lesson_component_status__created_at",{withTimezone:!0})}).as(t.sql`
238
283
  SELECT c.media_clip_id, c.media_clip_collection_id, mc.lesson_id,
239
284
  c.video_id, c.sound_id, c.clip_section, c.custom_title,
240
285
  c.lesson_outline_index,
@@ -275,7 +320,7 @@
275
320
  LEFT JOIN rendered.sub_live_lesson_component_status lcs ON lcs.lesson_component_id = c.media_clip_id AND lcs.lesson_component_type = 'media_clip'
276
321
  WHERE c._state = 'draft'
277
322
  ORDER BY CASE c.clip_section WHEN 'intro' THEN 0 ELSE 1 END, c.lesson_outline_index NULLS LAST, c.position NULLS LAST, c.media_clip_id
278
- `),Xn=e=>Object.assign(Object.create(Object.getPrototypeOf(e)),e,{config:{...e.config}}).notNull(),ea={lesson_id:si("lesson_id").notNull(),equipment_and_resources:pi("equipment_and_resources"),has_tag_practical_not_remote:De("has_tag_practical_not_remote").notNull(),is_sensitive:De("is_sensitive").notNull(),key_learning_points:pi("key_learning_points"),keywords:pi("keywords"),lesson_outline:pi("lesson_outline"),lesson_uid:Be("lesson_uid",{length:16}).notNull(),misconceptions_and_common_mistakes:pi("misconceptions_and_common_mistakes"),phonics_outcome:s_("phonics_outcome"),pupil_lesson_outcome:s_("pupil_lesson_outcome"),slug:s_("slug").notNull(),teacher_tips:pi("teacher_tips"),title:s_("title").notNull(),releases__approved:De("releases__approved"),releases__description:s_("releases__description"),releases__estimated_release_date:He("releases__estimated_release_date"),releases__name:s_("releases__name"),releases__notes:s_("releases__notes"),releases__release_type:ws("releases__release_type"),_expire_on_release:De("_expire_on_release").notNull(),_release_id:si("_release_id"),created_at:c_("created_at",{withTimezone:!0}).notNull(),updated_at:c_("updated_at",{withTimezone:!0}).notNull(),releases__created_at:c_("releases__created_at",{withTimezone:!0}),releases__updated_at:c_("releases__updated_at",{withTimezone:!0})},ia=is.view("published_lesson_with_release",(({columns:e,required:i,renames:_})=>{const t=e=>_?.[e]??e,s=new Set(i),n=new Set(Object.keys(e).map(t)),a=i.filter(e=>!n.has(e));if(a.length>0)throw new Error(`notNullWhenPublished: no column for ${a.join(", ")}`);return Object.fromEntries(Object.entries(e).map(([e,i])=>[e,s.has(t(e))?Xn(i):i]))})({columns:ea,required:Xs})).as(_.sql`
323
+ `),Ta=e=>Object.assign(Object.create(Object.getPrototypeOf(e)),e,{config:{...e.config}}).notNull(),Oa=({columns:e,required:i,renames:t})=>{const _=e=>t?.[e]??e,s=new Set(i),n=new Set(Object.keys(e).map(_)),a=i.filter(e=>!n.has(e));if(a.length>0)throw new Error(`notNullWhenPublished: no column for ${a.join(", ")}`);return Object.fromEntries(Object.entries(e).map(([e,i])=>[e,s.has(_(e))?Ta(i):i]))},ja={lesson_id:si("lesson_id").notNull(),equipment_and_resources:pi("equipment_and_resources"),has_tag_practical_not_remote:Le("has_tag_practical_not_remote").notNull(),is_sensitive:Le("is_sensitive").notNull(),key_learning_points:pi("key_learning_points"),keywords:pi("keywords"),lesson_outline:pi("lesson_outline"),lesson_uid:Be("lesson_uid",{length:16}).notNull(),misconceptions_and_common_mistakes:pi("misconceptions_and_common_mistakes"),phonics_outcome:st("phonics_outcome"),pupil_lesson_outcome:st("pupil_lesson_outcome"),slug:st("slug").notNull(),teacher_tips:pi("teacher_tips"),title:st("title").notNull(),releases__approved:Le("releases__approved"),releases__description:st("releases__description"),releases__estimated_release_date:He("releases__estimated_release_date"),releases__name:st("releases__name"),releases__notes:st("releases__notes"),releases__release_type:ws("releases__release_type"),_expire_on_release:Le("_expire_on_release").notNull(),_release_id:si("_release_id"),created_at:ct("created_at",{withTimezone:!0}).notNull(),updated_at:ct("updated_at",{withTimezone:!0}).notNull(),releases__created_at:ct("releases__created_at",{withTimezone:!0}),releases__updated_at:ct("releases__updated_at",{withTimezone:!0})},$a=is.view("published_lesson_with_release",Oa({columns:ja,required:_n})).as(t.sql`
279
324
  SELECT
280
325
  l.lesson_id,
281
326
  l.equipment_and_resources,
@@ -306,7 +351,7 @@
306
351
  FROM raw.lessons l
307
352
  LEFT JOIN internal.releases r ON r.release_id = l._release_id
308
353
  WHERE l._state = 'published'
309
- `),_a=is.view("published_documents_with_release_by_lesson",{document_id:si("document_id").notNull(),document_type:_n("document_type").notNull(),document_uid:Be("document_uid",{length:16}).notNull(),lesson_id:si("lesson_id"),previous_lesson_id:si("previous_lesson_id"),gdrive_file_id:si("gdrive_file_id").notNull(),gdrive_files__epoch:s_("gdrive_files__epoch"),gdrive_files__google_drive_id:s_("gdrive_files__google_drive_id").notNull(),gdrive_files__google_drive_url:s_("gdrive_files__google_drive_url").notNull(),gdrive_files__opendocument_presentation_bucket_name:s_("gdrive_files__opendocument_presentation_bucket_name"),gdrive_files__opendocument_presentation_bucket_path:s_("gdrive_files__opendocument_presentation_bucket_path"),gdrive_files__opendocument_text_bucket_name:s_("gdrive_files__opendocument_text_bucket_name"),gdrive_files__opendocument_text_bucket_path:s_("gdrive_files__opendocument_text_bucket_path"),gdrive_files__pdf_bucket_name:s_("gdrive_files__pdf_bucket_name"),gdrive_files__pdf_bucket_path:s_("gdrive_files__pdf_bucket_path"),gdrive_files__powerpoint_bucket_name:s_("gdrive_files__powerpoint_bucket_name"),gdrive_files__powerpoint_bucket_path:s_("gdrive_files__powerpoint_bucket_path"),gdrive_files__word_bucket_name:s_("gdrive_files__word_bucket_name"),gdrive_files__word_bucket_path:s_("gdrive_files__word_bucket_path"),releases__approved:De("releases__approved"),releases__description:s_("releases__description"),releases__estimated_release_date:He("releases__estimated_release_date"),releases__name:s_("releases__name"),releases__notes:s_("releases__notes"),releases__release_type:ws("releases__release_type"),_expire_on_release:De("_expire_on_release").notNull(),_release_id:si("_release_id"),created_at:c_("created_at",{withTimezone:!0}).notNull(),updated_at:c_("updated_at",{withTimezone:!0}).notNull(),releases__created_at:c_("releases__created_at",{withTimezone:!0}),releases__updated_at:c_("releases__updated_at",{withTimezone:!0})}).as(_.sql`
354
+ `),La=is.view("published_documents_with_release_by_lesson",Oa({columns:{document_id:si("document_id").notNull(),document_type:nn("document_type").notNull(),document_uid:Be("document_uid",{length:16}).notNull(),lesson_id:si("lesson_id"),previous_lesson_id:si("previous_lesson_id"),gdrive_file_id:si("gdrive_file_id").notNull(),gdrive_files__epoch:st("gdrive_files__epoch"),gdrive_files__google_drive_id:st("gdrive_files__google_drive_id").notNull(),gdrive_files__google_drive_url:st("gdrive_files__google_drive_url").notNull(),gdrive_files__opendocument_presentation_bucket_name:st("gdrive_files__opendocument_presentation_bucket_name"),gdrive_files__opendocument_presentation_bucket_path:st("gdrive_files__opendocument_presentation_bucket_path"),gdrive_files__opendocument_text_bucket_name:st("gdrive_files__opendocument_text_bucket_name"),gdrive_files__opendocument_text_bucket_path:st("gdrive_files__opendocument_text_bucket_path"),gdrive_files__pdf_bucket_name:st("gdrive_files__pdf_bucket_name"),gdrive_files__pdf_bucket_path:st("gdrive_files__pdf_bucket_path"),gdrive_files__powerpoint_bucket_name:st("gdrive_files__powerpoint_bucket_name"),gdrive_files__powerpoint_bucket_path:st("gdrive_files__powerpoint_bucket_path"),gdrive_files__word_bucket_name:st("gdrive_files__word_bucket_name"),gdrive_files__word_bucket_path:st("gdrive_files__word_bucket_path"),releases__approved:Le("releases__approved"),releases__description:st("releases__description"),releases__estimated_release_date:He("releases__estimated_release_date"),releases__name:st("releases__name"),releases__notes:st("releases__notes"),releases__release_type:ws("releases__release_type"),_expire_on_release:Le("_expire_on_release").notNull(),_release_id:si("_release_id"),created_at:ct("created_at",{withTimezone:!0}).notNull(),updated_at:ct("updated_at",{withTimezone:!0}).notNull(),releases__created_at:ct("releases__created_at",{withTimezone:!0}),releases__updated_at:ct("releases__updated_at",{withTimezone:!0})},required:an})).as(t.sql`
310
355
  SELECT
311
356
  d.document_id,
312
357
  d.document_type,
@@ -343,7 +388,7 @@
343
388
  JOIN raw.gdrive_files gf ON gf.gdrive_file_id = d.gdrive_file_id
344
389
  LEFT JOIN internal.releases r ON r.release_id = d._release_id
345
390
  WHERE d._state = 'published'
346
- `),ta=is.view("published_downloadables_with_release_by_lesson",{downloadable_id:si("downloadable_id").notNull(),bucket_file_id:si("bucket_file_id").notNull(),lesson_id:si("lesson_id"),custom_title:s_("custom_title").notNull(),position:si("position").notNull(),bucket_files__bucket_name:s_("bucket_files__bucket_name").notNull(),bucket_files__bucket_path:s_("bucket_files__bucket_path").notNull(),bucket_files__byte_size:si("bucket_files__byte_size"),bucket_files__cloudinary_public_id:s_("bucket_files__cloudinary_public_id"),bucket_files__cloudinary_source_url:s_("bucket_files__cloudinary_source_url").notNull(),bucket_files__content_type:s_("bucket_files__content_type").notNull(),bucket_files__filename:s_("bucket_files__filename"),bucket_files__media_description:s_("bucket_files__media_description"),bucket_files__name:s_("bucket_files__name"),bucket_files__previous_downloadable_id:si("bucket_files__previous_downloadable_id"),releases__approved:De("releases__approved"),releases__description:s_("releases__description"),releases__estimated_release_date:He("releases__estimated_release_date"),releases__name:s_("releases__name"),releases__notes:s_("releases__notes"),releases__release_type:ws("releases__release_type"),_expire_on_release:De("_expire_on_release").notNull(),_release_id:si("_release_id")}).as(_.sql`
391
+ `),Da=is.view("published_downloadables_with_release_by_lesson",Oa({columns:{downloadable_id:si("downloadable_id").notNull(),bucket_file_id:si("bucket_file_id").notNull(),lesson_id:si("lesson_id"),custom_title:st("custom_title").notNull(),position:si("position").notNull(),bucket_files__bucket_name:st("bucket_files__bucket_name").notNull(),bucket_files__bucket_path:st("bucket_files__bucket_path").notNull(),bucket_files__byte_size:si("bucket_files__byte_size"),bucket_files__cloudinary_public_id:st("bucket_files__cloudinary_public_id"),bucket_files__cloudinary_source_url:st("bucket_files__cloudinary_source_url").notNull(),bucket_files__content_type:st("bucket_files__content_type").notNull(),bucket_files__filename:st("bucket_files__filename"),bucket_files__media_description:st("bucket_files__media_description"),bucket_files__name:st("bucket_files__name"),bucket_files__previous_downloadable_id:si("bucket_files__previous_downloadable_id"),releases__approved:Le("releases__approved"),releases__description:st("releases__description"),releases__estimated_release_date:He("releases__estimated_release_date"),releases__name:st("releases__name"),releases__notes:st("releases__notes"),releases__release_type:ws("releases__release_type"),_expire_on_release:Le("_expire_on_release").notNull(),_release_id:si("_release_id")},required:ln})).as(t.sql`
347
392
  SELECT
348
393
  d.downloadable_id,
349
394
  d.bucket_file_id,
@@ -373,7 +418,7 @@
373
418
  LEFT JOIN internal.releases r ON r.release_id = d._release_id
374
419
  WHERE d._state = 'published'
375
420
  ORDER BY d.position
376
- `),sa=is.view("published_lesson_video_with_release_by_lesson",{lesson_video_id:si("lesson_video_id").notNull(),lesson_id:si("lesson_id").notNull(),video_id:si("video_id").notNull(),main_video___authoring_state:ss("main_video___authoring_state").notNull(),main_video__cloudinary_public_id:s_("main_video__cloudinary_public_id"),main_video__cloudinary_source_url:s_("main_video__cloudinary_source_url"),main_video__contains_identifiable_face:De("main_video__contains_identifiable_face"),main_video__duration_seconds:ji("main_video__duration_seconds"),main_video__has_bsl:De("main_video__has_bsl").notNull(),main_video__media_description:s_("main_video__media_description"),main_video__mux_asset_id:s_("main_video__mux_asset_id").notNull(),main_video__mux_open_playback_id:s_("main_video__mux_open_playback_id"),main_video__mux_secure_playback_id:s_("main_video__mux_secure_playback_id"),main_video__name:s_("main_video__name"),main_video__previous_lesson_video_id:si("main_video__previous_lesson_video_id"),main_video__previous_media_clip_ids:si("main_video__previous_media_clip_ids").array(),main_video__raw_mux_data:pi("main_video__raw_mux_data").notNull(),main_video__title:s_("main_video__title"),main_video__url:s_("main_video__url").notNull(),main_video__video_uid:Be("main_video__video_uid",{length:16}).notNull(),main_video___expire_on_release:De("main_video___expire_on_release").notNull(),main_video___release_id:si("main_video___release_id"),main_video__created_at:c_("main_video__created_at",{withTimezone:!0}).notNull(),main_video__updated_at:c_("main_video__updated_at",{withTimezone:!0}).notNull(),sign_language_video_id:si("sign_language_video_id"),sign_language_video___authoring_state:ss("sign_language_video___authoring_state"),sign_language_video__cloudinary_public_id:s_("sign_language_video__cloudinary_public_id"),sign_language_video__cloudinary_source_url:s_("sign_language_video__cloudinary_source_url"),sign_language_video__contains_identifiable_face:De("sign_language_video__contains_identifiable_face"),sign_language_video__duration_seconds:ji("sign_language_video__duration_seconds"),sign_language_video__has_bsl:De("sign_language_video__has_bsl"),sign_language_video__media_description:s_("sign_language_video__media_description"),sign_language_video__mux_asset_id:s_("sign_language_video__mux_asset_id"),sign_language_video__mux_open_playback_id:s_("sign_language_video__mux_open_playback_id"),sign_language_video__mux_secure_playback_id:s_("sign_language_video__mux_secure_playback_id"),sign_language_video__name:s_("sign_language_video__name"),sign_language_video__previous_lesson_video_id:si("sign_language_video__previous_lesson_video_id"),sign_language_video__previous_media_clip_ids:si("sign_language_video__previous_media_clip_ids").array(),sign_language_video__raw_mux_data:pi("sign_language_video__raw_mux_data"),sign_language_video__title:s_("sign_language_video__title"),sign_language_video__url:s_("sign_language_video__url"),sign_language_video__video_uid:Be("sign_language_video__video_uid",{length:16}),sign_language_video___expire_on_release:De("sign_language_video___expire_on_release"),sign_language_video___release_id:si("sign_language_video___release_id"),sign_language_video__created_at:c_("sign_language_video__created_at",{withTimezone:!0}),sign_language_video__updated_at:c_("sign_language_video__updated_at",{withTimezone:!0}),releases__approved:De("releases__approved"),releases__description:s_("releases__description"),releases__estimated_release_date:He("releases__estimated_release_date"),releases__name:s_("releases__name"),releases__notes:s_("releases__notes"),releases__release_type:ws("releases__release_type"),_expire_on_release:De("_expire_on_release").notNull(),_release_id:si("_release_id"),created_at:c_("created_at",{withTimezone:!0}).notNull(),updated_at:c_("updated_at",{withTimezone:!0}).notNull(),releases__created_at:c_("releases__created_at",{withTimezone:!0}),releases__updated_at:c_("releases__updated_at",{withTimezone:!0})}).as(_.sql`
421
+ `),Pa=is.view("published_lesson_video_with_release_by_lesson",Oa({columns:{lesson_video_id:si("lesson_video_id").notNull(),lesson_id:si("lesson_id").notNull(),video_id:si("video_id").notNull(),main_video___authoring_state:ss("main_video___authoring_state").notNull(),main_video__cloudinary_public_id:st("main_video__cloudinary_public_id"),main_video__cloudinary_source_url:st("main_video__cloudinary_source_url"),main_video__contains_identifiable_face:Le("main_video__contains_identifiable_face"),main_video__duration_seconds:Oi("main_video__duration_seconds"),main_video__has_bsl:Le("main_video__has_bsl").notNull(),main_video__media_description:st("main_video__media_description"),main_video__mux_asset_id:st("main_video__mux_asset_id").notNull(),main_video__mux_open_playback_id:st("main_video__mux_open_playback_id"),main_video__mux_secure_playback_id:st("main_video__mux_secure_playback_id"),main_video__name:st("main_video__name"),main_video__previous_lesson_video_id:si("main_video__previous_lesson_video_id"),main_video__previous_media_clip_ids:si("main_video__previous_media_clip_ids").array(),main_video__raw_mux_data:pi("main_video__raw_mux_data").notNull(),main_video__title:st("main_video__title"),main_video__url:st("main_video__url").notNull(),main_video__video_uid:Be("main_video__video_uid",{length:16}).notNull(),main_video___expire_on_release:Le("main_video___expire_on_release").notNull(),main_video___release_id:si("main_video___release_id"),main_video__created_at:ct("main_video__created_at",{withTimezone:!0}).notNull(),main_video__updated_at:ct("main_video__updated_at",{withTimezone:!0}).notNull(),sign_language_video_id:si("sign_language_video_id"),sign_language_video___authoring_state:ss("sign_language_video___authoring_state"),sign_language_video__cloudinary_public_id:st("sign_language_video__cloudinary_public_id"),sign_language_video__cloudinary_source_url:st("sign_language_video__cloudinary_source_url"),sign_language_video__contains_identifiable_face:Le("sign_language_video__contains_identifiable_face"),sign_language_video__duration_seconds:Oi("sign_language_video__duration_seconds"),sign_language_video__has_bsl:Le("sign_language_video__has_bsl"),sign_language_video__media_description:st("sign_language_video__media_description"),sign_language_video__mux_asset_id:st("sign_language_video__mux_asset_id"),sign_language_video__mux_open_playback_id:st("sign_language_video__mux_open_playback_id"),sign_language_video__mux_secure_playback_id:st("sign_language_video__mux_secure_playback_id"),sign_language_video__name:st("sign_language_video__name"),sign_language_video__previous_lesson_video_id:si("sign_language_video__previous_lesson_video_id"),sign_language_video__previous_media_clip_ids:si("sign_language_video__previous_media_clip_ids").array(),sign_language_video__raw_mux_data:pi("sign_language_video__raw_mux_data"),sign_language_video__title:st("sign_language_video__title"),sign_language_video__url:st("sign_language_video__url"),sign_language_video__video_uid:Be("sign_language_video__video_uid",{length:16}),sign_language_video___expire_on_release:Le("sign_language_video___expire_on_release"),sign_language_video___release_id:si("sign_language_video___release_id"),sign_language_video__created_at:ct("sign_language_video__created_at",{withTimezone:!0}),sign_language_video__updated_at:ct("sign_language_video__updated_at",{withTimezone:!0}),releases__approved:Le("releases__approved"),releases__description:st("releases__description"),releases__estimated_release_date:He("releases__estimated_release_date"),releases__name:st("releases__name"),releases__notes:st("releases__notes"),releases__release_type:ws("releases__release_type"),_expire_on_release:Le("_expire_on_release").notNull(),_release_id:si("_release_id"),created_at:ct("created_at",{withTimezone:!0}).notNull(),updated_at:ct("updated_at",{withTimezone:!0}).notNull(),releases__created_at:ct("releases__created_at",{withTimezone:!0}),releases__updated_at:ct("releases__updated_at",{withTimezone:!0})},required:dn})).as(t.sql`
377
422
  SELECT
378
423
  lv.lesson_video_id,
379
424
  lv.lesson_id,
@@ -442,7 +487,7 @@
442
487
  LEFT JOIN raw.videos slv ON slv.video_id = lv.sign_language_video_id
443
488
  LEFT JOIN internal.releases r ON r.release_id = lv._release_id
444
489
  WHERE lv._state = 'published'
445
- `),na=is.view("published_media_clip_collection_with_release_by_lesson",{media_clip_collection_id:si("media_clip_collection_id").notNull(),lesson_id:si("lesson_id"),previous_lesson_id:si("previous_lesson_id"),releases__approved:De("releases__approved"),releases__description:s_("releases__description"),releases__estimated_release_date:He("releases__estimated_release_date"),releases__name:s_("releases__name"),releases__notes:s_("releases__notes"),releases__release_type:ws("releases__release_type"),_expire_on_release:De("_expire_on_release").notNull(),_release_id:si("_release_id"),created_at:c_("created_at",{withTimezone:!0}).notNull(),updated_at:c_("updated_at",{withTimezone:!0}).notNull(),releases__created_at:c_("releases__created_at",{withTimezone:!0}),releases__updated_at:c_("releases__updated_at",{withTimezone:!0})}).as(_.sql`
490
+ `),Ba=is.view("published_media_clip_collection_with_release_by_lesson",Oa({columns:{media_clip_collection_id:si("media_clip_collection_id").notNull(),lesson_id:si("lesson_id"),previous_lesson_id:si("previous_lesson_id"),releases__approved:Le("releases__approved"),releases__description:st("releases__description"),releases__estimated_release_date:He("releases__estimated_release_date"),releases__name:st("releases__name"),releases__notes:st("releases__notes"),releases__release_type:ws("releases__release_type"),_expire_on_release:Le("_expire_on_release").notNull(),_release_id:si("_release_id"),created_at:ct("created_at",{withTimezone:!0}).notNull(),updated_at:ct("updated_at",{withTimezone:!0}).notNull(),releases__created_at:ct("releases__created_at",{withTimezone:!0}),releases__updated_at:ct("releases__updated_at",{withTimezone:!0})},required:cn})).as(t.sql`
446
491
  SELECT
447
492
  mcc.media_clip_collection_id,
448
493
  mcc.lesson_id,
@@ -462,7 +507,7 @@
462
507
  FROM raw.media_clip_collection mcc
463
508
  LEFT JOIN internal.releases r ON r.release_id = mcc._release_id
464
509
  WHERE mcc._state = 'published'
465
- `),aa=is.view("published_media_clips_with_media_and_release_by_lesson",{media_clip_id:si("media_clip_id").notNull(),media_clip_collection_id:si("media_clip_collection_id").notNull(),lesson_id:si("lesson_id").notNull(),video_id:si("video_id"),sound_id:si("sound_id"),clip_section:gs("clip_section").notNull(),custom_title:s_("custom_title"),lesson_outline_index:si("lesson_outline_index"),lesson_outline_entry:pi("lesson_outline_entry"),media_kind:ms("media_kind"),position:si("position").notNull(),videos___authoring_state:ss("videos___authoring_state"),videos__cloudinary_public_id:s_("videos__cloudinary_public_id"),videos__cloudinary_source_url:s_("videos__cloudinary_source_url"),videos__contains_identifiable_face:De("videos__contains_identifiable_face"),videos__duration_seconds:ji("videos__duration_seconds"),videos__has_bsl:De("videos__has_bsl"),videos__media_description:s_("videos__media_description"),videos__mux_asset_id:s_("videos__mux_asset_id"),videos__mux_open_playback_id:s_("videos__mux_open_playback_id"),videos__mux_secure_playback_id:s_("videos__mux_secure_playback_id"),videos__name:s_("videos__name"),videos__previous_lesson_video_id:si("videos__previous_lesson_video_id"),videos__previous_media_clip_ids:si("videos__previous_media_clip_ids").array(),videos__raw_mux_data:pi("videos__raw_mux_data"),videos__title:s_("videos__title"),videos__url:s_("videos__url"),videos__video_uid:Be("videos__video_uid",{length:16}),videos___cohort:ns("videos___cohort"),videos___expire_on_release:De("videos___expire_on_release"),videos___release_id:si("videos___release_id"),videos__created_at:c_("videos__created_at",{withTimezone:!0}),videos__updated_at:c_("videos__updated_at",{withTimezone:!0}),sounds___authoring_state:ss("sounds___authoring_state"),sounds__cloudinary_public_id:s_("sounds__cloudinary_public_id"),sounds__cloudinary_source_url:s_("sounds__cloudinary_source_url"),sounds__duration_seconds:ji("sounds__duration_seconds"),sounds__media_description:s_("sounds__media_description"),sounds__mux_asset_id:s_("sounds__mux_asset_id"),sounds__mux_open_playback_id:s_("sounds__mux_open_playback_id"),sounds__name:s_("sounds__name"),sounds__previous_media_clip_ids:si("sounds__previous_media_clip_ids").array(),sounds__title:s_("sounds__title"),sounds___cohort:ns("sounds___cohort"),sounds___expire_on_release:De("sounds___expire_on_release"),sounds___release_id:si("sounds___release_id"),sounds__created_at:c_("sounds__created_at",{withTimezone:!0}),sounds__updated_at:c_("sounds__updated_at",{withTimezone:!0}),releases__approved:De("releases__approved"),releases__description:s_("releases__description"),releases__estimated_release_date:He("releases__estimated_release_date"),releases__name:s_("releases__name"),releases__notes:s_("releases__notes"),releases__release_type:ws("releases__release_type"),_expire_on_release:De("_expire_on_release").notNull(),_release_id:si("_release_id"),created_at:c_("created_at",{withTimezone:!0}).notNull(),updated_at:c_("updated_at",{withTimezone:!0}).notNull(),releases__created_at:c_("releases__created_at",{withTimezone:!0}),releases__updated_at:c_("releases__updated_at",{withTimezone:!0})}).as(_.sql`
510
+ `),Ea=is.view("published_media_clips_with_media_and_release_by_lesson",Oa({columns:{media_clip_id:si("media_clip_id").notNull(),media_clip_collection_id:si("media_clip_collection_id").notNull(),lesson_id:si("lesson_id").notNull(),video_id:si("video_id"),sound_id:si("sound_id"),clip_section:gs("clip_section").notNull(),custom_title:st("custom_title"),lesson_outline_index:si("lesson_outline_index"),lesson_outline_entry:pi("lesson_outline_entry"),media_kind:ms("media_kind").notNull(),position:si("position").notNull(),videos___authoring_state:ss("videos___authoring_state"),videos__cloudinary_public_id:st("videos__cloudinary_public_id"),videos__cloudinary_source_url:st("videos__cloudinary_source_url"),videos__contains_identifiable_face:Le("videos__contains_identifiable_face"),videos__duration_seconds:Oi("videos__duration_seconds"),videos__has_bsl:Le("videos__has_bsl"),videos__media_description:st("videos__media_description"),videos__mux_asset_id:st("videos__mux_asset_id"),videos__mux_open_playback_id:st("videos__mux_open_playback_id"),videos__mux_secure_playback_id:st("videos__mux_secure_playback_id"),videos__name:st("videos__name"),videos__previous_lesson_video_id:si("videos__previous_lesson_video_id"),videos__previous_media_clip_ids:si("videos__previous_media_clip_ids").array(),videos__raw_mux_data:pi("videos__raw_mux_data"),videos__title:st("videos__title"),videos__url:st("videos__url"),videos__video_uid:Be("videos__video_uid",{length:16}),videos___cohort:ns("videos___cohort"),videos___expire_on_release:Le("videos___expire_on_release"),videos___release_id:si("videos___release_id"),videos__created_at:ct("videos__created_at",{withTimezone:!0}),videos__updated_at:ct("videos__updated_at",{withTimezone:!0}),sounds___authoring_state:ss("sounds___authoring_state"),sounds__cloudinary_public_id:st("sounds__cloudinary_public_id"),sounds__cloudinary_source_url:st("sounds__cloudinary_source_url"),sounds__duration_seconds:Oi("sounds__duration_seconds"),sounds__media_description:st("sounds__media_description"),sounds__mux_asset_id:st("sounds__mux_asset_id"),sounds__mux_open_playback_id:st("sounds__mux_open_playback_id"),sounds__name:st("sounds__name"),sounds__previous_media_clip_ids:si("sounds__previous_media_clip_ids").array(),sounds__title:st("sounds__title"),sounds___cohort:ns("sounds___cohort"),sounds___expire_on_release:Le("sounds___expire_on_release"),sounds___release_id:si("sounds___release_id"),sounds__created_at:ct("sounds__created_at",{withTimezone:!0}),sounds__updated_at:ct("sounds__updated_at",{withTimezone:!0}),releases__approved:Le("releases__approved"),releases__description:st("releases__description"),releases__estimated_release_date:He("releases__estimated_release_date"),releases__name:st("releases__name"),releases__notes:st("releases__notes"),releases__release_type:ws("releases__release_type"),_expire_on_release:Le("_expire_on_release").notNull(),_release_id:si("_release_id"),created_at:ct("created_at",{withTimezone:!0}).notNull(),updated_at:ct("updated_at",{withTimezone:!0}).notNull(),releases__created_at:ct("releases__created_at",{withTimezone:!0}),releases__updated_at:ct("releases__updated_at",{withTimezone:!0})},required:gn})).as(t.sql`
466
511
  SELECT c.media_clip_id, c.media_clip_collection_id, mc.lesson_id, c.video_id, c.sound_id, c.clip_section, c.custom_title, c.lesson_outline_index,
467
512
  CASE
468
513
  WHEN jsonb_typeof(l.lesson_outline) = 'array' THEN
@@ -485,7 +530,7 @@
485
530
  LEFT JOIN internal.releases r ON r.release_id = c._release_id
486
531
  WHERE c._state = 'published'
487
532
  ORDER BY CASE c.clip_section WHEN 'intro' THEN 0 ELSE 1 END, c.lesson_outline_index NULLS LAST, c.position NULLS LAST, c.media_clip_id
488
- `),oa=is.view("unit_contexts_by_unit",{subject_id:si("subject_id").notNull(),year_id:si("year_id").notNull(),unit_id:si("unit_id").notNull(),_state:ss("_state").notNull(),_expiry_key:si("_expiry_key").notNull(),subjects__subject:s_("subjects__subject"),subjects__subject_parent_id:si("subjects__subject_parent_id"),subjects__non_curriculum:De("subjects__non_curriculum"),subjects__description:s_("subjects__description"),subjects__global_position:si("subjects__global_position").notNull(),subjects__slug:s_("subjects__slug"),years__year:s_("years__year"),years__key_stage_id:si("years__key_stage_id").notNull(),years__phase_id:si("years__phase_id").notNull(),years__description:s_("years__description"),years__global_position:si("years__global_position").notNull(),years__slug:s_("years__slug"),key_stages__key_stage:s_("key_stages__key_stage"),key_stages__description:s_("key_stages__description"),key_stages__global_position:si("key_stages__global_position").notNull(),key_stages__slug:s_("key_stages__slug"),phases__phase:s_("phases__phase"),phases__description:s_("phases__description"),phases__global_position:si("phases__global_position").notNull(),phases__slug:s_("phases__slug")}).as(_.sql`
533
+ `),Ia=is.view("unit_contexts_by_unit",{subject_id:si("subject_id").notNull(),year_id:si("year_id").notNull(),unit_id:si("unit_id").notNull(),_state:ss("_state").notNull(),_expiry_key:si("_expiry_key").notNull(),subjects__subject:st("subjects__subject").notNull(),subjects__subject_parent_id:si("subjects__subject_parent_id"),subjects__non_curriculum:Le("subjects__non_curriculum"),subjects__description:st("subjects__description").notNull(),subjects__global_position:si("subjects__global_position").notNull(),subjects__slug:st("subjects__slug").notNull(),years__year:st("years__year").notNull(),years__key_stage_id:si("years__key_stage_id").notNull(),years__phase_id:si("years__phase_id").notNull(),years__description:st("years__description").notNull(),years__global_position:si("years__global_position").notNull(),years__slug:st("years__slug").notNull(),key_stages__key_stage:st("key_stages__key_stage").notNull(),key_stages__description:st("key_stages__description").notNull(),key_stages__global_position:si("key_stages__global_position").notNull(),key_stages__slug:st("key_stages__slug").notNull(),phases__phase:st("phases__phase").notNull(),phases__description:st("phases__description").notNull(),phases__global_position:si("phases__global_position").notNull(),phases__slug:st("phases__slug").notNull()}).as(t.sql`
489
534
  SELECT
490
535
  uc.subject_id,
491
536
  uc.year_id,
@@ -517,7 +562,7 @@
517
562
  JOIN raw.years y ON y.year_id = uc.year_id
518
563
  JOIN raw.key_stages ks ON ks.key_stage_id = y.key_stage_id
519
564
  JOIN raw.phases p ON p.phase_id = y.phase_id
520
- `),ra=is.view("unitvariant_contexts_by_lesson",{lesson_id:si("lesson_id").notNull(),_lesson_state:ss("_lesson_state").notNull(),_lesson_expiry_key:si("_lesson_expiry_key").notNull(),unit_variant_id:si("unit_variant_id").notNull(),_unit_variant_state:ss("_unit_variant_state").notNull(),_unit_variant_expiry_key:si("_unit_variant_expiry_key").notNull(),programme_id:si("programme_id").notNull(),position:si("position").notNull(),_programme_state:ss("_programme_state").notNull(),_programme_expiry_key:si("_programme_expiry_key").notNull(),programmes__subject_id:si("programmes__subject_id").notNull(),programmes__year_id:si("programmes__year_id").notNull(),programmes__tier_id:si("programmes__tier_id"),programmes__exam_board_id:si("programmes__exam_board_id"),programmes__pathway_id:si("programmes__pathway_id"),programmes__legacy:De("programmes__legacy").notNull(),unit_variants__unit_id:si("unit_variants__unit_id").notNull(),unit_variants__subject_id:si("unit_variants__subject_id"),unit_variants__tier_id:si("unit_variants__tier_id"),unit_variants__exam_board_id:si("unit_variants__exam_board_id"),unit_variants__pathway_id:si("unit_variants__pathway_id"),unit_variants__title_override:s_("unit_variants__title_override"),unit_variants__optionality:s_("unit_variants__optionality"),subjects__subject:s_("subjects__subject"),years__year:s_("years__year"),years__key_stage_id:si("years__key_stage_id").notNull(),key_stages__key_stage:s_("key_stages__key_stage"),years__phase_id:si("years__phase_id").notNull(),phases__phase:s_("phases__phase"),tiers__tier:s_("tiers__tier"),exam_boards__exam_board:s_("exam_boards__exam_board"),pathways__pathway:s_("pathways__pathway"),units__title:s_("units__title").notNull(),choice_id:si("choice_id"),slot_kind:s_("slot_kind").notNull()}).as(_.sql`
565
+ `),Fa=is.view("unitvariant_contexts_by_lesson",{lesson_id:si("lesson_id").notNull(),_lesson_state:ss("_lesson_state").notNull(),_lesson_expiry_key:si("_lesson_expiry_key").notNull(),unit_variant_id:si("unit_variant_id").notNull(),_unit_variant_state:ss("_unit_variant_state").notNull(),_unit_variant_expiry_key:si("_unit_variant_expiry_key").notNull(),programme_id:si("programme_id").notNull(),position:si("position").notNull(),_programme_state:ss("_programme_state").notNull(),_programme_expiry_key:si("_programme_expiry_key").notNull(),programmes__subject_id:si("programmes__subject_id").notNull(),programmes__year_id:si("programmes__year_id").notNull(),programmes__tier_id:si("programmes__tier_id"),programmes__exam_board_id:si("programmes__exam_board_id"),programmes__pathway_id:si("programmes__pathway_id"),programmes__legacy:Le("programmes__legacy").notNull(),unit_variants__unit_id:si("unit_variants__unit_id").notNull(),unit_variants__subject_id:si("unit_variants__subject_id"),unit_variants__tier_id:si("unit_variants__tier_id"),unit_variants__exam_board_id:si("unit_variants__exam_board_id"),unit_variants__pathway_id:si("unit_variants__pathway_id"),unit_variants__title_override:st("unit_variants__title_override"),unit_variants__optionality:st("unit_variants__optionality"),subjects__subject:st("subjects__subject").notNull(),years__year:st("years__year").notNull(),years__key_stage_id:si("years__key_stage_id").notNull(),key_stages__key_stage:st("key_stages__key_stage").notNull(),years__phase_id:si("years__phase_id").notNull(),phases__phase:st("phases__phase").notNull(),tiers__tier:st("tiers__tier"),exam_boards__exam_board:st("exam_boards__exam_board"),pathways__pathway:st("pathways__pathway"),units__title:st("units__title").notNull(),choice_id:si("choice_id"),slot_kind:st("slot_kind").notNull()}).as(t.sql`
521
566
  WITH placements AS (
522
567
  SELECT
523
568
  uvl.lesson_id,
@@ -619,7 +664,7 @@
619
664
  LEFT JOIN raw.tiers t ON t.tier_id = pr.tier_id
620
665
  LEFT JOIN raw.exam_boards eb ON eb.exam_board_id = pr.exam_board_id
621
666
  LEFT JOIN raw.pathways pa ON pa.pathway_id = pr.pathway_id
622
- `),la=is.view("units_by_lesson",{lesson_id:si("lesson_id").notNull(),_lesson_state:ss("_lesson_state").notNull(),_lesson_expiry_key:si("_lesson_expiry_key").notNull(),unit_id:si("unit_id").notNull(),_unit_state:ss("_unit_state").notNull(),_unit_expiry_key:si("_unit_expiry_key").notNull(),position:si("position").notNull(),units__title:s_("units__title").notNull(),units__slug:s_("units__slug"),units__description:s_("units__description").notNull()}).as(_.sql`
667
+ `),Va=is.view("units_by_lesson",{lesson_id:si("lesson_id").notNull(),_lesson_state:ss("_lesson_state").notNull(),_lesson_expiry_key:si("_lesson_expiry_key").notNull(),unit_id:si("unit_id").notNull(),_unit_state:ss("_unit_state").notNull(),_unit_expiry_key:si("_unit_expiry_key").notNull(),position:si("position").notNull(),units__title:st("units__title").notNull(),units__slug:st("units__slug").notNull(),units__description:st("units__description").notNull()}).as(t.sql`
623
668
  SELECT
624
669
  ul.lesson_id,
625
670
  ul._lesson_state,
@@ -636,7 +681,7 @@
636
681
  ON u.unit_id = ul.unit_id
637
682
  AND u._state = ul._unit_state
638
683
  AND u._expiry_key = ul._unit_expiry_key
639
- `),da=is.view("tags_by_lesson",{lesson_id:si("lesson_id").notNull(),tag_id:si("tag_id").notNull(),_state:ss("_state").notNull(),_expiry_key:si("_expiry_key").notNull(),position:si("position").notNull(),tags__tag_category:ps("tags__tag_category"),tags__title:s_("tags__title").notNull(),tags___authoring_state:ss("tags___authoring_state").notNull()}).as(_.sql`
684
+ `),Ra=is.view("tags_by_lesson",{lesson_id:si("lesson_id").notNull(),tag_id:si("tag_id").notNull(),_state:ss("_state").notNull(),_expiry_key:si("_expiry_key").notNull(),position:si("position").notNull(),tags__tag_category:ps("tags__tag_category"),tags__title:st("tags__title").notNull(),tags___authoring_state:ss("tags___authoring_state").notNull()}).as(t.sql`
640
685
  SELECT
641
686
  lt.lesson_id,
642
687
  lt.tag_id,
@@ -654,7 +699,7 @@
654
699
  JOIN raw.tags t
655
700
  ON t.tag_id = lt.tag_id
656
701
  ORDER BY lt.position
657
- `),ua=is.view("quiz_questions_by_lesson",{quiz_id:si("quiz_id").notNull(),question_id:si("question_id").notNull(),_quiz_state:ss("_quiz_state").notNull(),_quiz_expiry_key:si("_quiz_expiry_key").notNull(),_question_state:ss("_question_state").notNull(),_question_expiry_key:si("_question_expiry_key").notNull(),lesson_id:si("lesson_id").notNull(),_lesson_state:ss("_lesson_state").notNull(),_lesson_expiry_key:si("_lesson_expiry_key").notNull(),position:si("position").notNull(),quizzes__quiz_role:dn("quizzes__quiz_role").notNull(),questions__question_type:cs("questions__question_type").notNull(),questions__stem_text:s_("questions__stem_text"),questions__hint:s_("questions__hint"),questions__feedback:s_("questions__feedback"),questions__stem_image_id:si("questions__stem_image_id"),images__cloudinary_public_id:s_("images__cloudinary_public_id"),images__cloudinary_source_url:s_("images__cloudinary_source_url"),images__width:si("images__width"),images__height:si("images__height"),images__media_description:s_("images__media_description"),images___authoring_state:ss("images___authoring_state"),quizzes__quiz_uid:Be("quizzes__quiz_uid",{length:16}).notNull(),questions__question_uid:Be("questions__question_uid",{length:16}).notNull()}).as(_.sql`
702
+ `),Qa=is.view("quiz_questions_by_lesson",{quiz_id:si("quiz_id").notNull(),question_id:si("question_id").notNull(),_quiz_state:ss("_quiz_state").notNull(),_quiz_expiry_key:si("_quiz_expiry_key").notNull(),_question_state:ss("_question_state").notNull(),_question_expiry_key:si("_question_expiry_key").notNull(),lesson_id:si("lesson_id").notNull(),_lesson_state:ss("_lesson_state").notNull(),_lesson_expiry_key:si("_lesson_expiry_key").notNull(),position:si("position").notNull(),quizzes__quiz_role:xn("quizzes__quiz_role").notNull(),questions__question_type:cs("questions__question_type").notNull(),questions__stem_text:st("questions__stem_text"),questions__hint:st("questions__hint"),questions__feedback:st("questions__feedback"),questions__stem_image_id:si("questions__stem_image_id"),images__cloudinary_public_id:st("images__cloudinary_public_id"),images__cloudinary_source_url:st("images__cloudinary_source_url"),images__width:si("images__width"),images__height:si("images__height"),images__media_description:st("images__media_description"),images___authoring_state:ss("images___authoring_state"),quizzes__quiz_uid:Be("quizzes__quiz_uid",{length:16}).notNull(),questions__question_uid:Be("questions__question_uid",{length:16}).notNull()}).as(t.sql`
658
703
  SELECT
659
704
  qq.quiz_id,
660
705
  qq.question_id,
@@ -698,7 +743,7 @@
698
743
  LEFT JOIN raw.images i
699
744
  ON i.image_id = q.stem_image_id
700
745
  ORDER BY qz.quiz_role, qq.position
701
- `),ca=is.view("assigned_content_guidance_by_lesson",{lesson_id:si("lesson_id").notNull(),_state:ss("_state").notNull(),_expiry_key:si("_expiry_key").notNull(),content_guidance_id:si("content_guidance_id").notNull(),position:si("position").notNull(),content_guidance__content_guidance_area:s_("content_guidance__content_guidance_area"),content_guidance__content_guidance_code:s_("content_guidance__content_guidance_code"),content_guidance__content_guidance_description:s_("content_guidance__content_guidance_description"),content_guidance__content_guidance_label:s_("content_guidance__content_guidance_label"),content_guidance__supervision_level_id:si("content_guidance__supervision_level_id").notNull(),supervision_levels__description:s_("supervision_levels__description"),supervision_levels__global_position:si("supervision_levels__global_position").notNull(),supervision_levels__supervision_level_rating:si("supervision_levels__supervision_level_rating"),supervision_levels__title:s_("supervision_levels__title").notNull(),content_guidance___authoring_state:ss("content_guidance___authoring_state").notNull()}).as(_.sql`
746
+ `),Ja=is.view("assigned_content_guidance_by_lesson",{lesson_id:si("lesson_id").notNull(),_state:ss("_state").notNull(),_expiry_key:si("_expiry_key").notNull(),content_guidance_id:si("content_guidance_id").notNull(),position:si("position").notNull(),content_guidance__content_guidance_area:st("content_guidance__content_guidance_area").notNull(),content_guidance__content_guidance_code:st("content_guidance__content_guidance_code").notNull(),content_guidance__content_guidance_description:st("content_guidance__content_guidance_description").notNull(),content_guidance__content_guidance_label:st("content_guidance__content_guidance_label").notNull(),content_guidance__supervision_level_id:si("content_guidance__supervision_level_id").notNull(),supervision_levels__description:st("supervision_levels__description"),supervision_levels__global_position:si("supervision_levels__global_position").notNull(),supervision_levels__supervision_level_rating:si("supervision_levels__supervision_level_rating").notNull(),supervision_levels__title:st("supervision_levels__title").notNull(),content_guidance___authoring_state:ss("content_guidance___authoring_state").notNull()}).as(t.sql`
702
747
  SELECT
703
748
  lcg.lesson_id,
704
749
  lcg._state,
@@ -725,7 +770,7 @@
725
770
  JOIN raw.supervision_levels sl
726
771
  ON sl.supervision_level_id = cg.supervision_level_id
727
772
  ORDER BY lcg.position
728
- `),pa=is.view("question_options_by_lesson",{quiz_id:si("quiz_id").notNull(),question_id:si("question_id").notNull(),option_id:si("option_id").notNull(),_quiz_state:ss("_quiz_state").notNull(),_quiz_expiry_key:si("_quiz_expiry_key").notNull(),_state:ss("_state").notNull(),_expiry_key:si("_expiry_key").notNull(),lesson_id:si("lesson_id").notNull(),_lesson_state:ss("_lesson_state").notNull(),_lesson_expiry_key:si("_lesson_expiry_key").notNull(),quizzes__quiz_role:dn("quizzes__quiz_role").notNull(),body_image_id:si("body_image_id"),body_text:s_("body_text"),correct_order:si("correct_order"),is_correct:De("is_correct"),match_partner_image_id:si("match_partner_image_id"),match_partner_text:s_("match_partner_text"),position:si("position"),body_image__cloudinary_public_id:s_("body_image__cloudinary_public_id"),body_image__cloudinary_source_url:s_("body_image__cloudinary_source_url"),body_image__height:si("body_image__height"),body_image__media_description:s_("body_image__media_description"),body_image__width:si("body_image__width"),match_partner_image__cloudinary_public_id:s_("match_partner_image__cloudinary_public_id"),match_partner_image__cloudinary_source_url:s_("match_partner_image__cloudinary_source_url"),match_partner_image__height:si("match_partner_image__height"),match_partner_image__media_description:s_("match_partner_image__media_description"),match_partner_image__width:si("match_partner_image__width")}).as(_.sql`
773
+ `),Ua=is.view("question_options_by_lesson",{quiz_id:si("quiz_id").notNull(),question_id:si("question_id").notNull(),option_id:si("option_id").notNull(),_quiz_state:ss("_quiz_state").notNull(),_quiz_expiry_key:si("_quiz_expiry_key").notNull(),_state:ss("_state").notNull(),_expiry_key:si("_expiry_key").notNull(),lesson_id:si("lesson_id").notNull(),_lesson_state:ss("_lesson_state").notNull(),_lesson_expiry_key:si("_lesson_expiry_key").notNull(),quizzes__quiz_role:xn("quizzes__quiz_role").notNull(),body_image_id:si("body_image_id"),body_text:st("body_text"),correct_order:si("correct_order"),is_correct:Le("is_correct"),match_partner_image_id:si("match_partner_image_id"),match_partner_text:st("match_partner_text"),position:si("position"),body_image__cloudinary_public_id:st("body_image__cloudinary_public_id"),body_image__cloudinary_source_url:st("body_image__cloudinary_source_url"),body_image__height:si("body_image__height"),body_image__media_description:st("body_image__media_description"),body_image__width:si("body_image__width"),match_partner_image__cloudinary_public_id:st("match_partner_image__cloudinary_public_id"),match_partner_image__cloudinary_source_url:st("match_partner_image__cloudinary_source_url"),match_partner_image__height:si("match_partner_image__height"),match_partner_image__media_description:st("match_partner_image__media_description"),match_partner_image__width:si("match_partner_image__width")}).as(t.sql`
729
774
  SELECT
730
775
  qq.quiz_id,
731
776
  qq.question_id,
@@ -775,7 +820,7 @@
775
820
  LEFT JOIN raw.images bi ON bi.image_id = qo.body_image_id
776
821
  LEFT JOIN raw.images mpi ON mpi.image_id = qo.match_partner_image_id
777
822
  ORDER BY qz.quiz_role, qq.position, qo.position
778
- `);ts.view("published_lesson_by_slug",{lesson_id:si("lesson_id").notNull(),slug:s_("slug").notNull(),equipment_and_resources:pi("equipment_and_resources"),key_learning_points:pi("key_learning_points").notNull(),keywords:pi("keywords"),misconceptions_and_common_mistakes:pi("misconceptions_and_common_mistakes"),phonics_outcome:s_("phonics_outcome"),pupil_lesson_outcome:s_("pupil_lesson_outcome").notNull(),teacher_tips:pi("teacher_tips"),title:s_("title").notNull()}).as(_.sql`
823
+ `);_s.view("published_lesson_by_slug",{lesson_id:si("lesson_id").notNull(),slug:st("slug").notNull(),equipment_and_resources:pi("equipment_and_resources"),key_learning_points:pi("key_learning_points").notNull(),keywords:pi("keywords"),misconceptions_and_common_mistakes:pi("misconceptions_and_common_mistakes"),phonics_outcome:st("phonics_outcome"),pupil_lesson_outcome:st("pupil_lesson_outcome").notNull(),teacher_tips:pi("teacher_tips"),title:st("title").notNull()}).as(t.sql`
779
824
  SELECT
780
825
  l.lesson_id,
781
826
  l.slug,
@@ -789,5 +834,5 @@
789
834
  l.title
790
835
  FROM raw.lessons l
791
836
  WHERE l._state = 'published'
792
- `);const ma=t.z.object({equipment:t.z.string()}),ga=t.z.object({key_learning_point:t.z.string()}),ya=t.z.object({keyword:t.z.string(),description:t.z.string()}),ha=t.z.object({lesson_outline:t.z.string()}),fa=t.z.object({misconception:t.z.string(),response:t.z.string()}),va=t.z.object({teacher_tip:t.z.string()}),ba=i.createSelectSchema(Hn,{equipment_and_resources:()=>t.z.array(ma),key_learning_points:()=>t.z.array(ga),keywords:()=>t.z.array(ya),lesson_outline:()=>t.z.array(ha),misconceptions_and_common_mistakes:()=>t.z.array(fa),teacher_tips:()=>t.z.array(va)}),ka=n.default(ba),xa=t.z.record(t.z.string(),t.z.unknown()),Sa=i.createSelectSchema(Yn,{main_video__raw_mux_data:xa.nullable(),sign_language_video__raw_mux_data:xa.nullable()}),wa=n.default(Sa),Na=i.createSelectSchema(ia,{equipment_and_resources:()=>t.z.array(ma),key_learning_points:()=>t.z.array(ga),keywords:()=>t.z.array(ya),lesson_outline:()=>t.z.array(ha),misconceptions_and_common_mistakes:()=>t.z.array(fa),teacher_tips:()=>t.z.array(va)}),qa=n.default(Na),Aa=i.createSelectSchema(Mn),za=n.default(Aa),Ca=i.createSelectSchema(_a),Ta=n.default(Ca),ja=i.createSelectSchema(sa,{main_video__raw_mux_data:xa,sign_language_video__raw_mux_data:xa.nullable()}),Oa=n.default(ja),$a=i.createSelectSchema(oa),Da=n.default($a),La=i.createSelectSchema(la),Pa=n.default(La),Ba=i.createSelectSchema(Kn),Ia=n.default(Ba),Ea=i.createSelectSchema(ta),Fa=n.default(Ea),Va=i.createSelectSchema(da),Qa=n.default(Va),Ra=i.createSelectSchema(Wn),Ja=n.default(Ra),Ua=i.createSelectSchema(ca),Ma=n.default(Ua),Ka=i.createSelectSchema(Gn),Wa=n.default(Ka),Ha=t.z.record(t.z.string(),t.z.unknown()),Ya=i.createSelectSchema(Zn,{lesson_outline_entry:ha.nullable(),videos__raw_mux_data:Ha.nullable()}),Ga=n.default(Ya),Za=i.createSelectSchema(na),Xa=n.default(Za),eo=i.createSelectSchema(aa,{lesson_outline_entry:ha.nullable(),videos__raw_mux_data:Ha.nullable()}),io=n.default(eo),_o=i.createSelectSchema(pa),to=n.default(_o),so=i.createSelectSchema(ua),no=n.default(so),ao=i.createSelectSchema(ra),oo=n.default(ao),ro=rs.enumValues,lo=t.z.enum(ro),uo=gs.enumValues,co=t.z.enum(uo),po=ns.enumValues,mo=t.z.enum(po),go=Rn.enumValues,yo=t.z.enum(go),ho=mn.enumValues,fo=t.z.enum(ho),vo=_n.enumValues,bo=t.z.enum(vo),ko=In.enumValues,xo=t.z.enum(ko),So=En.enumValues,wo=t.z.enum(So),No=bs.enumValues,qo=t.z.enum(No),Ao=Fn.enumValues,zo=t.z.enum(Ao),Co=us.enumValues,To=t.z.enum(Co),jo=ms.enumValues,Oo=t.z.enum(jo),$o=os.enumValues,Do=t.z.enum($o),Lo=Vn.enumValues,Po=t.z.enum(Lo),Bo=Qn.enumValues,Io=t.z.enum(Bo),Eo=vs.enumValues,Fo=t.z.enum(Eo),Vo=fs.enumValues,Qo=t.z.enum(Vo),Ro=ls.enumValues,Jo=t.z.enum(Ro),Uo=cs.enumValues,Mo=t.z.enum(Uo),Ko=dn.enumValues,Wo=t.z.enum(Ko),Ho=hs.enumValues,Yo=t.z.enum(Ho),Go=ys.enumValues,Zo=t.z.enum(Go),Xo=ws.enumValues,er=t.z.enum(Xo),ir=as.enumValues,_r=t.z.enum(ir),tr=Jn.enumValues,sr=t.z.enum(tr),nr=ss.enumValues,ar=t.z.enum(nr),or=ps.enumValues,rr=t.z.enum(or),lr=ds.enumValues,dr=t.z.enum(lr);exports.acquisitionBasisSchema=lo,exports.acquisitionBasisValues=ro,exports.assignedContentGuidanceByLessonCamelSchema=Ma,exports.assignedContentGuidanceByLessonSchema=Ua,exports.clipSectionSchema=co,exports.clipSectionValues=uo,exports.cohortSchema=mo,exports.cohortValues=po,exports.contractLogEventTypeSchema=yo,exports.contractLogEventTypeValues=go,exports.contractTerritorySchema=fo,exports.contractTerritoryValues=ho,exports.documentTypeSchema=bo,exports.documentTypeValues=vo,exports.draftDocumentsWithStatusByLessonCamelSchema=za,exports.draftDocumentsWithStatusByLessonSchema=Aa,exports.draftDownloadablesWithStatusByLessonCamelSchema=Ia,exports.draftDownloadablesWithStatusByLessonSchema=Ba,exports.draftLessonVideoWithStatusByLessonCamelSchema=wa,exports.draftLessonVideoWithStatusByLessonSchema=Sa,exports.draftLessonWithStatusCamelSchema=ka,exports.draftLessonWithStatusSchema=ba,exports.draftMediaClipCollectionWithStatusByLessonCamelSchema=Wa,exports.draftMediaClipCollectionWithStatusByLessonSchema=Ka,exports.draftMediaClipsWithMediaAndStatusByLessonCamelSchema=Ga,exports.draftMediaClipsWithMediaAndStatusByLessonSchema=Ya,exports.draftQuizWithStatusByLessonAndQuizRoleCamelSchema=Ja,exports.draftQuizWithStatusByLessonAndQuizRoleSchema=Ra,exports.lessonComponentOperationStatusSchema=xo,exports.lessonComponentOperationStatusValues=ko,exports.lessonComponentStatusRetirementSchema=wo,exports.lessonComponentStatusRetirementValues=So,exports.lessonComponentTypeSchema=qo,exports.lessonComponentTypeValues=No,exports.lessonStatusSchema=zo,exports.lessonStatusValues=Ao,exports.licenceSchema=To,exports.licenceValues=Co,exports.mediaKindSchema=Oo,exports.mediaKindValues=jo,exports.mediaProvenanceSchema=Do,exports.mediaProvenanceValues=$o,exports.mediaStatusRetirementSchema=Io,exports.mediaStatusRetirementValues=Bo,exports.mediaStatusSchema=Po,exports.mediaStatusValues=Lo,exports.mediaTypeSchema=Fo,exports.mediaTypeValues=Eo,exports.operationSchema=Qo,exports.operationValues=Vo,exports.permissionStatusSchema=Jo,exports.permissionStatusValues=Ro,exports.publishedDocumentsWithReleaseByLessonCamelSchema=Ta,exports.publishedDocumentsWithReleaseByLessonSchema=Ca,exports.publishedDownloadablesWithReleaseByLessonCamelSchema=Fa,exports.publishedDownloadablesWithReleaseByLessonSchema=Ea,exports.publishedLessonVideoWithReleaseByLessonCamelSchema=Oa,exports.publishedLessonVideoWithReleaseByLessonSchema=ja,exports.publishedLessonWithReleaseCamelSchema=qa,exports.publishedLessonWithReleaseSchema=Na,exports.publishedMediaClipCollectionWithReleaseByLessonCamelSchema=Xa,exports.publishedMediaClipCollectionWithReleaseByLessonSchema=Za,exports.publishedMediaClipsWithMediaAndReleaseByLessonCamelSchema=io,exports.publishedMediaClipsWithMediaAndReleaseByLessonSchema=eo,exports.questionOptionsByLessonCamelSchema=to,exports.questionOptionsByLessonSchema=_o,exports.questionTypeSchema=Mo,exports.questionTypeValues=Uo,exports.quizQuestionsByLessonCamelSchema=no,exports.quizQuestionsByLessonSchema=so,exports.quizRoleSchema=Wo,exports.quizRoleValues=Ko,exports.redirectEntitySourceSchema=Yo,exports.redirectEntitySourceValues=Ho,exports.redirectTypeSchema=Zo,exports.redirectTypeValues=Go,exports.releaseTypeSchema=er,exports.releaseTypeValues=Xo,exports.restrictionLevelSchema=_r,exports.restrictionLevelValues=ir,exports.restrictionsTypeSchema=sr,exports.restrictionsTypeValues=tr,exports.stateSchema=ar,exports.stateValues=nr,exports.tagCategorySchema=rr,exports.tagCategoryValues=or,exports.tagsByLessonCamelSchema=Qa,exports.tagsByLessonSchema=Va,exports.unitContextsByUnitCamelSchema=Da,exports.unitContextsByUnitSchema=$a,exports.unitsByLessonCamelSchema=Pa,exports.unitsByLessonSchema=La,exports.unitvariantContextsByLessonCamelSchema=oo,exports.unitvariantContextsByLessonSchema=ao,exports.usageRestrictionsSchema=dr,exports.usageRestrictionsValues=lr;
837
+ `);const Ma=_.z.object({equipment:_.z.string()}),Ka=_.z.object({key_learning_point:_.z.string()}),Wa=_.z.object({keyword:_.z.string(),description:_.z.string()}),Ha=_.z.object({lesson_outline:_.z.string()}),Ya=_.z.object({misconception:_.z.string(),response:_.z.string()}),Ga=_.z.object({teacher_tip:_.z.string()}),Za=i.createSelectSchema(qa,{equipment_and_resources:()=>_.z.array(Ma),key_learning_points:()=>_.z.array(Ka),keywords:()=>_.z.array(Wa),lesson_outline:()=>_.z.array(Ha),misconceptions_and_common_mistakes:()=>_.z.array(Ya),teacher_tips:()=>_.z.array(Ga)}),Xa=n.default(Za),eo=_.z.record(_.z.string(),_.z.unknown()),io=i.createSelectSchema(Aa,{main_video__raw_mux_data:eo.nullable(),sign_language_video__raw_mux_data:eo.nullable()}),to=n.default(io),_o=i.createSelectSchema($a,{equipment_and_resources:()=>_.z.array(Ma),key_learning_points:()=>_.z.array(Ka),keywords:()=>_.z.array(Wa),lesson_outline:()=>_.z.array(Ha),misconceptions_and_common_mistakes:()=>_.z.array(Ya),teacher_tips:()=>_.z.array(Ga)}),so=n.default(_o),no=i.createSelectSchema(Na),ao=n.default(no),oo=i.createSelectSchema(La),ro=n.default(oo),lo=i.createSelectSchema(Pa,{main_video__raw_mux_data:eo,sign_language_video__raw_mux_data:eo.nullable()}),uo=n.default(lo),co=i.createSelectSchema(Ia),po=n.default(co),mo=i.createSelectSchema(Va),go=n.default(mo),yo=i.createSelectSchema(wa),ho=n.default(yo),fo=i.createSelectSchema(Da),vo=n.default(fo),bo=i.createSelectSchema(Ra),xo=n.default(bo),ko=i.createSelectSchema(Sa),No=n.default(ko),wo=i.createSelectSchema(Ja),So=n.default(wo),qo=i.createSelectSchema(za),Ao=n.default(qo),zo=_.z.record(_.z.string(),_.z.unknown()),Co=i.createSelectSchema(Ca,{lesson_outline_entry:Ha.nullable(),videos__raw_mux_data:zo.nullable()}),To=n.default(Co),Oo=i.createSelectSchema(Ba),jo=n.default(Oo),$o=i.createSelectSchema(Ea,{lesson_outline_entry:Ha.nullable(),videos__raw_mux_data:zo.nullable()}),Lo=n.default($o),Do=i.createSelectSchema(Ua),Po=n.default(Do),Bo=i.createSelectSchema(Qa),Eo=n.default(Bo),Io=i.createSelectSchema(Fa),Fo=n.default(Io),Vo=rs.enumValues,Ro=_.z.enum(Vo),Qo=gs.enumValues,Jo=_.z.enum(Qo),Uo=ns.enumValues,Mo=_.z.enum(Uo),Ko=ba.enumValues,Wo=_.z.enum(Ko),Ho=qn.enumValues,Yo=_.z.enum(Ho),Go=nn.enumValues,Zo=_.z.enum(Go),Xo=ga.enumValues,er=_.z.enum(Xo),ir=ya.enumValues,tr=_.z.enum(ir),_r=bs.enumValues,sr=_.z.enum(_r),nr=ha.enumValues,ar=_.z.enum(nr),or=ds.enumValues,rr=_.z.enum(or),lr=ms.enumValues,ur=_.z.enum(lr),dr=os.enumValues,cr=_.z.enum(dr),pr=fa.enumValues,mr=_.z.enum(pr),gr=va.enumValues,yr=_.z.enum(gr),hr=vs.enumValues,fr=_.z.enum(hr),vr=fs.enumValues,br=_.z.enum(vr),xr=ls.enumValues,kr=_.z.enum(xr),Nr=cs.enumValues,wr=_.z.enum(Nr),Sr=xn.enumValues,qr=_.z.enum(Sr),Ar=hs.enumValues,zr=_.z.enum(Ar),Cr=ys.enumValues,Tr=_.z.enum(Cr),Or=ws.enumValues,jr=_.z.enum(Or),$r=as.enumValues,Lr=_.z.enum($r),Dr=xa.enumValues,Pr=_.z.enum(Dr),Br=ss.enumValues,Er=_.z.enum(Br),Ir=ps.enumValues,Fr=_.z.enum(Ir),Vr=us.enumValues,Rr=_.z.enum(Vr);exports.acquisitionBasisSchema=Ro,exports.acquisitionBasisValues=Vo,exports.assignedContentGuidanceByLessonCamelSchema=So,exports.assignedContentGuidanceByLessonSchema=wo,exports.clipSectionSchema=Jo,exports.clipSectionValues=Qo,exports.cohortSchema=Mo,exports.cohortValues=Uo,exports.contractLogEventTypeSchema=Wo,exports.contractLogEventTypeValues=Ko,exports.contractTerritorySchema=Yo,exports.contractTerritoryValues=Ho,exports.documentTypeSchema=Zo,exports.documentTypeValues=Go,exports.draftDocumentsWithStatusByLessonCamelSchema=ao,exports.draftDocumentsWithStatusByLessonSchema=no,exports.draftDownloadablesWithStatusByLessonCamelSchema=ho,exports.draftDownloadablesWithStatusByLessonSchema=yo,exports.draftLessonVideoWithStatusByLessonCamelSchema=to,exports.draftLessonVideoWithStatusByLessonSchema=io,exports.draftLessonWithStatusCamelSchema=Xa,exports.draftLessonWithStatusSchema=Za,exports.draftMediaClipCollectionWithStatusByLessonCamelSchema=Ao,exports.draftMediaClipCollectionWithStatusByLessonSchema=qo,exports.draftMediaClipsWithMediaAndStatusByLessonCamelSchema=To,exports.draftMediaClipsWithMediaAndStatusByLessonSchema=Co,exports.draftQuizWithStatusByLessonAndQuizRoleCamelSchema=No,exports.draftQuizWithStatusByLessonAndQuizRoleSchema=ko,exports.lessonComponentOperationStatusSchema=er,exports.lessonComponentOperationStatusValues=Xo,exports.lessonComponentStatusRetirementSchema=tr,exports.lessonComponentStatusRetirementValues=ir,exports.lessonComponentTypeSchema=sr,exports.lessonComponentTypeValues=_r,exports.lessonStatusSchema=ar,exports.lessonStatusValues=nr,exports.licenceSchema=rr,exports.licenceValues=or,exports.mediaKindSchema=ur,exports.mediaKindValues=lr,exports.mediaProvenanceSchema=cr,exports.mediaProvenanceValues=dr,exports.mediaStatusRetirementSchema=yr,exports.mediaStatusRetirementValues=gr,exports.mediaStatusSchema=mr,exports.mediaStatusValues=pr,exports.mediaTypeSchema=fr,exports.mediaTypeValues=hr,exports.operationSchema=br,exports.operationValues=vr,exports.permissionStatusSchema=kr,exports.permissionStatusValues=xr,exports.publishedDocumentsWithReleaseByLessonCamelSchema=ro,exports.publishedDocumentsWithReleaseByLessonSchema=oo,exports.publishedDownloadablesWithReleaseByLessonCamelSchema=vo,exports.publishedDownloadablesWithReleaseByLessonSchema=fo,exports.publishedLessonVideoWithReleaseByLessonCamelSchema=uo,exports.publishedLessonVideoWithReleaseByLessonSchema=lo,exports.publishedLessonWithReleaseCamelSchema=so,exports.publishedLessonWithReleaseSchema=_o,exports.publishedMediaClipCollectionWithReleaseByLessonCamelSchema=jo,exports.publishedMediaClipCollectionWithReleaseByLessonSchema=Oo,exports.publishedMediaClipsWithMediaAndReleaseByLessonCamelSchema=Lo,exports.publishedMediaClipsWithMediaAndReleaseByLessonSchema=$o,exports.questionOptionsByLessonCamelSchema=Po,exports.questionOptionsByLessonSchema=Do,exports.questionTypeSchema=wr,exports.questionTypeValues=Nr,exports.quizQuestionsByLessonCamelSchema=Eo,exports.quizQuestionsByLessonSchema=Bo,exports.quizRoleSchema=qr,exports.quizRoleValues=Sr,exports.redirectEntitySourceSchema=zr,exports.redirectEntitySourceValues=Ar,exports.redirectTypeSchema=Tr,exports.redirectTypeValues=Cr,exports.releaseTypeSchema=jr,exports.releaseTypeValues=Or,exports.restrictionLevelSchema=Lr,exports.restrictionLevelValues=$r,exports.restrictionsTypeSchema=Pr,exports.restrictionsTypeValues=Dr,exports.stateSchema=Er,exports.stateValues=Br,exports.tagCategorySchema=Fr,exports.tagCategoryValues=Ir,exports.tagsByLessonCamelSchema=xo,exports.tagsByLessonSchema=bo,exports.unitContextsByUnitCamelSchema=po,exports.unitContextsByUnitSchema=co,exports.unitsByLessonCamelSchema=go,exports.unitsByLessonSchema=mo,exports.unitvariantContextsByLessonCamelSchema=Fo,exports.unitvariantContextsByLessonSchema=Io,exports.usageRestrictionsSchema=Rr,exports.usageRestrictionsValues=Vr;
793
838
  //# sourceMappingURL=index.cjs.map