@oaknational/oak-curriculum-schema-v2 0.0.2-alpha → 0.0.3-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 +2 -2
- package/cjs/index.cjs.map +1 -1
- package/esm/index.js +3 -3
- package/esm/index.js.map +1 -1
- package/package.json +1 -1
- package/types.d.ts +136 -0
package/cjs/index.cjs
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
hash text NOT NULL,
|
|
5
5
|
created_at bigint
|
|
6
6
|
)
|
|
7
|
-
`;await t.execute(Z`CREATE SCHEMA IF NOT EXISTS ${Z.identifier(s)}`),await t.execute(r);const o=(await t.all(Z`select id, hash, created_at from ${Z.identifier(s)}.${Z.identifier(n)} order by created_at desc limit 1`))[0];await t.transaction(async t=>{for await(const i of e)if(!o||Number(o.created_at)<i.folderMillis){for(const e of i.sql)await t.execute(Z.raw(e));await t.execute(Z`insert into ${Z.identifier(s)}.${Z.identifier(n)} ("hash", "created_at") values(${i.hash}, ${i.folderMillis})`)}})}escapeName(e){return`"${e.replace(/"/g,'""')}"`}escapeParam(e){return`$${e+1}`}escapeString(e){return`'${e.replace(/'/g,"''")}'`}buildWithCTE(e){if(!e?.length)return;const t=[Z`with `];for(const[i,n]of e.entries())t.push(Z`${Z.identifier(n._.alias)} as (${n._.sql})`),i<e.length-1&&t.push(Z`, `);return t.push(Z` `),Z.join(t)}buildDeleteQuery({table:e,where:t,returning:i,withList:n}){return Z`${this.buildWithCTE(n)}delete from ${e}${t?Z` where ${t}`:void 0}${i?Z` returning ${this.buildSelection(i,{isSingleTable:!0})}`:void 0}`}buildUpdateSet(e,t){const i=e[K.Symbol.Columns],n=Object.keys(i).filter(e=>void 0!==t[e]||void 0!==i[e]?.onUpdateFn),r=n.length;return Z.join(n.flatMap((e,n)=>{const o=i[e],a=o.onUpdateFn?.(),l=t[e]??(s(a,W)?a:Z.param(a,o)),u=Z`${Z.identifier(this.casing.getColumnCasing(o))} = ${l}`;return n<r-1?[u,Z.raw(", ")]:[u]}))}buildUpdateQuery({table:e,set:t,where:i,returning:n,withList:s,from:r,joins:o}){const a=this.buildWithCTE(s),l=e[Bi.Symbol.Name],u=e[Bi.Symbol.Schema],c=e[Bi.Symbol.OriginalName],_=l===c?void 0:l,d=Z`${u?Z`${Z.identifier(u)}.`:void 0}${Z.identifier(c)}${_&&Z` ${Z.identifier(_)}`}`,m=this.buildUpdateSet(e,t),p=r&&Z.join([Z.raw(" from "),this.buildFromTable(r)]);return Z`${a}update ${d} set ${m}${p}${this.buildJoins(o)}${i?Z` where ${i}`:void 0}${n?Z` returning ${this.buildSelection(n,{isSingleTable:!r})}`:void 0}`}buildSelection(e,{isSingleTable:t=!1}={}){const i=e.length,n=e.flatMap(({field:e},n)=>{const o=[];if(s(e,W.Aliased)&&e.isSelectionField)o.push(Z.identifier(e.fieldAlias));else if(s(e,W.Aliased)||s(e,W)){const i=s(e,W.Aliased)?e.sql:e;t?o.push(new W(i.queryChunks.map(e=>s(e,w)?Z.identifier(this.casing.getColumnCasing(e)):e))):o.push(i),s(e,W.Aliased)&&o.push(Z` as ${Z.identifier(e.fieldAlias)}`)}else if(s(e,r))t?o.push(Z.identifier(this.casing.getColumnCasing(e))):o.push(e);else if(s(e,P)){const t=Object.entries(e._.selectedFields);if(1===t.length){const i=t[0][1],n=s(i,W)?i.decoder:s(i,r)?{mapFromDriverValue:e=>i.mapFromDriverValue(e)}:i.sql.decoder;n&&(e._.sql.decoder=n)}o.push(e)}return n<i-1&&o.push(Z`, `),o});return Z.join(n)}buildJoins(e){if(!e||0===e.length)return;const t=[];for(const[i,n]of e.entries()){0===i&&t.push(Z` `);const r=n.table,o=n.lateral?Z` lateral`:void 0,a=n.on?Z` on ${n.on}`:void 0;if(s(r,Bi)){const e=r[Bi.Symbol.Name],i=r[Bi.Symbol.Schema],s=r[Bi.Symbol.OriginalName],l=e===s?void 0:n.alias;t.push(Z`${Z.raw(n.joinType)} join${o} ${i?Z`${Z.identifier(i)}.`:void 0}${Z.identifier(s)}${l&&Z` ${Z.identifier(l)}`}${a}`)}else if(s(r,ne)){const e=r[A].name,i=r[A].schema,s=r[A].originalName,l=e===s?void 0:n.alias;t.push(Z`${Z.raw(n.joinType)} join${o} ${i?Z`${Z.identifier(i)}.`:void 0}${Z.identifier(s)}${l&&Z` ${Z.identifier(l)}`}${a}`)}else t.push(Z`${Z.raw(n.joinType)} join${o} ${r}${a}`);i<e.length-1&&t.push(Z` `)}return Z.join(t)}buildFromTable(e){if(s(e,K)&&e[K.Symbol.IsAlias]){let t=Z`${Z.identifier(e[K.Symbol.OriginalName])}`;return e[K.Symbol.Schema]&&(t=Z`${Z.identifier(e[K.Symbol.Schema])}.${t}`),Z`${t} ${Z.identifier(e[K.Symbol.Name])}`}return e}buildSelectQuery({withList:e,fields:t,fieldsFlat:i,where:n,having:o,table:a,joins:l,orderBy:u,groupBy:c,limit:_,offset:d,lockingClause:m,distinct:p,setOperators:g}){const f=i??me(t);for(const e of f)if(s(e.field,r)&&U(e.field.table)!==(s(a,P)?a._.alias:s(a,xn)?a[A].name:s(a,W)?void 0:U(a))&&!(e=>l?.some(({alias:t})=>t===(e[K.Symbol.IsAlias]?U(e):e[K.Symbol.BaseName])))(e.field.table)){const t=U(e.field.table);throw new Error(`Your "${e.path.join("->")}" field references a column "${t}"."${e.field.name}", but the table "${t}" is not part of the query! Did you forget to join it?`)}const h=!l||0===l.length,y=this.buildWithCTE(e);let b;p&&(b=!0===p?Z` distinct`:Z` distinct on (${Z.join(p.on,Z`, `)})`);const v=this.buildSelection(f,{isSingleTable:h}),w=this.buildFromTable(a),N=this.buildJoins(l),S=n?Z` where ${n}`:void 0,x=o?Z` having ${o}`:void 0;let k,C;u&&u.length>0&&(k=Z` order by ${Z.join(u,Z`, `)}`),c&&c.length>0&&(C=Z` group by ${Z.join(c,Z`, `)}`);const q="object"==typeof _||"number"==typeof _&&_>=0?Z` limit ${_}`:void 0,$=d?Z` offset ${d}`:void 0,j=Z.empty();if(m){const e=Z` for ${Z.raw(m.strength)}`;m.config.of&&e.append(Z` of ${Z.join(Array.isArray(m.config.of)?m.config.of:[m.config.of],Z`, `)}`),m.config.noWait?e.append(Z` nowait`):m.config.skipLocked&&e.append(Z` skip locked`),j.append(e)}const T=Z`${y}select${b} ${v} from ${w}${N}${S}${C}${x}${k}${q}${$}${j}`;return g.length>0?this.buildSetOperations(T,g):T}buildSetOperations(e,t){const[i,...n]=t;if(!i)throw new Error("Cannot pass undefined values to any set operator");return 0===n.length?this.buildSetOperationQuery({leftSelect:e,setOperator:i}):this.buildSetOperations(this.buildSetOperationQuery({leftSelect:e,setOperator:i}),n)}buildSetOperationQuery({leftSelect:e,setOperator:{type:t,isAll:i,rightSelect:n,limit:r,orderBy:o,offset:a}}){const l=Z`(${e.getSQL()}) `,u=Z`(${n.getSQL()})`;let c;if(o&&o.length>0){const e=[];for(const t of o)if(s(t,w))e.push(Z.identifier(t.name));else if(s(t,W)){for(let e=0;e<t.queryChunks.length;e++){const i=t.queryChunks[e];s(i,w)&&(t.queryChunks[e]=Z.identifier(i.name))}e.push(Z`${t}`)}else e.push(Z`${t}`);c=Z` order by ${Z.join(e,Z`, `)} `}const _="object"==typeof r||"number"==typeof r&&r>=0?Z` limit ${r}`:void 0,d=Z.raw(`${t} ${i?"all ":""}`);return Z`${l}${d}${u}${c}${_}${a?Z` offset ${a}`:void 0}`}buildInsertQuery({table:e,values:t,onConflict:i,returning:n,withList:r,select:o,overridingSystemValue_:a}){const l=[],u=e[K.Symbol.Columns],c=Object.entries(u).filter(([e,t])=>!t.shouldDisableInsert()),_=c.map(([,e])=>Z.identifier(this.casing.getColumnCasing(e)));if(o){const e=t;s(e,W)?l.push(e):l.push(e.getSQL())}else{const e=t;l.push(Z.raw("values "));for(const[t,i]of e.entries()){const n=[];for(const[e,t]of c){const r=i[e];if(void 0===r||s(r,Y)&&void 0===r.value)if(void 0!==t.defaultFn){const e=t.defaultFn(),i=s(e,W)?e:Z.param(e,t);n.push(i)}else if(t.default||void 0===t.onUpdateFn)n.push(Z`default`);else{const e=t.onUpdateFn(),i=s(e,W)?e:Z.param(e,t);n.push(i)}else n.push(r)}l.push(n),t<e.length-1&&l.push(Z`, `)}}const d=this.buildWithCTE(r),m=Z.join(l);return Z`${d}insert into ${e} ${_} ${!0===a?Z`overriding system value `:void 0}${m}${i?Z` on conflict ${i}`:void 0}${n?Z` returning ${this.buildSelection(n,{isSingleTable:!0})}`:void 0}`}buildRefreshMaterializedViewQuery({view:e,concurrently:t,withNoData:i}){return Z`refresh materialized view${t?Z` concurrently`:void 0} ${e}${i?Z` with no data`:void 0}`}prepareTyping(e){return s(e,ut)||s(e,ot)?"json":s(e,St)?"decimal":s(e,ni)?"time":s(e,oi)||s(e,li)?"timestamp":s(e,Ke)||s(e,Me)?"date":s(e,_i)?"uuid":"none"}sqlToQuery(e,t){return e.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:t})}buildRelationalQueryWithoutPK({fullSchema:e,schema:t,tableNamesMap:i,table:n,tableConfig:o,queryConfig:a,tableAlias:l,nestedQueryRelation:u,joinOn:c}){let _,d,m,p=[],g=[];const f=[];if(!0===a){p=Object.entries(o.columns).map(([e,t])=>({dbKey:t.name,tsKey:e,field:ae(t,l),relationTableTsKey:void 0,isJson:!1,selection:[]}))}else{const n=Object.fromEntries(Object.entries(o.columns).map(([e,t])=>[e,ae(t,l)]));if(a.where){const e="function"==typeof a.where?a.where(n,{and:Yi,between:dn,eq:Gi,exists:cn,gt:tn,gte:nn,ilike:fn,inArray:on,isNull:ln,isNotNull:un,like:pn,lt:sn,lte:rn,ne:Xi,not:en,notBetween:mn,notExists:_n,notLike:gn,notIlike:hn,notInArray:an,or:Zi,sql:Z}):a.where;m=e&&ue(e,l)}const u=[];let c=[];if(a.columns){let e=!1;for(const[t,i]of Object.entries(a.columns))void 0!==i&&t in o.columns&&(e||!0!==i||(e=!0),c.push(t));c.length>0&&(c=e?c.filter(e=>!0===a.columns?.[e]):Object.keys(o.columns).filter(e=>!c.includes(e)))}else c=Object.keys(o.columns);for(const e of c){const t=o.columns[e];u.push({tsKey:e,value:t})}let h,y=[];if(a.with&&(y=Object.entries(a.with).filter(e=>!!e[1]).map(([e,t])=>({tsKey:e,queryConfig:t,relation:o.relations[e]}))),a.extras){h="function"==typeof a.extras?a.extras(n,{sql:Z}):a.extras;for(const[e,t]of Object.entries(h))u.push({tsKey:e,value:le(t,l)})}for(const{tsKey:e,value:t}of u)p.push({dbKey:s(t,W.Aliased)?t.fieldAlias:o.columns[e].name,tsKey:e,field:s(t,r)?ae(t,l):t,relationTableTsKey:void 0,isJson:!1,selection:[]});let b="function"==typeof a.orderBy?a.orderBy(n,{sql:Z,asc:yn,desc:bn}):a.orderBy??[];Array.isArray(b)||(b=[b]),g=b.map(e=>s(e,r)?ae(e,l):ue(e,l)),_=a.limit,d=a.offset;for(const{tsKey:n,queryConfig:r,relation:o}of y){const a=Sn(t,i,o),u=i[M(o.referencedTable)],c=`${l}_${n}`,_=Yi(...a.fields.map((e,t)=>Gi(ae(a.references[t],c),ae(e,l)))),d=this.buildRelationalQueryWithoutPK({fullSchema:e,schema:t,tableNamesMap:i,table:e[u],tableConfig:t[u],queryConfig:s(o,wn)?!0===r?{limit:1}:{...r,limit:1}:r,tableAlias:c,joinOn:_,nestedQueryRelation:o}),m=Z`${Z.identifier(c)}.${Z.identifier("data")}`.as(n);f.push({on:Z`true`,table:new P(d.sql,{},c),alias:c,joinType:"left",lateral:!0}),p.push({dbKey:n,tsKey:n,field:m,relationTableTsKey:u,isJson:!0,selection:d.selection})}}if(0===p.length)throw new Wi({message:`No fields selected for table "${o.tsName}" ("${l}")`});let h;if(m=Yi(c,m),u){let e=Z`json_build_array(${Z.join(p.map(({field:e,tsKey:t,isJson:i})=>i?Z`${Z.identifier(`${l}_${t}`)}.${Z.identifier("data")}`:s(e,W.Aliased)?e.sql:e),Z`, `)})`;s(u,Nn)&&(e=Z`coalesce(json_agg(${e}${g.length>0?Z` order by ${Z.join(g,Z`, `)}`:void 0}), '[]'::json)`);const t=[{dbKey:"data",tsKey:"data",field:e.as("data"),isJson:!0,relationTableTsKey:o.tsName,selection:p}];void 0!==_||void 0!==d||g.length>0?(h=this.buildSelectQuery({table:oe(n,l),fields:{},fieldsFlat:[{path:[],field:Z.raw("*")}],where:m,limit:_,offset:d,orderBy:g,setOperators:[]}),m=void 0,_=void 0,d=void 0,g=[]):h=oe(n,l),h=this.buildSelectQuery({table:s(h,Bi)?h:new P(h,{},l),fields:{},fieldsFlat:t.map(({field:e})=>({path:[],field:s(e,r)?ae(e,l):e})),joins:f,where:m,limit:_,offset:d,orderBy:g,setOperators:[]})}else h=this.buildSelectQuery({table:oe(n,l),fields:{},fieldsFlat:p.map(({field:e})=>({path:[],field:s(e,r)?ae(e,l):e})),joins:f,where:m,limit:_,offset:d,orderBy:g,setOperators:[]});return{tableTsKey:o.tsName,sql:h,selection:p}}}class Cn{static[n]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class qn{static[n]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(e){this.fields=e.fields,this.session=e.session,this.dialect=e.dialect,e.withList&&(this.withList=e.withList),this.distinct=e.distinct}authToken;setToken(e){return this.authToken=e,this}from(e){const t=!!this.fields,i=e;let n;return n=this.fields?this.fields:s(i,P)?Object.fromEntries(Object.keys(i._.selectedFields).map(e=>[e,i[e]])):s(i,xn)?i[A].selectedFields:s(i,W)?{}:ge(i),new jn({table:i,fields:n,isPartialSelect:t,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class $n extends Cn{static[n]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;cacheConfig=void 0;usedTables=new Set;constructor({table:e,fields:t,isPartialSelect:i,session:n,dialect:s,withList:r,distinct:o}){super(),this.config={withList:r,table:e,fields:{...t},distinct:o,setOperators:[]},this.isPartialSelect=i,this.session=n,this.dialect=s,this._={selectedFields:t,config:this.config},this.tableName=fe(e),this.joinsNotNullableMap="string"==typeof this.tableName?{[this.tableName]:!0}:{};for(const t of Wn(e))this.usedTables.add(t)}getUsedTables(){return[...this.usedTables]}createJoin(e,t){return(i,n)=>{const r=this.tableName,o=fe(i);for(const e of Wn(i))this.usedTables.add(e);if("string"==typeof o&&this.config.joins?.some(e=>e.alias===o))throw new Error(`Alias "${o}" is already used in this query`);if(!this.isPartialSelect&&(1===Object.keys(this.joinsNotNullableMap).length&&"string"==typeof r&&(this.config.fields={[r]:this.config.fields}),"string"==typeof o&&!s(i,W))){const e=s(i,P)?i._.selectedFields:s(i,ne)?i[A].selectedFields:i[K.Symbol.Columns];this.config.fields[o]=e}if("function"==typeof n&&(n=n(new Proxy(this.config.fields,new ji({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.joins||(this.config.joins=[]),this.config.joins.push({on:n,table:i,joinType:e,alias:o,lateral:t}),"string"==typeof o)switch(e){case"left":this.joinsNotNullableMap[o]=!1;break;case"right":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[o]=!0;break;case"cross":case"inner":this.joinsNotNullableMap[o]=!0;break;case"full":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[o]=!1}return this}}leftJoin=this.createJoin("left",!1);leftJoinLateral=this.createJoin("left",!0);rightJoin=this.createJoin("right",!1);innerJoin=this.createJoin("inner",!1);innerJoinLateral=this.createJoin("inner",!0);fullJoin=this.createJoin("full",!1);crossJoin=this.createJoin("cross",!1);crossJoinLateral=this.createJoin("cross",!0);createSetOperator(e,t){return i=>{const n="function"==typeof i?i(Pn()):i;if(!pe(this.getSelectedFields(),n.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:e,isAll:t,rightSelect:n}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);intersectAll=this.createSetOperator("intersect",!0);except=this.createSetOperator("except",!1);exceptAll=this.createSetOperator("except",!0);addSetOperators(e){return this.config.setOperators.push(...e),this}where(e){return"function"==typeof e&&(e=e(new Proxy(this.config.fields,new ji({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.where=e,this}having(e){return"function"==typeof e&&(e=e(new Proxy(this.config.fields,new ji({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.having=e,this}groupBy(...e){if("function"==typeof e[0]){const t=e[0](new Proxy(this.config.fields,new ji({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(t)?t:[t]}else this.config.groupBy=e;return this}orderBy(...e){if("function"==typeof e[0]){const t=e[0](new Proxy(this.config.fields,new ji({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),i=Array.isArray(t)?t:[t];this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=i:this.config.orderBy=i}else{const t=e;this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=t:this.config.orderBy=t}return this}limit(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).limit=e:this.config.limit=e,this}offset(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).offset=e:this.config.offset=e,this}for(e,t={}){return this.config.lockingClause={strength:e,config:t},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){const{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}as(e){const t=[];if(t.push(...Wn(this.config.table)),this.config.joins)for(const e of this.config.joins)t.push(...Wn(e.table));return new Proxy(new P(this.getSQL(),this.config.fields,e,!1,[...new Set(t)]),new ji({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new ji({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}$withCache(e){return this.cacheConfig=void 0===e?{config:{},enable:!0,autoInvalidate:!0}:!1===e?{enable:!1}:{enable:!0,autoInvalidate:!0,...e},this}}class jn extends $n{static[n]="PgSelect";_prepare(e){const{session:t,config:i,dialect:n,joinsNotNullableMap:s,authToken:r,cacheConfig:o,usedTables:a}=this;if(!t)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");const{fields:l}=i;return D.startActiveSpan("drizzle.prepareQuery",()=>{const i=me(l),u=t.prepareQuery(n.sqlToQuery(this.getSQL()),i,e,!0,void 0,{type:"select",tables:[...a]},o);return u.joinsNotNullableMap=s,u.setToken(r)})}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=e=>D.startActiveSpan("drizzle.operation",()=>this._prepare().execute(e,this.authToken))}function Tn(e,t){return(i,n,...s)=>{const r=[n,...s].map(i=>({type:e,isAll:t,rightSelect:i}));for(const e of r)if(!pe(i.getSelectedFields(),e.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return i.addSetOperators(r)}}!function(e,t){for(const i of t)for(const t of Object.getOwnPropertyNames(i.prototype))"constructor"!==t&&Object.defineProperty(e.prototype,t,Object.getOwnPropertyDescriptor(i.prototype,t)||Object.create(null))}(jn,[$i]);const Pn=()=>({union:Bn,unionAll:Dn,intersect:An,intersectAll:On,except:In,exceptAll:Ln}),Bn=Tn("union",!1),Dn=Tn("union",!0),An=Tn("intersect",!1),On=Tn("intersect",!0),In=Tn("except",!1),Ln=Tn("except",!0);class zn{static[n]="PgQueryBuilder";dialect;dialectConfig;constructor(e){this.dialect=s(e,kn)?e:void 0,this.dialectConfig=s(e,kn)?void 0:e}$with=(e,t)=>{const i=this;return{as:n=>("function"==typeof n&&(n=n(i)),new Proxy(new B(n.getSQL(),t??("getSelectedFields"in n?n.getSelectedFields()??{}:{}),e,!0),new ji({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"})))}};with(...e){const t=this;return{select:function(i){return new qn({fields:i??void 0,session:void 0,dialect:t.getDialect(),withList:e})},selectDistinct:function(e){return new qn({fields:e??void 0,session:void 0,dialect:t.getDialect(),distinct:!0})},selectDistinctOn:function(e,i){return new qn({fields:i??void 0,session:void 0,dialect:t.getDialect(),distinct:{on:e}})}}}select(e){return new qn({fields:e??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(e){return new qn({fields:e??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(e,t){return new qn({fields:t??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:e}})}getDialect(){return this.dialect||(this.dialect=new kn(this.dialectConfig)),this.dialect}}class Fn{constructor(e,t){this.name=e,this.schema=t}static[n]="PgDefaultViewBuilderCore";config={};with(e){return this.config.with=e,this}}class Qn extends Fn{static[n]="PgViewBuilder";as(e){"function"==typeof e&&(e=e(new zn));const t=new ji({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}),i=new Proxy(e.getSelectedFields(),t);return new Proxy(new Mn({pgConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:i,query:e.getSQL().inlineParams()}}),t)}}class Vn extends Fn{static[n]="PgManualViewBuilder";columns;constructor(e,t,i){super(e,i),this.columns=ge(Ai(e,t))}existing(){return new Proxy(new Mn({pgConfig:void 0,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:void 0}}),new ji({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}as(e){return new Proxy(new Mn({pgConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:e.inlineParams()}}),new ji({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}}class En{constructor(e,t){this.name=e,this.schema=t}static[n]="PgMaterializedViewBuilderCore";config={};using(e){return this.config.using=e,this}with(e){return this.config.with=e,this}tablespace(e){return this.config.tablespace=e,this}withNoData(){return this.config.withNoData=!0,this}}class Kn extends En{static[n]="PgMaterializedViewBuilder";as(e){"function"==typeof e&&(e=e(new zn));const t=new ji({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}),i=new Proxy(e.getSelectedFields(),t);return new Proxy(new Jn({pgConfig:{with:this.config.with,using:this.config.using,tablespace:this.config.tablespace,withNoData:this.config.withNoData},config:{name:this.name,schema:this.schema,selectedFields:i,query:e.getSQL().inlineParams()}}),t)}}class Un extends En{static[n]="PgManualMaterializedViewBuilder";columns;constructor(e,t,i){super(e,i),this.columns=ge(Ai(e,t))}existing(){return new Proxy(new Jn({pgConfig:{tablespace:this.config.tablespace,using:this.config.using,with:this.config.with,withNoData:this.config.withNoData},config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:void 0}}),new ji({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}as(e){return new Proxy(new Jn({pgConfig:{tablespace:this.config.tablespace,using:this.config.using,with:this.config.with,withNoData:this.config.withNoData},config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:e.inlineParams()}}),new ji({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}}class Mn extends xn{static[n]="PgView";[Ki];constructor({pgConfig:e,config:t}){super(t),e&&(this[Ki]={with:e.with})}}const Rn=Symbol.for("drizzle:PgMaterializedViewConfig");class Jn extends xn{static[n]="PgMaterializedView";[Rn];constructor({pgConfig:e,config:t}){super(t),this[Rn]={with:e?.with,using:e?.using,tablespace:e?.tablespace,withNoData:e?.withNoData}}}function Wn(e){return s(e,Bi)?[e[O]?`${e[O]}.${e[K.Symbol.BaseName]}`:e[K.Symbol.BaseName]]:s(e,P)?e._.usedTables??[]:s(e,W)?e.usedTables??[]:[]}class Hn{constructor(e,t,i){this.seqName=e,this.seqOptions=t,this.schema=i}static[n]="PgSequence"}class Gn{constructor(e){this.schemaName=e}static[n]="PgSchema";table=(e,t,i)=>Di(e,t,i,this.schemaName);view=(e,t)=>function(e,t,i){return t?new Vn(e,t,i):new Qn(e,i)}(e,t,this.schemaName);materializedView=(e,t)=>function(e,t,i){return t?new Un(e,t,i):new Kn(e,i)}(e,t,this.schemaName);enum(e,t){return Array.isArray(t)?function(e,t,i){const n=Object.assign(e=>new j(e??"",n),{enumName:e,enumValues:t,schema:i,[$]:!0});return n}(e,[...t],this.schemaName):function(e,t,i){const n=Object.assign(e=>new C(e??"",n),{enumName:e,enumValues:Object.values(t),schema:i,[$]:!0});return n}(e,t,this.schemaName)}sequence=(e,t)=>function(e,t,i){return new Hn(e,t,i)}(e,t,this.schemaName);getSQL(){return new W([Z.identifier(this.schemaName)])}shouldOmitSQLParens(){return!0}}function Xn(e){if("public"===e)throw new Error("You can't specify 'public' as schema name. Postgres is using public schema by default. If you want to use 'public' schema, just use pgTable() instead of creating a schema");return new Gn(e)}const Yn=Xn("raw"),Zn=Xn("rendered"),es=Xn("internal");Xn("cached");const ts=Yn.enum("state",["draft","published","expired"]),is=Yn.enum("restriction_level",["ogl_compatible","ogl_equivalent","restricted","highly_restricted"]),ns=Yn.enum("media_classification",["image","photo","artwork","screenshot","map","gif","speech","music","other","film","tv","software","misc_website_content","no_best_fit"]),ss=Yn.enum("media_provenance",["oak_created","oak_illustration","partner_created","creative_commons","pixabay","pexels","unsplash","openverse","freesvg","needpix","bridgeman","shutterstock","dall_e","adobe_firefly","other","legacy_data"]),rs=Yn.enum("acquisition_basis",["oak_owned","public_domain","gratis","paid"]),os=Yn.enum("content_cycle",["cycle_1","cycle_2"]),as=Yn.enum("permission_status",["not_required","granted","denied"]),ls=Yn.enum("territory",["uk","worldwide","worldwide_no_usa","other_territory"]),us=Yn.enum("licence",["cc0","cc_by","cc_by_sa","cc_by_nc","cc_by_nc_sa","cc_by_nc_nd","cc_by_nd","ogl","reusable_perpetuity","reusable_within_term","single_use","restricted_use","internal_use_only","other"]),cs=Yn.enum("question_type",["explanatory-text","match","multiple-choice","order","short-answer","text"]),_s=Yn.enum("tag_category",["discipline","domain","world_view"]),ds=Yn.enum("media_kind",["video","sound"]),ms=Yn.enum("redirect_type",["301","302","307","308"]),ps=Yn.enum("redirect_entity_source",["lessons","units","programmes","subjects"]),gs=es.enum("operation",["insert","update","delete"]),fs=es.enum("media_type_enum",["video","sound","gdrive_file","bucket_file"]),hs=es.enum("lesson_component_type_enum",["document","downloadable","lesson_video","media_clip","quiz"]),ys={created_at:ui("created_at",{withTimezone:!0}).defaultNow(),updated_at:ui("updated_at",{withTimezone:!0}).$onUpdateFn(()=>new Date)},bs={created_at:ui("created_at",{withTimezone:!0}).notNull().defaultNow()},vs=es.enum("release_type",["mathfix","migration"]),ws=es.table("releases",{release_id:tt("release_id").primaryKey().generatedByDefaultAsIdentity(),_authoring_state:ts("_authoring_state").notNull(),approved:Pe("approved").notNull().default(!1),approver:ct("approver"),description:ti("description"),estimated_release_date:Re("estimated_release_date"),locked:Pe("locked").notNull().default(!1),name:ti("name"),notes:ti("notes"),release_type:vs("release_type"),release_uid:Ae("release_uid",{length:16}),...ys}),Ns={_state:ts("_state").notNull()},Ss={_authoring_state:ts("_authoring_state").notNull()},xs={_choice_state:ts("_choice_state").notNull()},ks={_lesson_state:ts("_lesson_state").notNull()},Cs={_programme_state:ts("_programme_state").notNull()},qs={_question_state:ts("_question_state").notNull()},$s={_quiz_state:ts("_quiz_state").notNull()},js={_subject_phase_state:ts("_subject_phase_state").notNull()},Ts={_thread_state:ts("_thread_state").notNull()},Ps={_unit_state:ts("_unit_state").notNull()},Bs={_unit_variant_state:ts("_unit_variant_state").notNull()},Ds={_works_copyright_state:ts("_works_copyright_state").notNull()},As={_choice_state:ts("_choice_state")},Os={_unit_variant_state:ts("_unit_variant_state")},Is=({name:e,columnA:i,columnB:n})=>de(e,t.sql`${i} = 'expired' or ${n} = 'expired' or ${i} = ${n}`),Ls=({name:e,columnA:i,columnB:n})=>de(e,t.sql`${i} = 'expired' or ${n} is null or ${n} = 'expired' or ${i} = ${n}`),zs={_expire_on_release:Pe("_expire_on_release").notNull().default(!1),_release_id:tt("_release_id").references(()=>ws.release_id)},Fs=Ns,Qs=Yn.table("gdrive_files",{gdrive_file_id:tt("gdrive_file_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),epoch:ti("epoch"),google_drive_id:ti("google_drive_id"),google_drive_url:ti("google_drive_url"),opendocument_presentation_bucket_name:ti("opendocument_presentation_bucket_name"),opendocument_presentation_bucket_path:ti("opendocument_presentation_bucket_path"),pdf_bucket_name:ti("pdf_bucket_name"),pdf_bucket_path:ti("pdf_bucket_path"),powerpoint_bucket_name:ti("powerpoint_bucket_name"),powerpoint_bucket_path:ti("powerpoint_bucket_path"),previous_document_id:tt("previous_document_id"),...zs,...ys}),Vs=Yn.table("lessons",{lesson_id:tt("lesson_id").notNull().generatedByDefaultAsIdentity(),...Fs,agf__has_copyright_restrictions:Pe("agf__has_copyright_restrictions"),agf__restricted_download:Pe("agf__restricted_download"),deprecated_fields:ct("deprecated_fields"),equipment_and_resources:ct("equipment_and_resources"),has_tag_practical_not_remote:Pe("has_tag_practical_not_remote").notNull().default(!1),is_sensitive:Pe("is_sensitive").notNull().default(!1),key_learning_points:ct("key_learning_points"),keywords:ct("keywords"),lesson_outline:ct("lesson_outline"),lesson_uid:Ae("lesson_uid",{length:16}).notNull(),misconceptions_and_common_mistakes:ct("misconceptions_and_common_mistakes"),phonics_outcome:ti("phonics_outcome"),pupil_lesson_outcome:ti("pupil_lesson_outcome"),slug:ti("slug").notNull(),teacher_tips:ct("teacher_tips"),title:ti("title").notNull(),...zs,...ys},e=>[Qi({columns:[e.lesson_id,e._state]})]),Es=Yn.enum("document_type",["slidedeck","worksheet","worksheet_answers","supplementary_resource","lesson_guide"]),Ks=Yn.table("documents",{document_id:tt("document_id").notNull().generatedByDefaultAsIdentity(),...Fs,gdrive_file_id:tt("gdrive_file_id").notNull(),lesson_id:tt("lesson_id"),deprecated_fields:ct("deprecated_fields"),document_type:Es("document_type").notNull(),document_uid:Ae("document_uid",{length:16}),previous_lesson_id:tt("previous_lesson_id"),...zs,...ys},e=>[Qi({columns:[e.document_id,e._state]}),c({columns:[e.lesson_id,e._state],foreignColumns:[Vs.lesson_id,Vs._state]}),c({name:"documents_gdrive_file_fk",columns:[e.gdrive_file_id],foreignColumns:[Qs.gdrive_file_id]}),_().on(e.lesson_id,e.document_type,e._state)]),Us=Yn.table("bucket_files",{bucket_file_id:tt("bucket_file_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,bucket_name:ti("bucket_name"),bucket_path:ti("bucket_path"),byte_size:tt("byte_size"),cloudinary_public_id:ti("cloudinary_public_id"),cloudinary_source_url:ti("cloudinary_source_url"),content_type:ti("content_type"),deprecated_fields:ct("deprecated_fields"),filename:ti("filename"),media_description:ti("media_description"),name:ti("name"),previous_downloadable_id:tt("previous_downloadable_id"),...zs,...ys});Yn.table("downloadables",{downloadable_id:tt("downloadable_id").notNull().generatedByDefaultAsIdentity(),...Fs,bucket_file_id:tt("bucket_file_id").notNull(),lesson_id:tt("lesson_id"),custom_title:ti("custom_title"),deprecated_fields:ct("deprecated_fields"),position:tt("position").notNull(),previous_lesson_id:tt("previous_lesson_id"),...zs,...ys},e=>[Qi({columns:[e.downloadable_id,e._state]}),c({columns:[e.lesson_id,e._state],foreignColumns:[Vs.lesson_id,Vs._state]}),c({name:"downloadables_bucket_file_fk",columns:[e.bucket_file_id],foreignColumns:[Us.bucket_file_id]}),Fi("downloadables_lesson_position_unique").on(e.lesson_id,e.position,e._state)]);const Ms=Yn.table("videos",{video_id:tt("video_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,cloudinary_public_id:ti("cloudinary_public_id"),cloudinary_source_url:ti("cloudinary_source_url"),contains_identifiable_face:Pe("contains_identifiable_face"),deprecated_fields:ct("deprecated_fields"),duration_seconds:$t("duration_seconds"),has_bsl:Pe("has_bsl"),ingest_origin:ti("ingest_origin"),media_description:ti("media_description"),mux_asset_id:ti("mux_asset_id"),mux_playback_id:ti("mux_playback_id"),name:ti("name"),previous_lesson_video_id:tt("previous_lesson_video_id"),previous_media_clip_ids:tt("previous_media_clip_ids").array(),raw_mux_data:ct("raw_mux_data"),signed_stream_id:ti("signed_stream_id"),title:ti("title"),url:ti("url"),video_uid:Ae("video_uid",{length:16}),...zs,...ys});Yn.table("lesson_videos",{lesson_video_id:tt("lesson_video_id").notNull().generatedByDefaultAsIdentity(),...Fs,lesson_id:tt("lesson_id"),sign_language_video_id:tt("sign_language_video_id"),video_id:tt("video_id").notNull(),previous_lesson_id:tt("previous_lesson_id"),...zs,...ys},e=>[Qi({columns:[e.lesson_video_id,e._state]}),c({columns:[e.lesson_id,e._state],foreignColumns:[Vs.lesson_id,Vs._state]}),c({columns:[e.video_id],foreignColumns:[Ms.video_id]}),c({name:"lesson_videos_sign_lang_video_fk",columns:[e.sign_language_video_id],foreignColumns:[Ms.video_id]}),Fi("lesson_videos_lesson_unique").on(e.lesson_id,e._state)]);const Rs=Yn.table("media_clip_cycles",{media_clip_cycle_id:tt("media_clip_cycle_id").notNull().generatedByDefaultAsIdentity(),...Fs,lesson_id:tt("lesson_id"),cycle_name:ti("cycle_name"),position:tt("position").notNull(),previous_lesson_id:tt("previous_lesson_id"),...zs,...ys},e=>[Qi({columns:[e.media_clip_cycle_id,e._state]}),c({columns:[e.lesson_id,e._state],foreignColumns:[Vs.lesson_id,Vs._state]}),Fi("media_clip_cycles_lesson_name_unique").on(e.lesson_id,e.cycle_name,e._state),Fi("media_clip_cycles_lesson_position_unique").on(e.lesson_id,e.position,e._state)]),Js=Yn.table("sounds",{sound_id:tt("sound_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,cloudinary_public_id:ti("cloudinary_public_id"),cloudinary_source_url:ti("cloudinary_source_url"),duration_seconds:$t("duration_seconds"),media_description:ti("media_description"),mux_asset_id:ti("mux_asset_id"),mux_playback_id:ti("mux_playback_id"),name:ti("name"),previous_media_clip_ids:tt("previous_media_clip_ids").array(),transcript_vtt_url:ti("transcript_vtt_url"),...zs,...ys});Yn.table("media_clips",{media_clip_id:tt("media_clip_id").notNull().generatedByDefaultAsIdentity(),...Fs,media_clip_cycle_id:tt("media_clip_cycle_id").notNull(),sound_id:tt("sound_id"),video_id:tt("video_id"),custom_title:ti("custom_title"),media_kind:ds("media_kind"),position:tt("position").notNull(),...zs,...ys},e=>[Qi({columns:[e.media_clip_id,e._state]}),c({name:"media_clips_mc_cycle_fk",columns:[e.media_clip_cycle_id,e._state],foreignColumns:[Rs.media_clip_cycle_id,Rs._state]}),c({columns:[e.video_id],foreignColumns:[Ms.video_id]}),c({columns:[e.sound_id],foreignColumns:[Js.sound_id]}),de("media_clip_video_or_sound",t.sql`(video_id IS NOT NULL AND sound_id IS NULL) OR (video_id IS NULL AND sound_id IS NOT NULL)`),Fi("media_clips_cycle_position_unique").on(e.media_clip_cycle_id,e.position,e._state)]);const Ws=Yn.table("images",{image_id:tt("image_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,cloudinary_public_id:ti("cloudinary_public_id"),cloudinary_source_url:ti("cloudinary_source_url"),contains_identifiable_face:Pe("contains_identifiable_face"),height:tt("height"),media_description:ti("media_description"),name:ti("name"),width:tt("width"),...zs,...ys}),Hs=Yn.table("questions",{question_id:tt("question_id").notNull().generatedByDefaultAsIdentity(),...Fs,stem_image_id:tt("stem_image_id"),deprecated_fields:ct("deprecated_fields"),feedback:ti("feedback"),hint:ti("hint"),question_type:cs("question_type").notNull(),question_uid:Ae("question_uid",{length:16}).notNull(),stem_text:ti("stem_text"),...zs,...ys},e=>[Qi({columns:[e.question_id,e._state]}),c({columns:[e.stem_image_id],foreignColumns:[Ws.image_id]})]);Yn.table("question_options",{option_id:tt("option_id").notNull().generatedByDefaultAsIdentity(),...Fs,body_image_id:tt("body_image_id"),match_partner_image_id:tt("match_partner_image_id"),question_id:tt("question_id").notNull(),body_text:ti("body_text"),correct_order:tt("correct_order"),is_correct:Pe("is_correct"),match_partner_text:ti("match_partner_text"),position:tt("position"),...zs,...ys},e=>[Qi({columns:[e.option_id,e._state]}),c({name:"question_options_question_fk",columns:[e.question_id,e._state],foreignColumns:[Hs.question_id,Hs._state]}),c({name:"question_options_body_image_fk",columns:[e.body_image_id],foreignColumns:[Ws.image_id]}),c({name:"question_options_match_partner_image_fk",columns:[e.match_partner_image_id],foreignColumns:[Ws.image_id]})]);const Gs=Yn.table("units",{unit_id:tt("unit_id").notNull().generatedByDefaultAsIdentity(),...Ns,deprecated_fields:ct("deprecated_fields"),description:ti("description").notNull(),slug:ti("slug"),title:ti("title").notNull(),unit_uid:Ae("unit_uid",{length:16}),why_this_why_now:ti("why_this_why_now"),...zs,...ys},e=>[Qi({columns:[e.unit_id,e._state]})]);Yn.table("question_units",{question_id:tt("question_id").notNull(),unit_id:tt("unit_id").notNull(),...qs,...Ps,...zs,...ys},e=>[Qi({name:"question_units_pk",columns:[e.question_id,e.unit_id,e._question_state,e._unit_state]}),c({name:"question_units_question_fk",columns:[e.question_id,e._question_state],foreignColumns:[Hs.question_id,Hs._state]}),c({name:"question_units_unit_fk",columns:[e.unit_id,e._unit_state],foreignColumns:[Gs.unit_id,Gs._state]}),Is({name:"question_units_state_coherence",columnA:e._question_state,columnB:e._unit_state})]);const Xs=Yn.enum("quiz_role",["starter","exit"]),Ys=Yn.table("quizzes",{quiz_id:tt("quiz_id").notNull().generatedByDefaultAsIdentity(),...Fs,lesson_id:tt("lesson_id"),deprecated_fields:ct("deprecated_fields"),previous_lesson_id:tt("previous_lesson_id"),quiz_answers_pdf_bucket_name:ti("quiz_answers_pdf_bucket_name"),quiz_answers_pdf_bucket_path:ti("quiz_answers_pdf_bucket_path"),quiz_pdf_bucket_name:ti("quiz_pdf_bucket_name"),quiz_pdf_bucket_path:ti("quiz_pdf_bucket_path"),quiz_role:Xs("quiz_role").notNull(),quiz_uid:Ae("quiz_uid",{length:16}).notNull(),...zs,...ys},e=>[Qi({columns:[e.quiz_id,e._state]}),c({columns:[e.lesson_id,e._state],foreignColumns:[Vs.lesson_id,Vs._state]}),Fi("quizzes_lesson_role_unique").on(e.lesson_id,e.quiz_role,e._state)]);Yn.table("quiz_questions",{quiz_id:tt("quiz_id").notNull(),question_id:tt("question_id").notNull(),...$s,...qs,position:tt("position").notNull(),...zs,...ys},e=>[Qi({name:"quiz_questions_pk",columns:[e.quiz_id,e.question_id,e._quiz_state,e._question_state]}),c({name:"quiz_questions_quiz_fk",columns:[e.quiz_id,e._quiz_state],foreignColumns:[Ys.quiz_id,Ys._state]}),c({name:"quiz_questions_question_fk",columns:[e.question_id,e._question_state],foreignColumns:[Hs.question_id,Hs._state]}),Is({name:"quiz_questions_state_coherence",columnA:e._quiz_state,columnB:e._question_state})]);const Zs=Yn.table("urls",{url_id:tt("url_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,cloudinary_public_id:ti("cloudinary_public_id"),cloudinary_source_url:ti("cloudinary_source_url"),name:ti("name"),url:ti("url"),...zs,...ys}),er=Yn.table("media_copyright",{media_copyright_id:tt("media_copyright_id").notNull().generatedByDefaultAsIdentity(),...Fs,bucket_file_id:tt("bucket_file_id"),image_id:tt("image_id"),sound_id:tt("sound_id"),url_id:tt("url_id"),video_id:tt("video_id"),acquisition_basis:rs("acquisition_basis"),additional_restrictions:ti("additional_restrictions"),attribution:ti("attribution"),attribution_required:Pe("attribution_required"),content_cycle:os("content_cycle"),media_copyright_uid:ti("media_copyright_uid"),deprecated_fields:ct("deprecated_fields"),expiry_date_override:Re("expiry_date_override"),licence:us("licence"),media_classification:ns("media_classification"),media_provenance:ss("media_provenance"),media_provenance_url:ti("media_provenance_url"),partner_name:ti("partner_name"),permission_status:as("permission_status"),restriction_level_override:is("restriction_level_override"),territory_other:ti("territory_other"),territory_override:ls("territory_override"),third_party_id:ti("third_party_id"),usage_notes:ti("usage_notes"),...zs,...ys},e=>[Qi({columns:[e.media_copyright_id,e._state]}),c({columns:[e.image_id],foreignColumns:[Ws.image_id]}),c({columns:[e.sound_id],foreignColumns:[Js.sound_id]}),c({columns:[e.video_id],foreignColumns:[Ms.video_id]}),c({name:"media_copyright_bucket_file_fk",columns:[e.bucket_file_id],foreignColumns:[Us.bucket_file_id]}),c({columns:[e.url_id],foreignColumns:[Zs.url_id]}),de("media_copyright_has_exactly_one_media",t.sql`(image_id IS NOT NULL)::int + (sound_id IS NOT NULL)::int + (video_id IS NOT NULL)::int + (bucket_file_id IS NOT NULL)::int + (url_id IS NOT NULL)::int = 1`),_("media_copyright_image_unique").on(e.image_id,e._state),_("media_copyright_sound_unique").on(e.sound_id,e._state),_("media_copyright_video_unique").on(e.video_id,e._state),_("media_copyright_bucket_file_unique").on(e.bucket_file_id,e._state),_("media_copyright_url_unique").on(e.url_id,e._state)]),tr=es.enum("contract_territory",["worldwide","worldwide_excl_usa","worldwide_excl_canada_and_usa","uk_only","uk_and_commonwealth","uk_and_commonwealth_excl_canada","uk_and_eire"]),ir=es.table("tpc_contracts",{tpc_contract_id:tt("tpc_contract_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,effective_date:Re("effective_date"),end_date:Re("end_date"),geo_restricted:Pe().notNull().default(!1),juro_id:ti("juro_id"),juro_url:ti("juro_url"),login_required:Pe().notNull().default(!1),name:ti("name").notNull(),raw_contract:ct("raw_contract"),restricted_download:Pe().notNull().default(!1),restriction_level:is(),signing_side:ti("signing_side"),territory:tr("territory"),tpc_contract_uid:Ae("tpc_contract_uid",{length:16}).notNull(),...ys},()=>[]);Yn.table("media_copyright_tpc_contracts",{media_copyright_id:tt("media_copyright_id").notNull(),tpc_contract_id:tt("tpc_contract_id").notNull(),...Fs,...zs,_release_id:tt("_release_id"),...ys},e=>[Qi({name:"media_copyright_tpc_contracts_pk",columns:[e.media_copyright_id,e.tpc_contract_id,e._state]}),c({name:"media_copyright_tpc_contract_media_copyright_fk",columns:[e.media_copyright_id,e._state],foreignColumns:[er.media_copyright_id,er._state]}),c({name:"media_copyright_tpc_contract_tpc_contract_fk",columns:[e.tpc_contract_id],foreignColumns:[ir.tpc_contract_id]}),c({name:"media_copyright_tpc_contracts_release_fk",columns:[e._release_id],foreignColumns:[ws.release_id]})]),Yn.table("gdrive_file_images",{gdrive_file_id:tt("gdrive_file_id").notNull(),image_id:tt("image_id").notNull(),...Ss,...zs,...ys},e=>[Qi({columns:[e.gdrive_file_id,e.image_id]}),c({name:"gdrive_file_images_gdrive_file_fk",columns:[e.gdrive_file_id],foreignColumns:[Qs.gdrive_file_id]}),c({columns:[e.image_id],foreignColumns:[Ws.image_id]})]),Yn.table("lesson_media",{lesson_media_id:tt("lesson_media_id").notNull().generatedByDefaultAsIdentity(),...Ns,lesson_id:tt("lesson_id").notNull(),bucket_file_id:tt("bucket_file_id"),image_id:tt("image_id"),sound_id:tt("sound_id"),url_id:tt("url_id"),video_id:tt("video_id"),...zs,...ys},e=>[Qi({name:"lesson_media_pk",columns:[e.lesson_media_id,e._state]}),c({name:"lesson_media_lesson_fk",columns:[e.lesson_id,e._state],foreignColumns:[Vs.lesson_id,Vs._state]}),c({name:"lesson_media_image_fk",columns:[e.image_id],foreignColumns:[Ws.image_id]}),c({name:"lesson_media_sound_fk",columns:[e.sound_id],foreignColumns:[Js.sound_id]}),c({name:"lesson_media_video_fk",columns:[e.video_id],foreignColumns:[Ms.video_id]}),c({name:"lesson_media_bucket_file_fk",columns:[e.bucket_file_id],foreignColumns:[Us.bucket_file_id]}),c({name:"lesson_media_url_fk",columns:[e.url_id],foreignColumns:[Zs.url_id]}),de("lesson_media_has_exactly_one_media",t.sql`(image_id IS NOT NULL)::int + (sound_id IS NOT NULL)::int + (video_id IS NOT NULL)::int + (bucket_file_id IS NOT NULL)::int + (url_id IS NOT NULL)::int = 1`),_("lesson_media_lesson_asset_unique").on(e.lesson_id,e._state,e.image_id,e.sound_id,e.video_id,e.bucket_file_id,e.url_id).nullsNotDistinct()]);const nr=Yn.table("works_copyright",{works_copyright_id:tt("works_copyright_id").notNull().generatedByDefaultAsIdentity(),...Ns,attribution:ti("attribution"),author:ti("author"),deprecated_fields:ct("deprecated_fields"),raw_juro_data:ct("raw_juro_data"),restriction_level:is("restriction_level"),title:ti("title"),works_copyright_uid:Ae("works_copyright_uid",{length:16}),...zs,...ys},e=>[Qi({columns:[e.works_copyright_id,e._state]})]);Yn.table("lesson_works_copyright",{lesson_id:tt("lesson_id").notNull(),works_copyright_id:tt("works_copyright_id").notNull(),...ks,...Ds,...zs,...ys},e=>[Qi({name:"lesson_works_copyright_pk",columns:[e.lesson_id,e.works_copyright_id,e._lesson_state,e._works_copyright_state]}),c({name:"lesson_works_copyright_lesson_fk",columns:[e.lesson_id,e._lesson_state],foreignColumns:[Vs.lesson_id,Vs._state]}),c({name:"lesson_works_copyright_works_copyright_fk",columns:[e.works_copyright_id,e._works_copyright_state],foreignColumns:[nr.works_copyright_id,nr._state]}),Is({name:"lesson_works_copyright_state_coherence",columnA:e._lesson_state,columnB:e._works_copyright_state})]);const sr=Yn.table("features",{feature_id:tt("feature_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,key:ti("key").notNull(),...zs,...ys},e=>[_("features_key_unique").on(e.key)]);Yn.table("lesson_features",{lesson_id:tt("lesson_id").notNull(),feature_id:tt("feature_id").notNull(),...Fs,value:ti("value"),...zs,...ys},e=>[Qi({columns:[e.lesson_id,e.feature_id,e._state]}),c({columns:[e.lesson_id,e._state],foreignColumns:[Vs.lesson_id,Vs._state]}),c({name:"lesson_features_feature_fk",columns:[e.feature_id],foreignColumns:[sr.feature_id]})]),Yn.table("video_captions",{video_id:tt("video_id").notNull(),...Ns,bad_language_detected:Pe("bad_language_detected"),deprecated_fields:ct("deprecated_fields"),inappropriate_words:ct("inappropriate_words"),language_approved:Pe("language_approved"),transcript:ti("transcript"),transcript_vtt_url:ti("transcript_vtt_url"),...zs,...ys},e=>[Qi({columns:[e.video_id,e._state]}),c({columns:[e.video_id],foreignColumns:[Ms.video_id]})]),Yn.table("works_copyright_tpc_contracts",{works_copyright_id:tt("works_copyright_id").notNull(),tpc_contract_id:tt("tpc_contract_id").notNull(),...Fs,...zs,_release_id:tt("_release_id"),...ys},e=>[Qi({name:"works_copyright_tpc_contracts_pk",columns:[e.works_copyright_id,e.tpc_contract_id,e._state]}),c({name:"works_copyright_tpc_contract_works_copyright_fk",columns:[e.works_copyright_id,e._state],foreignColumns:[nr.works_copyright_id,nr._state]}),c({name:"works_copyright_tpc_contract_tpc_contract_fk",columns:[e.tpc_contract_id],foreignColumns:[ir.tpc_contract_id]}),c({name:"works_copyright_tpc_contracts_release_fk",columns:[e._release_id],foreignColumns:[ws.release_id]})]),Yn.table("videos_works_copyright",{video_id:tt("video_id").notNull(),works_copyright_id:tt("works_copyright_id").notNull(),...Ns,...zs,...ys},e=>[Qi({columns:[e.video_id,e.works_copyright_id,e._state]}),c({name:"videos_works_copyright_video_fk",columns:[e.video_id],foreignColumns:[Ms.video_id]}),c({name:"videos_works_copyright_works_copyright_fk",columns:[e.works_copyright_id,e._state],foreignColumns:[nr.works_copyright_id,nr._state]})]);const rr=Yn.table("supervision_levels",{supervision_level_id:tt("supervision_level_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),description:ti("description"),global_position:tt("global_position").notNull(),supervision_level_rating:tt("supervision_level_rating"),title:ti("title").notNull(),...zs,...ys}),or=Yn.table("content_guidance",{content_guidance_id:tt("content_guidance_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,supervision_level_id:tt("supervision_level_id").notNull(),content_guidance_area:ti("content_guidance_area"),content_guidance_code:ti("content_guidance_code"),content_guidance_description:ti("content_guidance_description"),content_guidance_label:ti("content_guidance_label"),deprecated_fields:ct("deprecated_fields"),...zs,...ys},e=>[c({name:"content_guid_super_level_fk",columns:[e.supervision_level_id],foreignColumns:[rr.supervision_level_id]})]),ar=Yn.table("key_stages",{key_stage_id:tt("key_stage_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),description:ti("description"),global_position:tt("global_position").notNull(),key_stage:ti("key_stage"),slug:ti("slug"),...zs,...ys}),lr=Yn.table("phases",{phase_id:tt("phase_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),description:ti("description"),global_position:tt("global_position").notNull(),phase:ti("phase"),slug:ti("slug"),...zs,...ys}),ur=Yn.table("subjects",{subject_id:tt("subject_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,subject_parent_id:tt("subject_parent_id"),deprecated_fields:ct("deprecated_fields"),description:ti("description"),global_position:tt("global_position").notNull(),non_curriculum:Pe("non_curriculum"),slug:ti("slug"),subject:ti("subject"),...zs,...ys},e=>[c({name:"subjects_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[e.subject_id]})]),cr=Yn.table("years",{year_id:tt("year_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,key_stage_id:tt("key_stage_id").notNull(),phase_id:tt("phase_id").notNull(),deprecated_fields:ct("deprecated_fields"),description:ti("description"),global_position:tt("global_position").notNull(),slug:ti("slug"),year:ti("year"),...zs,...ys},e=>[c({columns:[e.key_stage_id],foreignColumns:[ar.key_stage_id]}),c({columns:[e.phase_id],foreignColumns:[lr.phase_id]})]),_r=Yn.table("content_guidance_scopes",{scope_id:tt("scope_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,content_guidance_id:tt("content_guidance_id").notNull(),key_stage_id:tt("key_stage_id"),phase_id:tt("phase_id"),subject_id:tt("subject_id"),subject_parent_id:tt("subject_parent_id"),year_id:tt("year_id"),...zs,...ys},e=>[c({name:"content_guid_scopes_content_guid_fk",columns:[e.content_guidance_id],foreignColumns:[or.content_guidance_id]}),c({name:"content_guid_scopes_subject_fk",columns:[e.subject_id],foreignColumns:[ur.subject_id]}),c({name:"content_guid_scopes_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[ur.subject_id]}),c({name:"content_guid_scopes_phase_fk",columns:[e.phase_id],foreignColumns:[lr.phase_id]}),c({name:"content_guid_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[ar.key_stage_id]}),c({columns:[e.year_id],foreignColumns:[cr.year_id]})]),dr=Yn.table("exam_board_specs",{exam_board_spec_id:tt("exam_board_spec_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),description:ti("description"),title:ti("title").notNull(),...zs,...ys});Yn.table("exam_board_spec_scopes",{scope_id:tt("scope_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,exam_board_spec_id:tt("exam_board_spec_id").notNull(),key_stage_id:tt("key_stage_id"),phase_id:tt("phase_id"),subject_id:tt("subject_id"),subject_parent_id:tt("subject_parent_id"),year_id:tt("year_id"),...zs,...ys},e=>[c({name:"exam_spec_scopes_exam_spec_fk",columns:[e.exam_board_spec_id],foreignColumns:[dr.exam_board_spec_id]}),c({name:"exam_spec_scopes_subject_fk",columns:[e.subject_id],foreignColumns:[ur.subject_id]}),c({name:"exam_spec_scopes_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[ur.subject_id]}),c({name:"exam_spec_scopes_phase_fk",columns:[e.phase_id],foreignColumns:[lr.phase_id]}),c({name:"exam_spec_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[ar.key_stage_id]}),c({columns:[e.year_id],foreignColumns:[cr.year_id]})]);const mr=Yn.table("lesson_content_guidance",{lesson_id:tt("lesson_id").notNull(),content_guidance_id:tt("content_guidance_id").notNull(),...Fs,position:tt("position").notNull(),...zs,...ys},e=>[Qi({name:"lesson_content_guid_pk",columns:[e.lesson_id,e.content_guidance_id,e._state]}),c({name:"lesson_content_guid_lesson_fk",columns:[e.lesson_id,e._state],foreignColumns:[Vs.lesson_id,Vs._state]}),c({name:"lesson_content_guid_content_guid_fk",columns:[e.content_guidance_id],foreignColumns:[or.content_guidance_id]})]),pr=Yn.table("tags",{tag_id:tt("tag_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),tag_category:_s("tag_category"),title:ti("title").notNull(),...zs,...ys});Yn.table("lesson_tags",{lesson_id:tt("lesson_id").notNull(),tag_id:tt("tag_id").notNull(),...Fs,position:tt("position").notNull(),...zs,...ys},e=>[Qi({columns:[e.lesson_id,e.tag_id,e._state]}),c({columns:[e.lesson_id,e._state],foreignColumns:[Vs.lesson_id,Vs._state]}),c({columns:[e.tag_id],foreignColumns:[pr.tag_id]})]);const gr=Yn.table("national_curriculum",{national_curriculum_id:tt("national_curriculum_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),description:ti("description"),title:ti("title").notNull(),...zs,...ys});Yn.table("national_curriculum_scopes",{scope_id:tt("scope_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,key_stage_id:tt("key_stage_id"),national_curriculum_id:tt("national_curriculum_id").notNull(),phase_id:tt("phase_id"),subject_id:tt("subject_id"),subject_parent_id:tt("subject_parent_id"),year_id:tt("year_id"),...zs,...ys},e=>[c({name:"nat_curric_scopes_nat_curric_fk",columns:[e.national_curriculum_id],foreignColumns:[gr.national_curriculum_id]}),c({name:"nat_curric_scopes_subject_fk",columns:[e.subject_id],foreignColumns:[ur.subject_id]}),c({name:"nat_curric_scopes_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[ur.subject_id]}),c({name:"nat_curric_scopes_phase_fk",columns:[e.phase_id],foreignColumns:[lr.phase_id]}),c({name:"nat_curric_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[ar.key_stage_id]}),c({name:"nat_curric_scopes_year_fk",columns:[e.year_id],foreignColumns:[cr.year_id]})]);const fr=Yn.table("subject_categories",{subject_category_id:tt("subject_category_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),description:ti("description"),slug:ti("slug"),title:ti("title").notNull(),...zs,...ys});Yn.table("subject_category_scopes",{scope_id:tt("scope_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,key_stage_id:tt("key_stage_id"),phase_id:tt("phase_id"),subject_category_id:tt("subject_category_id").notNull(),subject_id:tt("subject_id"),subject_parent_id:tt("subject_parent_id"),year_id:tt("year_id"),...zs,...ys},e=>[c({name:"subj_cat_scopes_subj_cat_fk",columns:[e.subject_category_id],foreignColumns:[fr.subject_category_id]}),c({name:"subj_cat_scopes_subject_fk",columns:[e.subject_id],foreignColumns:[ur.subject_id]}),c({name:"subj_cat_scopes_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[ur.subject_id]}),c({name:"subj_cat_scopes_phase_fk",columns:[e.phase_id],foreignColumns:[lr.phase_id]}),c({name:"subj_cat_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[ar.key_stage_id]}),c({columns:[e.year_id],foreignColumns:[cr.year_id]})]),Yn.table("tag_scopes",{scope_id:tt("scope_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,key_stage_id:tt("key_stage_id"),phase_id:tt("phase_id"),subject_id:tt("subject_id"),subject_parent_id:tt("subject_parent_id"),tag_id:tt("tag_id").notNull(),year_id:tt("year_id"),...zs,...ys},e=>[c({columns:[e.tag_id],foreignColumns:[pr.tag_id]}),c({columns:[e.subject_id],foreignColumns:[ur.subject_id]}),c({name:"tag_scopes_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[ur.subject_id]}),c({columns:[e.phase_id],foreignColumns:[lr.phase_id]}),c({name:"tag_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[ar.key_stage_id]}),c({columns:[e.year_id],foreignColumns:[cr.year_id]})]),Yn.table("unit_exam_board_specs",{unit_id:tt("unit_id").notNull(),exam_board_spec_id:tt("exam_board_spec_id").notNull(),...Fs,position:tt("position").notNull(),...zs,...ys},e=>[Qi({columns:[e.unit_id,e.exam_board_spec_id,e._state]}),c({columns:[e.unit_id,e._state],foreignColumns:[Gs.unit_id,Gs._state]}),c({name:"unit_exam_spec_exam_spec_fk",columns:[e.exam_board_spec_id],foreignColumns:[dr.exam_board_spec_id]})]),Yn.table("unit_national_curriculum",{unit_id:tt("unit_id").notNull(),national_curriculum_id:tt("national_curriculum_id").notNull(),...Fs,position:tt("position").notNull(),...zs,...ys},e=>[Qi({name:"unit_nat_curric_pk",columns:[e.unit_id,e.national_curriculum_id,e._state]}),c({name:"unit_nat_curric_unit_fk",columns:[e.unit_id,e._state],foreignColumns:[Gs.unit_id,Gs._state]}),c({name:"unit_nat_curric_nat_curric_fk",columns:[e.national_curriculum_id],foreignColumns:[gr.national_curriculum_id]})]),Yn.table("unit_subject_categories",{unit_id:tt("unit_id").notNull(),subject_category_id:tt("subject_category_id").notNull(),...Fs,position:tt("position").notNull(),...zs,...ys},e=>[Qi({columns:[e.unit_id,e.subject_category_id,e._state]}),c({columns:[e.unit_id,e._state],foreignColumns:[Gs.unit_id,Gs._state]}),c({name:"unit_subj_cat_subj_cat_fk",columns:[e.subject_category_id],foreignColumns:[fr.subject_category_id]})]);const hr=Yn.table("exam_boards",{exam_board_id:tt("exam_board_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),description:ti("description"),exam_board:ti("exam_board"),global_position:tt("global_position").notNull(),slug:ti("slug"),...zs,...ys}),yr=Yn.table("pathways",{pathway_id:tt("pathway_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),description:ti("description"),global_position:tt("global_position").notNull(),pathway:ti("pathway"),slug:ti("slug"),...zs,...ys}),br=Yn.table("tiers",{tier_id:tt("tier_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,deprecated_fields:ct("deprecated_fields"),description:ti("description"),global_position:tt("global_position").notNull(),slug:ti("slug"),tier:ti("tier"),...zs,...ys}),vr=Yn.table("unit_variants",{unit_variant_id:tt("unit_variant_id").notNull().generatedByDefaultAsIdentity(),...Fs,exam_board_id:tt("exam_board_id"),pathway_id:tt("pathway_id"),subject_id:tt("subject_id"),tier_id:tt("tier_id"),unit_id:tt("unit_id").notNull(),deprecated_fields:ct("deprecated_fields"),description_override:ti("description_override"),optionality:ti("optionality"),planned_number_of_lessons_override:tt("planned_number_of_lessons_override"),prior_knowledge_requirements_override:ti("prior_knowledge_requirements_override").array(),title_override:ti("title_override"),unit_variant_uid:Ae("unit_variant_uid",{length:16}),why_this_why_now_override:ti("why_this_why_now_override"),...zs,...ys},e=>[Qi({columns:[e.unit_variant_id,e._state]}),c({name:"unit_variants_exam_board_fk",columns:[e.exam_board_id],foreignColumns:[hr.exam_board_id]}),c({columns:[e.pathway_id],foreignColumns:[yr.pathway_id]}),c({columns:[e.subject_id],foreignColumns:[ur.subject_id]}),c({columns:[e.tier_id],foreignColumns:[br.tier_id]}),c({columns:[e.unit_id,e._state],foreignColumns:[Gs.unit_id,Gs._state]}),_("unit_variants_unit_scope_unique").on(e.unit_id,e.subject_id,e.tier_id,e.exam_board_id,e.pathway_id,e.optionality,e._state).nullsNotDistinct()]);Yn.table("unit_variant_exam_board_specs_override",{unit_variant_id:tt("unit_variant_id").notNull(),exam_board_spec_id:tt("exam_board_spec_id").notNull(),...Fs,position:tt("position").notNull(),...zs,_release_id:tt("_release_id"),...ys},e=>[Qi({name:"unit_variant_exam_board_specs_override_pk",columns:[e.unit_variant_id,e.exam_board_spec_id,e._state]}),c({name:"unit_var_exam_spec_ovr_release_fk",columns:[e._release_id],foreignColumns:[ws.release_id]}),c({name:"unit_var_exam_spec_ovr_unit_var_fk",columns:[e.unit_variant_id,e._state],foreignColumns:[vr.unit_variant_id,vr._state]}),c({name:"unit_var_exam_spec_ovr_exam_spec_fk",columns:[e.exam_board_spec_id],foreignColumns:[dr.exam_board_spec_id]})]),Yn.table("unit_variant_national_curriculum_override",{unit_variant_id:tt("unit_variant_id").notNull(),national_curriculum_id:tt("national_curriculum_id").notNull(),...Fs,position:tt("position").notNull(),...zs,_release_id:tt("_release_id"),...ys},e=>[Qi({name:"unit_variant_national_curriculum_override_pk",columns:[e.unit_variant_id,e.national_curriculum_id,e._state]}),c({name:"unit_var_nat_curric_ovr_release_fk",columns:[e._release_id],foreignColumns:[ws.release_id]}),c({name:"unit_var_nat_curric_ovr_unit_var_fk",columns:[e.unit_variant_id,e._state],foreignColumns:[vr.unit_variant_id,vr._state]}),c({name:"unit_var_nat_curric_ovr_nat_curric_fk",columns:[e.national_curriculum_id],foreignColumns:[gr.national_curriculum_id]})]),Yn.table("unit_variant_subject_categories_override",{unit_variant_id:tt("unit_variant_id").notNull(),subject_category_id:tt("subject_category_id").notNull(),...Fs,position:tt("position").notNull(),...zs,_release_id:tt("_release_id"),...ys},e=>[Qi({name:"unit_variant_subject_categories_override_pk",columns:[e.unit_variant_id,e.subject_category_id,e._state]}),c({name:"unit_var_subj_cat_ovr_release_fk",columns:[e._release_id],foreignColumns:[ws.release_id]}),c({name:"unit_var_subj_cat_ovr_unit_var_fk",columns:[e.unit_variant_id,e._state],foreignColumns:[vr.unit_variant_id,vr._state]}),c({name:"unit_var_subj_cat_ovr_subj_cat_fk",columns:[e.subject_category_id],foreignColumns:[fr.subject_category_id]})]);const wr=Yn.table("actions",{action_id:tt("action_id").primaryKey().generatedByDefaultAsIdentity(),...Ss,key:ti("key").notNull(),...zs,...ys},e=>[_("actions_key_unique").on(e.key)]),Nr=Yn.table("overrides_and_exceptions",{overrides_and_exceptions_id:tt("overrides_and_exceptions_id").notNull().generatedByDefaultAsIdentity(),...Ns,description:ti("description"),temporary_fields:ct("temporary_fields"),used_by_queries:ct("used_by_queries").notNull().default([]),...zs,...ys},e=>[Qi({columns:[e.overrides_and_exceptions_id,e._state]})]);Yn.table("overrides_and_exceptions_actions",{overrides_and_exceptions_id:tt("overrides_and_exceptions_id").notNull(),action_id:tt("action_id").notNull(),...Ns,value:ct("value").notNull(),...zs,_release_id:tt("_release_id"),...ys},e=>[Qi({name:"ovr_exc_actions_pk",columns:[e.overrides_and_exceptions_id,e.action_id,e._state]}),c({name:"ovr_exc_actions_release_fk",columns:[e._release_id],foreignColumns:[ws.release_id]}),c({name:"ovr_exc_actions_ovr_exc_fk",columns:[e.overrides_and_exceptions_id,e._state],foreignColumns:[Nr.overrides_and_exceptions_id,Nr._state]}),c({name:"ovr_exc_actions_action_fk",columns:[e.action_id],foreignColumns:[wr.action_id]})]),Yn.table("overrides_and_exceptions_feature_scopes",{overrides_and_exceptions_id:tt("overrides_and_exceptions_id").notNull(),condition_id:tt("condition_id").notNull(),feature_id:tt("feature_id").notNull(),...Ns,value:ti("value").notNull(),...zs,_release_id:tt("_release_id"),...ys},e=>[Qi({name:"ovr_exc_feature_scopes_pk",columns:[e.overrides_and_exceptions_id,e.condition_id,e.feature_id,e._state]}),c({name:"ovr_exc_feature_scopes_release_fk",columns:[e._release_id],foreignColumns:[ws.release_id]}),c({name:"ovr_exc_feature_scopes_ovr_exc_fk",columns:[e.overrides_and_exceptions_id,e._state],foreignColumns:[Nr.overrides_and_exceptions_id,Nr._state]}),c({name:"ovr_exc_feature_scopes_feature_fk",columns:[e.feature_id],foreignColumns:[sr.feature_id]})]),Yn.table("overrides_and_exceptions_programme_scopes",{scope_id:tt("scope_id").notNull().generatedByDefaultAsIdentity(),...Ns,key_stage_id:tt("key_stage_id"),overrides_and_exceptions_id:tt("overrides_and_exceptions_id").notNull(),pathway_id:tt("pathway_id"),phase_id:tt("phase_id"),subject_id:tt("subject_id"),tier_id:tt("tier_id"),legacy:Pe("legacy"),subject_slug:ti("subject_slug"),...zs,_release_id:tt("_release_id"),...ys},e=>[Qi({name:"ovr_exc_programme_scopes_pk",columns:[e.scope_id,e._state]}),c({name:"ovr_exc_programme_scopes_release_fk",columns:[e._release_id],foreignColumns:[ws.release_id]}),c({name:"ovr_exc_programme_scopes_ovr_exc_fk",columns:[e.overrides_and_exceptions_id,e._state],foreignColumns:[Nr.overrides_and_exceptions_id,Nr._state]}),c({name:"ovr_exc_programme_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[ar.key_stage_id]}),c({name:"ovr_exc_programme_scopes_pathway_fk",columns:[e.pathway_id],foreignColumns:[yr.pathway_id]}),c({name:"ovr_exc_programme_scopes_phase_fk",columns:[e.phase_id],foreignColumns:[lr.phase_id]}),c({name:"ovr_exc_programme_scopes_subject_fk",columns:[e.subject_id],foreignColumns:[ur.subject_id]}),c({name:"ovr_exc_programme_scopes_tier_fk",columns:[e.tier_id],foreignColumns:[br.tier_id]})]),Yn.table("redirects",{entity_id:tt("entity_id").notNull(),entity_source:ps("entity_source").notNull(),...Fs,description:ti("description"),redirect_entity_id:tt("redirect_entity_id"),redirect_entity_source:ps("redirect_entity_source"),redirect_type:ms("redirect_type").notNull(),redirect_url:ti("redirect_url"),...zs,...ys},e=>[Qi({columns:[e.entity_id,e.entity_source,e._state]}),de("redirect_has_exactly_one_target",t.sql`(redirect_url IS NOT NULL)::int + (redirect_entity_id IS NOT NULL)::int = 1`),de("redirect_entity_ref_complete",t.sql`(redirect_entity_id IS NULL) = (redirect_entity_source IS NULL)`)]);const Sr=Yn.table("choices",{choice_id:tt("choice_id").notNull().generatedByDefaultAsIdentity(),...Fs,unit_id:tt("unit_id").notNull(),...zs,...ys},e=>[Qi({columns:[e.choice_id,e._state]}),c({columns:[e.unit_id,e._state],foreignColumns:[Gs.unit_id,Gs._state]})]);Yn.table("choices_unit_variants",{unit_variant_id:tt("unit_variant_id").notNull(),choice_id:tt("choice_id").notNull(),...Bs,...xs,position:tt("position").notNull(),...zs,...ys},e=>[Qi({name:"choices_unit_var_pk",columns:[e.unit_variant_id,e.choice_id,e._unit_variant_state,e._choice_state]}),c({name:"choices_unit_var_unit_var_fk",columns:[e.unit_variant_id,e._unit_variant_state],foreignColumns:[vr.unit_variant_id,vr._state]}),c({name:"choices_unit_var_choice_fk",columns:[e.choice_id,e._choice_state],foreignColumns:[Sr.choice_id,Sr._state]}),Is({name:"choices_unit_var_state_coherence",columnA:e._unit_variant_state,columnB:e._choice_state})]);const xr=Yn.table("programmes",{programme_id:tt("programme_id").notNull().generatedByDefaultAsIdentity(),...Fs,exam_board_id:tt("exam_board_id"),pathway_id:tt("pathway_id"),subject_id:tt("subject_id").notNull(),tier_id:tt("tier_id"),year_id:tt("year_id").notNull(),deprecated_fields:ct("deprecated_fields"),legacy:Pe("legacy").notNull().default(!1),national_curriculum_content:Pe("national_curriculum_content").notNull().default(!1),programme_uid:Ae("programme_uid",{length:16}),...zs,...ys},e=>[Qi({columns:[e.programme_id,e._state]}),c({columns:[e.subject_id],foreignColumns:[ur.subject_id]}),c({columns:[e.year_id],foreignColumns:[cr.year_id]}),c({columns:[e.tier_id],foreignColumns:[br.tier_id]}),c({name:"programmes_exam_board_fk",columns:[e.exam_board_id],foreignColumns:[hr.exam_board_id]}),c({columns:[e.pathway_id],foreignColumns:[yr.pathway_id]}),_("programmes_factor_scope_unique").on(e.subject_id,e.year_id,e.tier_id,e.exam_board_id,e.pathway_id,e.legacy,e._state).nullsNotDistinct()]);Yn.table("inclusions",{programme_id:tt("programme_id").notNull(),position:tt("position").notNull(),...Cs,...As,...Os,choice_id:tt("choice_id"),unit_variant_id:tt("unit_variant_id"),...zs,...ys},e=>[Qi({name:"inclusions_pk",columns:[e.programme_id,e.position,e._programme_state]}),de("inclusions_xor_variant_choice",t.sql`num_nonnulls(${e.unit_variant_id}, ${e.choice_id}) = 1`),de("inclusions_choice_state_matches",t.sql`(${e.choice_id} is null) = (${e._choice_state} is null)`),de("inclusions_unit_variant_state_matches",t.sql`(${e.unit_variant_id} is null) = (${e._unit_variant_state} is null)`),Fi("inclusions_choice_unique").on(e.choice_id,e._choice_state).where(t.sql`${e.choice_id} is not null`),Fi("inclusions_programme_unit_variant_unique").on(e.programme_id,e.unit_variant_id,e._programme_state,e._unit_variant_state).where(t.sql`${e.unit_variant_id} is not null`),c({name:"inclusions_programme_fk",columns:[e.programme_id,e._programme_state],foreignColumns:[xr.programme_id,xr._state]}),c({name:"inclusions_choice_fk",columns:[e.choice_id,e._choice_state],foreignColumns:[Sr.choice_id,Sr._state]}),c({name:"inclusions_unit_var_fk",columns:[e.unit_variant_id,e._unit_variant_state],foreignColumns:[vr.unit_variant_id,vr._state]}),Ls({name:"inclusions_choice_state_coherence",columnA:e._programme_state,columnB:e._choice_state}),Ls({name:"inclusions_unit_var_state_coherence",columnA:e._programme_state,columnB:e._unit_variant_state})]);const kr=Yn.table("subject_phases",{subject_id:tt("subject_id").notNull(),phase_id:tt("phase_id").notNull(),...Fs,curriculum_intent:ti("curriculum_intent"),deprecated_fields:ct("deprecated_fields"),prior_knowledge_requirements:Pe("prior_knowledge_requirements").notNull().default(!1),related_units:Pe("related_units").notNull().default(!1),unit_description:Pe("unit_description").notNull().default(!1),...zs,...ys},e=>[Qi({columns:[e.subject_id,e.phase_id,e._state]}),c({columns:[e.subject_id],foreignColumns:[ur.subject_id]}),c({columns:[e.phase_id],foreignColumns:[lr.phase_id]})]),Cr=Yn.table("threads",{thread_id:tt("thread_id").notNull().generatedByDefaultAsIdentity(),...Ns,deprecated_fields:ct("deprecated_fields"),description:ti("description"),slug:ti("slug"),thread_uid:Ae("thread_uid",{length:16}),title:ti("title"),...zs,...ys},e=>[Qi({columns:[e.thread_id,e._state]})]);Yn.table("subject_phase_threads",{subject_id:tt("subject_id").notNull(),phase_id:tt("phase_id").notNull(),thread_id:tt("thread_id").notNull(),...js,...Ts,deprecated_fields:ct("deprecated_fields"),position:tt("position").notNull(),...zs,...ys},e=>[Qi({name:"subject_phase_threads_pk",columns:[e.subject_id,e.phase_id,e.thread_id,e._subject_phase_state,e._thread_state]}),c({name:"subject_phase_threads_subject_phase_fk",columns:[e.subject_id,e.phase_id,e._subject_phase_state],foreignColumns:[kr.subject_id,kr.phase_id,kr._state]}),c({name:"subject_phase_threads_thread_fk",columns:[e.thread_id,e._thread_state],foreignColumns:[Cr.thread_id,Cr._state]}),Is({name:"subject_phase_threads_state_coherence",columnA:e._subject_phase_state,columnB:e._thread_state})]),Yn.table("unit_threads",{thread_id:tt("thread_id").notNull(),unit_id:tt("unit_id").notNull(),...Ts,...Ps,deprecated_fields:ct("deprecated_fields"),position:tt("position").notNull(),...zs,...ys},e=>[Qi({name:"unit_threads_pk",columns:[e.thread_id,e.unit_id,e._thread_state,e._unit_state]}),c({name:"unit_threads_thread_fk",columns:[e.thread_id,e._thread_state],foreignColumns:[Cr.thread_id,Cr._state]}),c({name:"unit_threads_unit_fk",columns:[e.unit_id,e._unit_state],foreignColumns:[Gs.unit_id,Gs._state]}),Is({name:"unit_threads_state_coherence",columnA:e._thread_state,columnB:e._unit_state})]),Yn.table("unit_catalogue",{subject_id:tt("subject_id").notNull(),year_id:tt("year_id").notNull(),unit_id:tt("unit_id").notNull(),...Fs,...zs,...ys},e=>[Qi({columns:[e.subject_id,e.year_id,e.unit_id,e._state]}),c({columns:[e.unit_id,e._state],foreignColumns:[Gs.unit_id,Gs._state]}),c({columns:[e.subject_id],foreignColumns:[ur.subject_id]}),c({columns:[e.year_id],foreignColumns:[cr.year_id]})]),Yn.table("unit_lessons",{unit_id:tt("unit_id").notNull(),lesson_id:tt("lesson_id").notNull(),...Ps,...ks,position:tt("position").notNull(),...zs,...ys},e=>[Qi({name:"unit_lessons_pk",columns:[e.unit_id,e.lesson_id,e._unit_state,e._lesson_state]}),c({name:"unit_lessons_unit_fk",columns:[e.unit_id,e._unit_state],foreignColumns:[Gs.unit_id,Gs._state]}),c({name:"unit_lessons_lesson_fk",columns:[e.lesson_id,e._lesson_state],foreignColumns:[Vs.lesson_id,Vs._state]}),Is({name:"unit_lessons_state_coherence",columnA:e._unit_state,columnB:e._lesson_state})]),Yn.table("unit_variant_lessons",{unit_variant_id:tt("unit_variant_id").notNull(),lesson_id:tt("lesson_id").notNull(),...Bs,...ks,deprecated_fields:ct("deprecated_fields"),position:tt("position").notNull(),...zs,...ys},e=>[Qi({name:"unit_var_lessons_pk",columns:[e.unit_variant_id,e.lesson_id,e._unit_variant_state,e._lesson_state]}),c({name:"unit_var_lessons_unit_var_fk",columns:[e.unit_variant_id,e._unit_variant_state],foreignColumns:[vr.unit_variant_id,vr._state]}),c({name:"unit_var_lessons_lesson_fk",columns:[e.lesson_id,e._lesson_state],foreignColumns:[Vs.lesson_id,Vs._state]}),Is({name:"unit_var_lessons_state_coherence",columnA:e._unit_variant_state,columnB:e._lesson_state})]),Yn.table("unit_features",{unit_id:tt("unit_id").notNull(),feature_id:tt("feature_id").notNull(),...Fs,value:ti("value"),...zs,...ys},e=>[Qi({columns:[e.unit_id,e.feature_id,e._state]}),c({columns:[e.unit_id,e._state],foreignColumns:[Gs.unit_id,Gs._state]}),c({columns:[e.feature_id],foreignColumns:[sr.feature_id]})]);const qr=es.enum("lesson_component_operation_status_enum",["api_neutral","api_in_progress","api_failed","ingest_queued","ingest_in_progress","ingest_failed","ingest_completed"]),$r=es.enum("lesson_component_status_retirement_enum",["superseded","draft_discarded","component_expired","component_removed","orphaned"]),jr=es.table("lesson_component_status",{lesson_component_status_id:di("lesson_component_status_id").primaryKey().defaultRandom(),lesson_component_id:tt("lesson_component_id").notNull(),lesson_component_type:hs("lesson_component_type").notNull(),active_media_id:tt("active_media_id"),active_media_type:fs("active_media_type"),last_error_location:ti("last_error_location"),last_error_message:ti("last_error_message"),last_error_timestamp:ui("last_error_timestamp"),last_ingest_id:di("last_ingest_id"),operation_status:qr("operation_status").notNull().default("api_neutral"),retired_at:ui("retired_at",{withTimezone:!0}),retired_reason:$r("retired_reason"),...ys},e=>[de("lesson_comp_status_retired_both",t.sql`(${e.retired_at} is null) = (${e.retired_reason} is null)`),Fi("lesson_comp_status_live_unq").on(e.lesson_component_id,e.lesson_component_type).where(t.sql`${e.retired_at} is null`)]),Tr=es.enum("lesson_status_enum",["api_neutral","ingest_queued","ingest_in_progress","ingest_complete","ingest_failed"]);es.table("lesson_status",{lesson_id:tt("lesson_id").primaryKey(),approved:Pe("approved").notNull().default(!1),last_approved:ui("last_approved"),last_error_location:ti("last_error_location"),last_error_message:ti("last_error_message"),last_error_timestamp:ui("last_error_timestamp"),status:Tr("status").notNull().default("api_neutral"),...ys});const Pr=es.enum("media_status_enum",["neutral","in_progress","failed"]),Br=es.enum("media_status_retirement_enum",["superseded","media_retired","orphaned"]),Dr=es.table("media_status",{media_status_id:di("media_status_id").primaryKey().defaultRandom(),media_id:tt("media_id").notNull(),media_type:fs("media_type").notNull(),last_error_location:ti("last_error_location"),last_error_message:ti("last_error_message"),last_error_timestamp:ui("last_error_timestamp"),last_lesson_component_id:tt("last_lesson_component_id"),last_lesson_component_type:hs("last_lesson_component_type"),retired_at:ui("retired_at",{withTimezone:!0}),retired_reason:Br("retired_reason"),status:Pr("status").notNull().default("neutral"),...ys},e=>[de("media_status_retired_both",t.sql`(${e.retired_at} is null) = (${e.retired_reason} is null)`),Fi("media_status_live_unq").on(e.media_id,e.media_type).where(t.sql`${e.retired_at} is null`)]);es.table("mutations_log",{mutations_log_id:di("mutations_log_id").primaryKey().defaultRandom(),actor_role:ti("actor_role"),actor_type:ti("actor_type"),app_id:ti("app_id"),changes:ct("changes").notNull(),operation:gs("operation").notNull(),record_key:ct("record_key").notNull(),table_name:ti("table_name").notNull(),...bs},e=>[zi("idx_mutations_log_record_key").using("gin",e.record_key)]),es.table("release_snapshots",{release_snapshot_id:di("release_snapshot_id").primaryKey().defaultRandom(),_release_id:tt("_release_id"),source_created_at:ui("source_created_at"),source_id:tt("source_id"),source_row:ct("source_row"),source_schema:ti("source_schema").default(""),source_state:ts("source_state").notNull(),source_table:ti("source_table").default(""),source_uid:Ae("source_uid",{length:16}),source_updated_at:ui("source_updated_at")},e=>[c({columns:[e._release_id],foreignColumns:[ws.release_id]}),zi("release_snapshots_source_idx").on(e.source_schema,e.source_table,e.source_id),zi("release_snapshots_release_idx").on(e._release_id)]);const Ar=es.enum("contract_log_event_type_enum",["works_change","contract_change","works_added_to_contract"]);es.table("tpc_contract_log",{tpc_contract_log_id:tt("tpc_contract_log_id").primaryKey().generatedByDefaultAsIdentity(),tpc_contract_id:tt("tpc_contract_id").notNull(),changed_at:ui("changed_at",{withTimezone:!0}).notNull(),event_type:Ar("event_type").notNull(),payload:ct("payload")},e=>[c({name:"tpc_contract_log_tpc_contract_fk",columns:[e.tpc_contract_id],foreignColumns:[ir.tpc_contract_id]})]);const Or=es.enum("restrictions_type_enum",["Restrictions 1","Restrictions 2","Restrictions 3","Restrictions 4","Restrictions 5","Restrictions 6","Restrictions 7","Additional Restrictions"]),Ir=es.table("tpc_restriction_definitions",{tpc_restriction_definition_id:tt("tpc_restriction_definition_id").primaryKey().generatedByDefaultAsIdentity(),restriction_text:ti("restriction_text").notNull(),type:Or("type").notNull(),...ys},e=>[_("tpc_restriction_definitions_type_unique").on(e.type)]);es.table("tpc_restrictions",{tpc_contract_id:tt("tpc_contract_id").notNull(),tpc_restriction_definition_id:tt("tpc_restriction_definition_id").notNull(),...Fs,restriction_override:ti("restriction_override"),...ys},e=>[Qi({name:"tpc_restrictions_pk",columns:[e.tpc_contract_id,e.tpc_restriction_definition_id,e._state]}),c({name:"tpc_restrictions_tpc_contract_fk",columns:[e.tpc_contract_id],foreignColumns:[ir.tpc_contract_id]}),c({name:"tpc_restrictions_tpc_restriction_definition_fk",columns:[e.tpc_restriction_definition_id],foreignColumns:[Ir.tpc_restriction_definition_id]})]),Zn.view("unit_variant_exam_board_specs",{unit_variant_id:tt("unit_variant_id"),exam_board_spec_id:tt("exam_board_spec_id"),position:tt("position"),_state:ts("_state"),is_override:Pe("is_override")}).as(t.sql`
|
|
7
|
+
`;await t.execute(Z`CREATE SCHEMA IF NOT EXISTS ${Z.identifier(s)}`),await t.execute(r);const o=(await t.all(Z`select id, hash, created_at from ${Z.identifier(s)}.${Z.identifier(n)} order by created_at desc limit 1`))[0];await t.transaction(async t=>{for await(const i of e)if(!o||Number(o.created_at)<i.folderMillis){for(const e of i.sql)await t.execute(Z.raw(e));await t.execute(Z`insert into ${Z.identifier(s)}.${Z.identifier(n)} ("hash", "created_at") values(${i.hash}, ${i.folderMillis})`)}})}escapeName(e){return`"${e.replace(/"/g,'""')}"`}escapeParam(e){return`$${e+1}`}escapeString(e){return`'${e.replace(/'/g,"''")}'`}buildWithCTE(e){if(!e?.length)return;const t=[Z`with `];for(const[i,n]of e.entries())t.push(Z`${Z.identifier(n._.alias)} as (${n._.sql})`),i<e.length-1&&t.push(Z`, `);return t.push(Z` `),Z.join(t)}buildDeleteQuery({table:e,where:t,returning:i,withList:n}){return Z`${this.buildWithCTE(n)}delete from ${e}${t?Z` where ${t}`:void 0}${i?Z` returning ${this.buildSelection(i,{isSingleTable:!0})}`:void 0}`}buildUpdateSet(e,t){const i=e[K.Symbol.Columns],n=Object.keys(i).filter(e=>void 0!==t[e]||void 0!==i[e]?.onUpdateFn),r=n.length;return Z.join(n.flatMap((e,n)=>{const o=i[e],a=o.onUpdateFn?.(),l=t[e]??(s(a,W)?a:Z.param(a,o)),u=Z`${Z.identifier(this.casing.getColumnCasing(o))} = ${l}`;return n<r-1?[u,Z.raw(", ")]:[u]}))}buildUpdateQuery({table:e,set:t,where:i,returning:n,withList:s,from:r,joins:o}){const a=this.buildWithCTE(s),l=e[Bi.Symbol.Name],u=e[Bi.Symbol.Schema],c=e[Bi.Symbol.OriginalName],_=l===c?void 0:l,d=Z`${u?Z`${Z.identifier(u)}.`:void 0}${Z.identifier(c)}${_&&Z` ${Z.identifier(_)}`}`,m=this.buildUpdateSet(e,t),p=r&&Z.join([Z.raw(" from "),this.buildFromTable(r)]);return Z`${a}update ${d} set ${m}${p}${this.buildJoins(o)}${i?Z` where ${i}`:void 0}${n?Z` returning ${this.buildSelection(n,{isSingleTable:!r})}`:void 0}`}buildSelection(e,{isSingleTable:t=!1}={}){const i=e.length,n=e.flatMap(({field:e},n)=>{const o=[];if(s(e,W.Aliased)&&e.isSelectionField)o.push(Z.identifier(e.fieldAlias));else if(s(e,W.Aliased)||s(e,W)){const i=s(e,W.Aliased)?e.sql:e;t?o.push(new W(i.queryChunks.map(e=>s(e,w)?Z.identifier(this.casing.getColumnCasing(e)):e))):o.push(i),s(e,W.Aliased)&&o.push(Z` as ${Z.identifier(e.fieldAlias)}`)}else if(s(e,r))t?o.push(Z.identifier(this.casing.getColumnCasing(e))):o.push(e);else if(s(e,P)){const t=Object.entries(e._.selectedFields);if(1===t.length){const i=t[0][1],n=s(i,W)?i.decoder:s(i,r)?{mapFromDriverValue:e=>i.mapFromDriverValue(e)}:i.sql.decoder;n&&(e._.sql.decoder=n)}o.push(e)}return n<i-1&&o.push(Z`, `),o});return Z.join(n)}buildJoins(e){if(!e||0===e.length)return;const t=[];for(const[i,n]of e.entries()){0===i&&t.push(Z` `);const r=n.table,o=n.lateral?Z` lateral`:void 0,a=n.on?Z` on ${n.on}`:void 0;if(s(r,Bi)){const e=r[Bi.Symbol.Name],i=r[Bi.Symbol.Schema],s=r[Bi.Symbol.OriginalName],l=e===s?void 0:n.alias;t.push(Z`${Z.raw(n.joinType)} join${o} ${i?Z`${Z.identifier(i)}.`:void 0}${Z.identifier(s)}${l&&Z` ${Z.identifier(l)}`}${a}`)}else if(s(r,ne)){const e=r[A].name,i=r[A].schema,s=r[A].originalName,l=e===s?void 0:n.alias;t.push(Z`${Z.raw(n.joinType)} join${o} ${i?Z`${Z.identifier(i)}.`:void 0}${Z.identifier(s)}${l&&Z` ${Z.identifier(l)}`}${a}`)}else t.push(Z`${Z.raw(n.joinType)} join${o} ${r}${a}`);i<e.length-1&&t.push(Z` `)}return Z.join(t)}buildFromTable(e){if(s(e,K)&&e[K.Symbol.IsAlias]){let t=Z`${Z.identifier(e[K.Symbol.OriginalName])}`;return e[K.Symbol.Schema]&&(t=Z`${Z.identifier(e[K.Symbol.Schema])}.${t}`),Z`${t} ${Z.identifier(e[K.Symbol.Name])}`}return e}buildSelectQuery({withList:e,fields:t,fieldsFlat:i,where:n,having:o,table:a,joins:l,orderBy:u,groupBy:c,limit:_,offset:d,lockingClause:m,distinct:p,setOperators:g}){const f=i??me(t);for(const e of f)if(s(e.field,r)&&U(e.field.table)!==(s(a,P)?a._.alias:s(a,xn)?a[A].name:s(a,W)?void 0:U(a))&&!(e=>l?.some(({alias:t})=>t===(e[K.Symbol.IsAlias]?U(e):e[K.Symbol.BaseName])))(e.field.table)){const t=U(e.field.table);throw new Error(`Your "${e.path.join("->")}" field references a column "${t}"."${e.field.name}", but the table "${t}" is not part of the query! Did you forget to join it?`)}const h=!l||0===l.length,y=this.buildWithCTE(e);let b;p&&(b=!0===p?Z` distinct`:Z` distinct on (${Z.join(p.on,Z`, `)})`);const v=this.buildSelection(f,{isSingleTable:h}),w=this.buildFromTable(a),N=this.buildJoins(l),S=n?Z` where ${n}`:void 0,x=o?Z` having ${o}`:void 0;let k,C;u&&u.length>0&&(k=Z` order by ${Z.join(u,Z`, `)}`),c&&c.length>0&&(C=Z` group by ${Z.join(c,Z`, `)}`);const q="object"==typeof _||"number"==typeof _&&_>=0?Z` limit ${_}`:void 0,$=d?Z` offset ${d}`:void 0,j=Z.empty();if(m){const e=Z` for ${Z.raw(m.strength)}`;m.config.of&&e.append(Z` of ${Z.join(Array.isArray(m.config.of)?m.config.of:[m.config.of],Z`, `)}`),m.config.noWait?e.append(Z` nowait`):m.config.skipLocked&&e.append(Z` skip locked`),j.append(e)}const T=Z`${y}select${b} ${v} from ${w}${N}${S}${C}${x}${k}${q}${$}${j}`;return g.length>0?this.buildSetOperations(T,g):T}buildSetOperations(e,t){const[i,...n]=t;if(!i)throw new Error("Cannot pass undefined values to any set operator");return 0===n.length?this.buildSetOperationQuery({leftSelect:e,setOperator:i}):this.buildSetOperations(this.buildSetOperationQuery({leftSelect:e,setOperator:i}),n)}buildSetOperationQuery({leftSelect:e,setOperator:{type:t,isAll:i,rightSelect:n,limit:r,orderBy:o,offset:a}}){const l=Z`(${e.getSQL()}) `,u=Z`(${n.getSQL()})`;let c;if(o&&o.length>0){const e=[];for(const t of o)if(s(t,w))e.push(Z.identifier(t.name));else if(s(t,W)){for(let e=0;e<t.queryChunks.length;e++){const i=t.queryChunks[e];s(i,w)&&(t.queryChunks[e]=Z.identifier(i.name))}e.push(Z`${t}`)}else e.push(Z`${t}`);c=Z` order by ${Z.join(e,Z`, `)} `}const _="object"==typeof r||"number"==typeof r&&r>=0?Z` limit ${r}`:void 0,d=Z.raw(`${t} ${i?"all ":""}`);return Z`${l}${d}${u}${c}${_}${a?Z` offset ${a}`:void 0}`}buildInsertQuery({table:e,values:t,onConflict:i,returning:n,withList:r,select:o,overridingSystemValue_:a}){const l=[],u=e[K.Symbol.Columns],c=Object.entries(u).filter(([e,t])=>!t.shouldDisableInsert()),_=c.map(([,e])=>Z.identifier(this.casing.getColumnCasing(e)));if(o){const e=t;s(e,W)?l.push(e):l.push(e.getSQL())}else{const e=t;l.push(Z.raw("values "));for(const[t,i]of e.entries()){const n=[];for(const[e,t]of c){const r=i[e];if(void 0===r||s(r,Y)&&void 0===r.value)if(void 0!==t.defaultFn){const e=t.defaultFn(),i=s(e,W)?e:Z.param(e,t);n.push(i)}else if(t.default||void 0===t.onUpdateFn)n.push(Z`default`);else{const e=t.onUpdateFn(),i=s(e,W)?e:Z.param(e,t);n.push(i)}else n.push(r)}l.push(n),t<e.length-1&&l.push(Z`, `)}}const d=this.buildWithCTE(r),m=Z.join(l);return Z`${d}insert into ${e} ${_} ${!0===a?Z`overriding system value `:void 0}${m}${i?Z` on conflict ${i}`:void 0}${n?Z` returning ${this.buildSelection(n,{isSingleTable:!0})}`:void 0}`}buildRefreshMaterializedViewQuery({view:e,concurrently:t,withNoData:i}){return Z`refresh materialized view${t?Z` concurrently`:void 0} ${e}${i?Z` with no data`:void 0}`}prepareTyping(e){return s(e,ut)||s(e,ot)?"json":s(e,St)?"decimal":s(e,ni)?"time":s(e,oi)||s(e,li)?"timestamp":s(e,Ke)||s(e,Me)?"date":s(e,_i)?"uuid":"none"}sqlToQuery(e,t){return e.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:t})}buildRelationalQueryWithoutPK({fullSchema:e,schema:t,tableNamesMap:i,table:n,tableConfig:o,queryConfig:a,tableAlias:l,nestedQueryRelation:u,joinOn:c}){let _,d,m,p=[],g=[];const f=[];if(!0===a){p=Object.entries(o.columns).map(([e,t])=>({dbKey:t.name,tsKey:e,field:ae(t,l),relationTableTsKey:void 0,isJson:!1,selection:[]}))}else{const n=Object.fromEntries(Object.entries(o.columns).map(([e,t])=>[e,ae(t,l)]));if(a.where){const e="function"==typeof a.where?a.where(n,{and:Yi,between:dn,eq:Gi,exists:cn,gt:tn,gte:nn,ilike:fn,inArray:on,isNull:ln,isNotNull:un,like:pn,lt:sn,lte:rn,ne:Xi,not:en,notBetween:mn,notExists:_n,notLike:gn,notIlike:hn,notInArray:an,or:Zi,sql:Z}):a.where;m=e&&ue(e,l)}const u=[];let c=[];if(a.columns){let e=!1;for(const[t,i]of Object.entries(a.columns))void 0!==i&&t in o.columns&&(e||!0!==i||(e=!0),c.push(t));c.length>0&&(c=e?c.filter(e=>!0===a.columns?.[e]):Object.keys(o.columns).filter(e=>!c.includes(e)))}else c=Object.keys(o.columns);for(const e of c){const t=o.columns[e];u.push({tsKey:e,value:t})}let h,y=[];if(a.with&&(y=Object.entries(a.with).filter(e=>!!e[1]).map(([e,t])=>({tsKey:e,queryConfig:t,relation:o.relations[e]}))),a.extras){h="function"==typeof a.extras?a.extras(n,{sql:Z}):a.extras;for(const[e,t]of Object.entries(h))u.push({tsKey:e,value:le(t,l)})}for(const{tsKey:e,value:t}of u)p.push({dbKey:s(t,W.Aliased)?t.fieldAlias:o.columns[e].name,tsKey:e,field:s(t,r)?ae(t,l):t,relationTableTsKey:void 0,isJson:!1,selection:[]});let b="function"==typeof a.orderBy?a.orderBy(n,{sql:Z,asc:yn,desc:bn}):a.orderBy??[];Array.isArray(b)||(b=[b]),g=b.map(e=>s(e,r)?ae(e,l):ue(e,l)),_=a.limit,d=a.offset;for(const{tsKey:n,queryConfig:r,relation:o}of y){const a=Sn(t,i,o),u=i[M(o.referencedTable)],c=`${l}_${n}`,_=Yi(...a.fields.map((e,t)=>Gi(ae(a.references[t],c),ae(e,l)))),d=this.buildRelationalQueryWithoutPK({fullSchema:e,schema:t,tableNamesMap:i,table:e[u],tableConfig:t[u],queryConfig:s(o,wn)?!0===r?{limit:1}:{...r,limit:1}:r,tableAlias:c,joinOn:_,nestedQueryRelation:o}),m=Z`${Z.identifier(c)}.${Z.identifier("data")}`.as(n);f.push({on:Z`true`,table:new P(d.sql,{},c),alias:c,joinType:"left",lateral:!0}),p.push({dbKey:n,tsKey:n,field:m,relationTableTsKey:u,isJson:!0,selection:d.selection})}}if(0===p.length)throw new Wi({message:`No fields selected for table "${o.tsName}" ("${l}")`});let h;if(m=Yi(c,m),u){let e=Z`json_build_array(${Z.join(p.map(({field:e,tsKey:t,isJson:i})=>i?Z`${Z.identifier(`${l}_${t}`)}.${Z.identifier("data")}`:s(e,W.Aliased)?e.sql:e),Z`, `)})`;s(u,Nn)&&(e=Z`coalesce(json_agg(${e}${g.length>0?Z` order by ${Z.join(g,Z`, `)}`:void 0}), '[]'::json)`);const t=[{dbKey:"data",tsKey:"data",field:e.as("data"),isJson:!0,relationTableTsKey:o.tsName,selection:p}];void 0!==_||void 0!==d||g.length>0?(h=this.buildSelectQuery({table:oe(n,l),fields:{},fieldsFlat:[{path:[],field:Z.raw("*")}],where:m,limit:_,offset:d,orderBy:g,setOperators:[]}),m=void 0,_=void 0,d=void 0,g=[]):h=oe(n,l),h=this.buildSelectQuery({table:s(h,Bi)?h:new P(h,{},l),fields:{},fieldsFlat:t.map(({field:e})=>({path:[],field:s(e,r)?ae(e,l):e})),joins:f,where:m,limit:_,offset:d,orderBy:g,setOperators:[]})}else h=this.buildSelectQuery({table:oe(n,l),fields:{},fieldsFlat:p.map(({field:e})=>({path:[],field:s(e,r)?ae(e,l):e})),joins:f,where:m,limit:_,offset:d,orderBy:g,setOperators:[]});return{tableTsKey:o.tsName,sql:h,selection:p}}}class Cn{static[n]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class qn{static[n]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(e){this.fields=e.fields,this.session=e.session,this.dialect=e.dialect,e.withList&&(this.withList=e.withList),this.distinct=e.distinct}authToken;setToken(e){return this.authToken=e,this}from(e){const t=!!this.fields,i=e;let n;return n=this.fields?this.fields:s(i,P)?Object.fromEntries(Object.keys(i._.selectedFields).map(e=>[e,i[e]])):s(i,xn)?i[A].selectedFields:s(i,W)?{}:ge(i),new jn({table:i,fields:n,isPartialSelect:t,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}}class $n extends Cn{static[n]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;cacheConfig=void 0;usedTables=new Set;constructor({table:e,fields:t,isPartialSelect:i,session:n,dialect:s,withList:r,distinct:o}){super(),this.config={withList:r,table:e,fields:{...t},distinct:o,setOperators:[]},this.isPartialSelect=i,this.session=n,this.dialect=s,this._={selectedFields:t,config:this.config},this.tableName=fe(e),this.joinsNotNullableMap="string"==typeof this.tableName?{[this.tableName]:!0}:{};for(const t of Wn(e))this.usedTables.add(t)}getUsedTables(){return[...this.usedTables]}createJoin(e,t){return(i,n)=>{const r=this.tableName,o=fe(i);for(const e of Wn(i))this.usedTables.add(e);if("string"==typeof o&&this.config.joins?.some(e=>e.alias===o))throw new Error(`Alias "${o}" is already used in this query`);if(!this.isPartialSelect&&(1===Object.keys(this.joinsNotNullableMap).length&&"string"==typeof r&&(this.config.fields={[r]:this.config.fields}),"string"==typeof o&&!s(i,W))){const e=s(i,P)?i._.selectedFields:s(i,ne)?i[A].selectedFields:i[K.Symbol.Columns];this.config.fields[o]=e}if("function"==typeof n&&(n=n(new Proxy(this.config.fields,new ji({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.joins||(this.config.joins=[]),this.config.joins.push({on:n,table:i,joinType:e,alias:o,lateral:t}),"string"==typeof o)switch(e){case"left":this.joinsNotNullableMap[o]=!1;break;case"right":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[o]=!0;break;case"cross":case"inner":this.joinsNotNullableMap[o]=!0;break;case"full":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[o]=!1}return this}}leftJoin=this.createJoin("left",!1);leftJoinLateral=this.createJoin("left",!0);rightJoin=this.createJoin("right",!1);innerJoin=this.createJoin("inner",!1);innerJoinLateral=this.createJoin("inner",!0);fullJoin=this.createJoin("full",!1);crossJoin=this.createJoin("cross",!1);crossJoinLateral=this.createJoin("cross",!0);createSetOperator(e,t){return i=>{const n="function"==typeof i?i(Pn()):i;if(!pe(this.getSelectedFields(),n.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:e,isAll:t,rightSelect:n}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);intersectAll=this.createSetOperator("intersect",!0);except=this.createSetOperator("except",!1);exceptAll=this.createSetOperator("except",!0);addSetOperators(e){return this.config.setOperators.push(...e),this}where(e){return"function"==typeof e&&(e=e(new Proxy(this.config.fields,new ji({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.where=e,this}having(e){return"function"==typeof e&&(e=e(new Proxy(this.config.fields,new ji({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.having=e,this}groupBy(...e){if("function"==typeof e[0]){const t=e[0](new Proxy(this.config.fields,new ji({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(t)?t:[t]}else this.config.groupBy=e;return this}orderBy(...e){if("function"==typeof e[0]){const t=e[0](new Proxy(this.config.fields,new ji({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),i=Array.isArray(t)?t:[t];this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=i:this.config.orderBy=i}else{const t=e;this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=t:this.config.orderBy=t}return this}limit(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).limit=e:this.config.limit=e,this}offset(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).offset=e:this.config.offset=e,this}for(e,t={}){return this.config.lockingClause={strength:e,config:t},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){const{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}as(e){const t=[];if(t.push(...Wn(this.config.table)),this.config.joins)for(const e of this.config.joins)t.push(...Wn(e.table));return new Proxy(new P(this.getSQL(),this.config.fields,e,!1,[...new Set(t)]),new ji({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new ji({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}$withCache(e){return this.cacheConfig=void 0===e?{config:{},enable:!0,autoInvalidate:!0}:!1===e?{enable:!1}:{enable:!0,autoInvalidate:!0,...e},this}}class jn extends $n{static[n]="PgSelect";_prepare(e){const{session:t,config:i,dialect:n,joinsNotNullableMap:s,authToken:r,cacheConfig:o,usedTables:a}=this;if(!t)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");const{fields:l}=i;return D.startActiveSpan("drizzle.prepareQuery",()=>{const i=me(l),u=t.prepareQuery(n.sqlToQuery(this.getSQL()),i,e,!0,void 0,{type:"select",tables:[...a]},o);return u.joinsNotNullableMap=s,u.setToken(r)})}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=e=>D.startActiveSpan("drizzle.operation",()=>this._prepare().execute(e,this.authToken))}function Tn(e,t){return(i,n,...s)=>{const r=[n,...s].map(i=>({type:e,isAll:t,rightSelect:i}));for(const e of r)if(!pe(i.getSelectedFields(),e.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return i.addSetOperators(r)}}!function(e,t){for(const i of t)for(const t of Object.getOwnPropertyNames(i.prototype))"constructor"!==t&&Object.defineProperty(e.prototype,t,Object.getOwnPropertyDescriptor(i.prototype,t)||Object.create(null))}(jn,[$i]);const Pn=()=>({union:Bn,unionAll:Dn,intersect:An,intersectAll:On,except:In,exceptAll:Ln}),Bn=Tn("union",!1),Dn=Tn("union",!0),An=Tn("intersect",!1),On=Tn("intersect",!0),In=Tn("except",!1),Ln=Tn("except",!0);class zn{static[n]="PgQueryBuilder";dialect;dialectConfig;constructor(e){this.dialect=s(e,kn)?e:void 0,this.dialectConfig=s(e,kn)?void 0:e}$with=(e,t)=>{const i=this;return{as:n=>("function"==typeof n&&(n=n(i)),new Proxy(new B(n.getSQL(),t??("getSelectedFields"in n?n.getSelectedFields()??{}:{}),e,!0),new ji({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"})))}};with(...e){const t=this;return{select:function(i){return new qn({fields:i??void 0,session:void 0,dialect:t.getDialect(),withList:e})},selectDistinct:function(e){return new qn({fields:e??void 0,session:void 0,dialect:t.getDialect(),distinct:!0})},selectDistinctOn:function(e,i){return new qn({fields:i??void 0,session:void 0,dialect:t.getDialect(),distinct:{on:e}})}}}select(e){return new qn({fields:e??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(e){return new qn({fields:e??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(e,t){return new qn({fields:t??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:e}})}getDialect(){return this.dialect||(this.dialect=new kn(this.dialectConfig)),this.dialect}}class Fn{constructor(e,t){this.name=e,this.schema=t}static[n]="PgDefaultViewBuilderCore";config={};with(e){return this.config.with=e,this}}class Qn extends Fn{static[n]="PgViewBuilder";as(e){"function"==typeof e&&(e=e(new zn));const t=new ji({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}),i=new Proxy(e.getSelectedFields(),t);return new Proxy(new Mn({pgConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:i,query:e.getSQL().inlineParams()}}),t)}}class Vn extends Fn{static[n]="PgManualViewBuilder";columns;constructor(e,t,i){super(e,i),this.columns=ge(Ai(e,t))}existing(){return new Proxy(new Mn({pgConfig:void 0,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:void 0}}),new ji({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}as(e){return new Proxy(new Mn({pgConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:e.inlineParams()}}),new ji({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}}class En{constructor(e,t){this.name=e,this.schema=t}static[n]="PgMaterializedViewBuilderCore";config={};using(e){return this.config.using=e,this}with(e){return this.config.with=e,this}tablespace(e){return this.config.tablespace=e,this}withNoData(){return this.config.withNoData=!0,this}}class Kn extends En{static[n]="PgMaterializedViewBuilder";as(e){"function"==typeof e&&(e=e(new zn));const t=new ji({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}),i=new Proxy(e.getSelectedFields(),t);return new Proxy(new Jn({pgConfig:{with:this.config.with,using:this.config.using,tablespace:this.config.tablespace,withNoData:this.config.withNoData},config:{name:this.name,schema:this.schema,selectedFields:i,query:e.getSQL().inlineParams()}}),t)}}class Un extends En{static[n]="PgManualMaterializedViewBuilder";columns;constructor(e,t,i){super(e,i),this.columns=ge(Ai(e,t))}existing(){return new Proxy(new Jn({pgConfig:{tablespace:this.config.tablespace,using:this.config.using,with:this.config.with,withNoData:this.config.withNoData},config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:void 0}}),new ji({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}as(e){return new Proxy(new Jn({pgConfig:{tablespace:this.config.tablespace,using:this.config.using,with:this.config.with,withNoData:this.config.withNoData},config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:e.inlineParams()}}),new ji({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}}class Mn extends xn{static[n]="PgView";[Ki];constructor({pgConfig:e,config:t}){super(t),e&&(this[Ki]={with:e.with})}}const Rn=Symbol.for("drizzle:PgMaterializedViewConfig");class Jn extends xn{static[n]="PgMaterializedView";[Rn];constructor({pgConfig:e,config:t}){super(t),this[Rn]={with:e?.with,using:e?.using,tablespace:e?.tablespace,withNoData:e?.withNoData}}}function Wn(e){return s(e,Bi)?[e[O]?`${e[O]}.${e[K.Symbol.BaseName]}`:e[K.Symbol.BaseName]]:s(e,P)?e._.usedTables??[]:s(e,W)?e.usedTables??[]:[]}class Hn{constructor(e,t,i){this.seqName=e,this.seqOptions=t,this.schema=i}static[n]="PgSequence"}class Gn{constructor(e){this.schemaName=e}static[n]="PgSchema";table=(e,t,i)=>Di(e,t,i,this.schemaName);view=(e,t)=>function(e,t,i){return t?new Vn(e,t,i):new Qn(e,i)}(e,t,this.schemaName);materializedView=(e,t)=>function(e,t,i){return t?new Un(e,t,i):new Kn(e,i)}(e,t,this.schemaName);enum(e,t){return Array.isArray(t)?function(e,t,i){const n=Object.assign(e=>new j(e??"",n),{enumName:e,enumValues:t,schema:i,[$]:!0});return n}(e,[...t],this.schemaName):function(e,t,i){const n=Object.assign(e=>new C(e??"",n),{enumName:e,enumValues:Object.values(t),schema:i,[$]:!0});return n}(e,t,this.schemaName)}sequence=(e,t)=>function(e,t,i){return new Hn(e,t,i)}(e,t,this.schemaName);getSQL(){return new W([Z.identifier(this.schemaName)])}shouldOmitSQLParens(){return!0}}function Xn(e){if("public"===e)throw new Error("You can't specify 'public' as schema name. Postgres is using public schema by default. If you want to use 'public' schema, just use pgTable() instead of creating a schema");return new Gn(e)}const Yn=Xn("raw"),Zn=Xn("rendered"),es=Xn("internal");Xn("cached");const ts=Yn.enum("state",["draft","published","expired"]),is=Yn.enum("restriction_level",["ogl_compatible","ogl_equivalent","restricted","highly_restricted"]),ns=Yn.enum("media_provenance",["oak_created","oak_illustration","partner_created","creative_commons","pixabay","pexels","unsplash","openverse","freesvg","needpix","bridgeman","shutterstock","dall_e","adobe_firefly","other"]),ss=Yn.enum("acquisition_basis",["oak_owned","public_domain","gratis","paid","creative_commons"]),rs=Yn.enum("permission_status",["not_required","granted","denied"]),os=Yn.enum("territory",["uk","worldwide","worldwide_no_usa","other_territory"]),as=Yn.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"]),ls=Yn.enum("question_type",["explanatory-text","match","multiple-choice","order","short-answer","text"]),us=Yn.enum("tag_category",["discipline","domain","world_view"]),cs=Yn.enum("media_kind",["video","sound"]),_s=Yn.enum("redirect_type",["301","302","307","308"]),ds=Yn.enum("redirect_entity_source",["lessons","units","programmes","subjects"]),ms=es.enum("operation",["insert","update","delete"]),ps=es.enum("media_type_enum",["video","sound","gdrive_file","bucket_file"]),gs=es.enum("lesson_component_type_enum",["document","downloadable","lesson_video","media_clip","quiz"]),fs={created_at:ui("created_at",{withTimezone:!0}).defaultNow(),updated_at:ui("updated_at",{withTimezone:!0}).$onUpdateFn(()=>new Date)},hs={created_at:ui("created_at",{withTimezone:!0}).notNull().defaultNow()},ys=es.enum("release_type",["mathfix","migration"]),bs=es.table("releases",{release_id:tt("release_id").primaryKey().generatedByDefaultAsIdentity(),_authoring_state:ts("_authoring_state").notNull(),approved:Pe("approved").notNull().default(!1),approver:ct("approver"),description:ti("description"),estimated_release_date:Re("estimated_release_date"),locked:Pe("locked").notNull().default(!1),name:ti("name"),notes:ti("notes"),release_type:ys("release_type"),release_uid:Ae("release_uid",{length:16}),...fs}),vs={_state:ts("_state").notNull()},ws={_authoring_state:ts("_authoring_state").notNull()},Ns={_choice_state:ts("_choice_state").notNull()},Ss={_lesson_state:ts("_lesson_state").notNull()},xs={_programme_state:ts("_programme_state").notNull()},ks={_question_state:ts("_question_state").notNull()},Cs={_quiz_state:ts("_quiz_state").notNull()},qs={_subject_phase_state:ts("_subject_phase_state").notNull()},$s={_thread_state:ts("_thread_state").notNull()},js={_unit_state:ts("_unit_state").notNull()},Ts={_unit_variant_state:ts("_unit_variant_state").notNull()},Ps={_works_copyright_state:ts("_works_copyright_state").notNull()},Bs={_choice_state:ts("_choice_state")},Ds={_unit_variant_state:ts("_unit_variant_state")},As=({name:e,columnA:i,columnB:n})=>de(e,t.sql`${i} = 'expired' or ${n} = 'expired' or ${i} = ${n}`),Os=({name:e,columnA:i,columnB:n})=>de(e,t.sql`${i} = 'expired' or ${n} is null or ${n} = 'expired' or ${i} = ${n}`),Is={_expire_on_release:Pe("_expire_on_release").notNull().default(!1),_release_id:tt("_release_id").references(()=>bs.release_id)},Ls=vs,zs=Yn.table("gdrive_files",{gdrive_file_id:tt("gdrive_file_id").primaryKey().generatedByDefaultAsIdentity(),...ws,deprecated_fields:ct("deprecated_fields"),epoch:ti("epoch"),google_drive_id:ti("google_drive_id"),google_drive_url:ti("google_drive_url"),opendocument_presentation_bucket_name:ti("opendocument_presentation_bucket_name"),opendocument_presentation_bucket_path:ti("opendocument_presentation_bucket_path"),opendocument_text_bucket_name:ti("opendocument_text_bucket_name"),opendocument_text_bucket_path:ti("opendocument_text_bucket_path"),pdf_bucket_name:ti("pdf_bucket_name"),pdf_bucket_path:ti("pdf_bucket_path"),powerpoint_bucket_name:ti("powerpoint_bucket_name"),powerpoint_bucket_path:ti("powerpoint_bucket_path"),previous_document_id:tt("previous_document_id"),word_bucket_name:ti("word_bucket_name"),word_bucket_path:ti("word_bucket_path"),...Is,...fs}),Fs=Yn.table("lessons",{lesson_id:tt("lesson_id").notNull().generatedByDefaultAsIdentity(),...Ls,agf__has_copyright_restrictions:Pe("agf__has_copyright_restrictions"),agf__restricted_download:Pe("agf__restricted_download"),deprecated_fields:ct("deprecated_fields"),equipment_and_resources:ct("equipment_and_resources"),has_tag_practical_not_remote:Pe("has_tag_practical_not_remote").notNull().default(!1),is_sensitive:Pe("is_sensitive").notNull().default(!1),key_learning_points:ct("key_learning_points"),keywords:ct("keywords"),lesson_outline:ct("lesson_outline"),lesson_uid:Ae("lesson_uid",{length:16}).notNull(),misconceptions_and_common_mistakes:ct("misconceptions_and_common_mistakes"),phonics_outcome:ti("phonics_outcome"),pupil_lesson_outcome:ti("pupil_lesson_outcome"),slug:ti("slug").notNull(),teacher_tips:ct("teacher_tips"),title:ti("title").notNull(),...Is,...fs},e=>[Qi({columns:[e.lesson_id,e._state]}),_("lessons_slug_unique").on(e.slug,e._state)]),Qs=Yn.enum("document_type",["slidedeck","worksheet","worksheet_answers","supplementary_resource","lesson_guide"]),Vs=Yn.table("documents",{document_id:tt("document_id").notNull().generatedByDefaultAsIdentity(),...Ls,gdrive_file_id:tt("gdrive_file_id").notNull(),lesson_id:tt("lesson_id"),deprecated_fields:ct("deprecated_fields"),document_type:Qs("document_type").notNull(),document_uid:Ae("document_uid",{length:16}),previous_lesson_id:tt("previous_lesson_id"),...Is,...fs},e=>[Qi({columns:[e.document_id,e._state]}),c({columns:[e.lesson_id,e._state],foreignColumns:[Fs.lesson_id,Fs._state]}),c({name:"documents_gdrive_file_fk",columns:[e.gdrive_file_id],foreignColumns:[zs.gdrive_file_id]}),_().on(e.lesson_id,e.document_type,e._state)]),Es=Yn.table("bucket_files",{bucket_file_id:tt("bucket_file_id").primaryKey().generatedByDefaultAsIdentity(),...ws,bucket_name:ti("bucket_name"),bucket_path:ti("bucket_path"),byte_size:tt("byte_size"),cloudinary_public_id:ti("cloudinary_public_id"),cloudinary_source_url:ti("cloudinary_source_url"),content_type:ti("content_type"),deprecated_fields:ct("deprecated_fields"),filename:ti("filename"),media_description:ti("media_description"),name:ti("name"),previous_downloadable_id:tt("previous_downloadable_id"),...Is,...fs},e=>[_("bucket_files_cloudinary_public_id_unique").on(e.cloudinary_public_id)]);Yn.table("downloadables",{downloadable_id:tt("downloadable_id").notNull().generatedByDefaultAsIdentity(),...Ls,bucket_file_id:tt("bucket_file_id").notNull(),lesson_id:tt("lesson_id"),custom_title:ti("custom_title"),deprecated_fields:ct("deprecated_fields"),position:tt("position").notNull(),previous_lesson_id:tt("previous_lesson_id"),...Is,...fs},e=>[Qi({columns:[e.downloadable_id,e._state]}),c({columns:[e.lesson_id,e._state],foreignColumns:[Fs.lesson_id,Fs._state]}),c({name:"downloadables_bucket_file_fk",columns:[e.bucket_file_id],foreignColumns:[Es.bucket_file_id]}),Fi("downloadables_lesson_position_unique").on(e.lesson_id,e.position,e._state)]);const Ks=Yn.table("videos",{video_id:tt("video_id").primaryKey().generatedByDefaultAsIdentity(),...ws,cloudinary_public_id:ti("cloudinary_public_id"),cloudinary_source_url:ti("cloudinary_source_url"),contains_identifiable_face:Pe("contains_identifiable_face"),deprecated_fields:ct("deprecated_fields"),duration_seconds:$t("duration_seconds"),has_bsl:Pe("has_bsl"),media_description:ti("media_description"),mux_asset_id:ti("mux_asset_id"),mux_playback_id:ti("mux_playback_id"),name:ti("name"),previous_lesson_video_id:tt("previous_lesson_video_id"),previous_media_clip_ids:tt("previous_media_clip_ids").array(),raw_mux_data:ct("raw_mux_data"),signed_stream_id:ti("signed_stream_id"),title:ti("title"),url:ti("url"),video_uid:Ae("video_uid",{length:16}),...Is,...fs},e=>[_("videos_cloudinary_public_id_unique").on(e.cloudinary_public_id),_("videos_cloudinary_source_url_unique").on(e.cloudinary_source_url)]);Yn.table("lesson_videos",{lesson_video_id:tt("lesson_video_id").notNull().generatedByDefaultAsIdentity(),...Ls,lesson_id:tt("lesson_id"),sign_language_video_id:tt("sign_language_video_id"),video_id:tt("video_id").notNull(),previous_lesson_id:tt("previous_lesson_id"),...Is,...fs},e=>[Qi({columns:[e.lesson_video_id,e._state]}),c({columns:[e.lesson_id,e._state],foreignColumns:[Fs.lesson_id,Fs._state]}),c({columns:[e.video_id],foreignColumns:[Ks.video_id]}),c({name:"lesson_videos_sign_lang_video_fk",columns:[e.sign_language_video_id],foreignColumns:[Ks.video_id]}),Fi("lesson_videos_lesson_unique").on(e.lesson_id,e._state)]);const Us=Yn.table("media_clip_cycles",{media_clip_cycle_id:tt("media_clip_cycle_id").notNull().generatedByDefaultAsIdentity(),...Ls,lesson_id:tt("lesson_id"),cycle_name:ti("cycle_name"),position:tt("position").notNull(),previous_lesson_id:tt("previous_lesson_id"),...Is,...fs},e=>[Qi({columns:[e.media_clip_cycle_id,e._state]}),c({columns:[e.lesson_id,e._state],foreignColumns:[Fs.lesson_id,Fs._state]}),Fi("media_clip_cycles_lesson_name_unique").on(e.lesson_id,e.cycle_name,e._state),Fi("media_clip_cycles_lesson_position_unique").on(e.lesson_id,e.position,e._state)]),Ms=Yn.table("sounds",{sound_id:tt("sound_id").primaryKey().generatedByDefaultAsIdentity(),...ws,cloudinary_public_id:ti("cloudinary_public_id"),cloudinary_source_url:ti("cloudinary_source_url"),duration_seconds:$t("duration_seconds"),media_description:ti("media_description"),mux_asset_id:ti("mux_asset_id"),mux_playback_id:ti("mux_playback_id"),name:ti("name"),previous_media_clip_ids:tt("previous_media_clip_ids").array(),title:ti("title"),...Is,...fs},e=>[_("sounds_cloudinary_public_id_unique").on(e.cloudinary_public_id),_("sounds_cloudinary_source_url_unique").on(e.cloudinary_source_url)]);Yn.table("media_clips",{media_clip_id:tt("media_clip_id").notNull().generatedByDefaultAsIdentity(),...Ls,media_clip_cycle_id:tt("media_clip_cycle_id").notNull(),sound_id:tt("sound_id"),video_id:tt("video_id"),custom_title:ti("custom_title"),media_kind:cs("media_kind"),position:tt("position").notNull(),...Is,...fs},e=>[Qi({columns:[e.media_clip_id,e._state]}),c({name:"media_clips_mc_cycle_fk",columns:[e.media_clip_cycle_id,e._state],foreignColumns:[Us.media_clip_cycle_id,Us._state]}),c({columns:[e.sound_id],foreignColumns:[Ms.sound_id]}),c({columns:[e.video_id],foreignColumns:[Ks.video_id]}),de("media_clip_video_or_sound",t.sql`(video_id IS NOT NULL AND sound_id IS NULL) OR (video_id IS NULL AND sound_id IS NOT NULL)`),Fi("media_clips_cycle_position_unique").on(e.media_clip_cycle_id,e.position,e._state)]);const Rs=Yn.table("images",{image_id:tt("image_id").primaryKey().generatedByDefaultAsIdentity(),...ws,cloudinary_public_id:ti("cloudinary_public_id"),cloudinary_source_url:ti("cloudinary_source_url"),contains_identifiable_face:Pe("contains_identifiable_face"),height:tt("height"),media_description:ti("media_description"),name:ti("name"),width:tt("width"),...Is,...fs},e=>[_("images_cloudinary_public_id_unique").on(e.cloudinary_public_id),_("images_cloudinary_source_url_unique").on(e.cloudinary_source_url)]),Js=Yn.table("questions",{question_id:tt("question_id").notNull().generatedByDefaultAsIdentity(),...Ls,stem_image_id:tt("stem_image_id"),deprecated_fields:ct("deprecated_fields"),feedback:ti("feedback"),hint:ti("hint"),question_type:ls("question_type").notNull(),question_uid:Ae("question_uid",{length:16}).notNull(),stem_text:ti("stem_text"),...Is,...fs},e=>[Qi({columns:[e.question_id,e._state]}),c({columns:[e.stem_image_id],foreignColumns:[Rs.image_id]})]);Yn.table("question_options",{option_id:tt("option_id").notNull().generatedByDefaultAsIdentity(),...Ls,body_image_id:tt("body_image_id"),match_partner_image_id:tt("match_partner_image_id"),question_id:tt("question_id").notNull(),body_text:ti("body_text"),correct_order:tt("correct_order"),is_correct:Pe("is_correct"),match_partner_text:ti("match_partner_text"),position:tt("position"),...Is,...fs},e=>[Qi({columns:[e.option_id,e._state]}),c({name:"question_options_question_fk",columns:[e.question_id,e._state],foreignColumns:[Js.question_id,Js._state]}),c({name:"question_options_body_image_fk",columns:[e.body_image_id],foreignColumns:[Rs.image_id]}),c({name:"question_options_match_partner_image_fk",columns:[e.match_partner_image_id],foreignColumns:[Rs.image_id]})]);const Ws=Yn.table("units",{unit_id:tt("unit_id").notNull().generatedByDefaultAsIdentity(),...vs,deprecated_fields:ct("deprecated_fields"),description:ti("description").notNull(),slug:ti("slug"),title:ti("title").notNull(),unit_uid:Ae("unit_uid",{length:16}),why_this_why_now:ti("why_this_why_now"),...Is,...fs},e=>[Qi({columns:[e.unit_id,e._state]})]);Yn.table("question_units",{question_id:tt("question_id").notNull(),unit_id:tt("unit_id").notNull(),...ks,...js,...Is,...fs},e=>[Qi({name:"question_units_pk",columns:[e.question_id,e.unit_id,e._question_state,e._unit_state]}),c({name:"question_units_question_fk",columns:[e.question_id,e._question_state],foreignColumns:[Js.question_id,Js._state]}),c({name:"question_units_unit_fk",columns:[e.unit_id,e._unit_state],foreignColumns:[Ws.unit_id,Ws._state]}),As({name:"question_units_state_coherence",columnA:e._question_state,columnB:e._unit_state})]);const Hs=Yn.enum("quiz_role",["starter","exit"]),Gs=Yn.table("quizzes",{quiz_id:tt("quiz_id").notNull().generatedByDefaultAsIdentity(),...Ls,lesson_id:tt("lesson_id"),deprecated_fields:ct("deprecated_fields"),previous_lesson_id:tt("previous_lesson_id"),quiz_answers_pdf_bucket_name:ti("quiz_answers_pdf_bucket_name"),quiz_answers_pdf_bucket_path:ti("quiz_answers_pdf_bucket_path"),quiz_pdf_bucket_name:ti("quiz_pdf_bucket_name"),quiz_pdf_bucket_path:ti("quiz_pdf_bucket_path"),quiz_role:Hs("quiz_role").notNull(),quiz_uid:Ae("quiz_uid",{length:16}).notNull(),...Is,...fs},e=>[Qi({columns:[e.quiz_id,e._state]}),c({columns:[e.lesson_id,e._state],foreignColumns:[Fs.lesson_id,Fs._state]}),Fi("quizzes_lesson_role_unique").on(e.lesson_id,e.quiz_role,e._state)]);Yn.table("quiz_questions",{quiz_id:tt("quiz_id").notNull(),question_id:tt("question_id").notNull(),...Cs,...ks,position:tt("position").notNull(),...Is,...fs},e=>[Qi({name:"quiz_questions_pk",columns:[e.quiz_id,e.question_id,e._quiz_state,e._question_state]}),c({name:"quiz_questions_quiz_fk",columns:[e.quiz_id,e._quiz_state],foreignColumns:[Gs.quiz_id,Gs._state]}),c({name:"quiz_questions_question_fk",columns:[e.question_id,e._question_state],foreignColumns:[Js.question_id,Js._state]}),As({name:"quiz_questions_state_coherence",columnA:e._quiz_state,columnB:e._question_state})]);const Xs=Yn.table("urls",{url_id:tt("url_id").primaryKey().generatedByDefaultAsIdentity(),...ws,cloudinary_public_id:ti("cloudinary_public_id"),cloudinary_source_url:ti("cloudinary_source_url"),name:ti("name"),url:ti("url"),...Is,...fs},e=>[_("urls_cloudinary_public_id_unique").on(e.cloudinary_public_id),_("urls_cloudinary_source_url_unique").on(e.cloudinary_source_url)]),Ys=Yn.table("media_copyright",{media_copyright_id:tt("media_copyright_id").notNull().generatedByDefaultAsIdentity(),...Ls,bucket_file_id:tt("bucket_file_id"),image_id:tt("image_id"),sound_id:tt("sound_id"),url_id:tt("url_id"),video_id:tt("video_id"),acquisition_basis:ss("acquisition_basis"),additional_restrictions:ti("additional_restrictions"),attribution:ti("attribution"),deprecated_fields:ct("deprecated_fields"),internal_notes:ti("internal_notes"),legacy_data_shape:Pe("legacy_data_shape").notNull(),licence:as("licence"),media_copyright_uid:ti("media_copyright_uid"),media_provenance:ns("media_provenance"),media_provenance_url:ti("media_provenance_url"),permission_status:rs("permission_status"),restriction_level_override:is("restriction_level_override"),territory_other:ti("territory_other"),territory_override:os("territory_override"),third_party_id:ti("third_party_id"),...Is,...fs},e=>[Qi({columns:[e.media_copyright_id,e._state]}),c({columns:[e.image_id],foreignColumns:[Rs.image_id]}),c({columns:[e.sound_id],foreignColumns:[Ms.sound_id]}),c({columns:[e.video_id],foreignColumns:[Ks.video_id]}),c({name:"media_copyright_bucket_file_fk",columns:[e.bucket_file_id],foreignColumns:[Es.bucket_file_id]}),c({columns:[e.url_id],foreignColumns:[Xs.url_id]}),de("media_copyright_has_exactly_one_media",t.sql`(image_id IS NOT NULL)::int + (sound_id IS NOT NULL)::int + (video_id IS NOT NULL)::int + (bucket_file_id IS NOT NULL)::int + (url_id IS NOT NULL)::int = 1`),_("media_copyright_image_unique").on(e.image_id,e._state),_("media_copyright_sound_unique").on(e.sound_id,e._state),_("media_copyright_video_unique").on(e.video_id,e._state),_("media_copyright_bucket_file_unique").on(e.bucket_file_id,e._state),_("media_copyright_url_unique").on(e.url_id,e._state)]),Zs=es.enum("contract_territory",["worldwide","worldwide_excl_usa","worldwide_excl_canada_and_usa","uk_only","uk_and_commonwealth","uk_and_commonwealth_excl_canada","uk_and_eire"]),er=es.table("tpc_contracts",{tpc_contract_id:tt("tpc_contract_id").primaryKey().generatedByDefaultAsIdentity(),...ws,effective_date:Re("effective_date"),end_date:Re("end_date"),geo_restricted:Pe().notNull().default(!1),juro_id:ti("juro_id").notNull(),juro_url:ti("juro_url"),login_required:Pe().notNull().default(!1),name:ti("name").notNull(),raw_contract:ct("raw_contract"),restricted_download:Pe().notNull().default(!1),restriction_level:is(),signing_side:ti("signing_side"),territory:Zs("territory"),tpc_contract_uid:Ae("tpc_contract_uid",{length:16}).notNull(),...fs},()=>[]);Yn.table("media_copyright_tpc_contracts",{media_copyright_id:tt("media_copyright_id").notNull(),tpc_contract_id:tt("tpc_contract_id").notNull(),...Ls,...Is,_release_id:tt("_release_id"),...fs},e=>[Qi({name:"media_copyright_tpc_contracts_pk",columns:[e.media_copyright_id,e.tpc_contract_id,e._state]}),c({name:"media_copyright_tpc_contract_media_copyright_fk",columns:[e.media_copyright_id,e._state],foreignColumns:[Ys.media_copyright_id,Ys._state]}),c({name:"media_copyright_tpc_contract_tpc_contract_fk",columns:[e.tpc_contract_id],foreignColumns:[er.tpc_contract_id]}),c({name:"media_copyright_tpc_contracts_release_fk",columns:[e._release_id],foreignColumns:[bs.release_id]})]),Yn.table("gdrive_file_images",{gdrive_file_id:tt("gdrive_file_id").notNull(),image_id:tt("image_id").notNull(),...ws,...Is,...fs},e=>[Qi({columns:[e.gdrive_file_id,e.image_id]}),c({name:"gdrive_file_images_gdrive_file_fk",columns:[e.gdrive_file_id],foreignColumns:[zs.gdrive_file_id]}),c({columns:[e.image_id],foreignColumns:[Rs.image_id]})]),Yn.table("lesson_media",{lesson_media_id:tt("lesson_media_id").notNull().generatedByDefaultAsIdentity(),...vs,lesson_id:tt("lesson_id").notNull(),bucket_file_id:tt("bucket_file_id"),image_id:tt("image_id"),sound_id:tt("sound_id"),url_id:tt("url_id"),video_id:tt("video_id"),...Is,...fs},e=>[Qi({name:"lesson_media_pk",columns:[e.lesson_media_id,e._state]}),c({name:"lesson_media_lesson_fk",columns:[e.lesson_id,e._state],foreignColumns:[Fs.lesson_id,Fs._state]}),c({name:"lesson_media_image_fk",columns:[e.image_id],foreignColumns:[Rs.image_id]}),c({name:"lesson_media_sound_fk",columns:[e.sound_id],foreignColumns:[Ms.sound_id]}),c({name:"lesson_media_video_fk",columns:[e.video_id],foreignColumns:[Ks.video_id]}),c({name:"lesson_media_bucket_file_fk",columns:[e.bucket_file_id],foreignColumns:[Es.bucket_file_id]}),c({name:"lesson_media_url_fk",columns:[e.url_id],foreignColumns:[Xs.url_id]}),de("lesson_media_has_exactly_one_media",t.sql`(image_id IS NOT NULL)::int + (sound_id IS NOT NULL)::int + (video_id IS NOT NULL)::int + (bucket_file_id IS NOT NULL)::int + (url_id IS NOT NULL)::int = 1`),_("lesson_media_lesson_asset_unique").on(e.lesson_id,e._state,e.image_id,e.sound_id,e.video_id,e.bucket_file_id,e.url_id).nullsNotDistinct()]);const tr=Yn.table("works_copyright",{works_copyright_id:tt("works_copyright_id").notNull().generatedByDefaultAsIdentity(),...vs,attribution:ti("attribution"),author:ti("author"),deprecated_fields:ct("deprecated_fields"),raw_juro_data:ct("raw_juro_data"),restriction_level:is("restriction_level"),title:ti("title"),works_copyright_uid:Ae("works_copyright_uid",{length:16}),...Is,...fs},e=>[Qi({columns:[e.works_copyright_id,e._state]})]);Yn.table("lesson_works_copyright",{lesson_id:tt("lesson_id").notNull(),works_copyright_id:tt("works_copyright_id").notNull(),...Ss,...Ps,...Is,...fs},e=>[Qi({name:"lesson_works_copyright_pk",columns:[e.lesson_id,e.works_copyright_id,e._lesson_state,e._works_copyright_state]}),c({name:"lesson_works_copyright_lesson_fk",columns:[e.lesson_id,e._lesson_state],foreignColumns:[Fs.lesson_id,Fs._state]}),c({name:"lesson_works_copyright_works_copyright_fk",columns:[e.works_copyright_id,e._works_copyright_state],foreignColumns:[tr.works_copyright_id,tr._state]}),As({name:"lesson_works_copyright_state_coherence",columnA:e._lesson_state,columnB:e._works_copyright_state})]);const ir=Yn.table("features",{feature_id:tt("feature_id").primaryKey().generatedByDefaultAsIdentity(),...ws,key:ti("key").notNull(),...Is,...fs},e=>[_("features_key_unique").on(e.key)]);Yn.table("lesson_features",{lesson_id:tt("lesson_id").notNull(),feature_id:tt("feature_id").notNull(),...Ls,value:ti("value"),...Is,...fs},e=>[Qi({columns:[e.lesson_id,e.feature_id,e._state]}),c({columns:[e.lesson_id,e._state],foreignColumns:[Fs.lesson_id,Fs._state]}),c({name:"lesson_features_feature_fk",columns:[e.feature_id],foreignColumns:[ir.feature_id]})]),Yn.table("sound_transcripts",{sound_id:tt("sound_id").notNull(),...vs,bad_language_detected:Pe("bad_language_detected"),deprecated_fields:ct("deprecated_fields"),inappropriate_words:ct("inappropriate_words"),language_approved:Pe("language_approved"),transcript:ti("transcript"),transcript_vtt_url:ti("transcript_vtt_url"),...Is,...fs},e=>[Qi({columns:[e.sound_id,e._state]}),c({columns:[e.sound_id],foreignColumns:[Ms.sound_id]})]),Yn.table("video_captions",{video_id:tt("video_id").notNull(),...vs,bad_language_detected:Pe("bad_language_detected"),deprecated_fields:ct("deprecated_fields"),inappropriate_words:ct("inappropriate_words"),language_approved:Pe("language_approved"),transcript:ti("transcript"),transcript_vtt_url:ti("transcript_vtt_url"),...Is,...fs},e=>[Qi({columns:[e.video_id,e._state]}),c({columns:[e.video_id],foreignColumns:[Ks.video_id]})]),Yn.table("works_copyright_tpc_contracts",{works_copyright_id:tt("works_copyright_id").notNull(),tpc_contract_id:tt("tpc_contract_id").notNull(),...Ls,...Is,_release_id:tt("_release_id"),...fs},e=>[Qi({name:"works_copyright_tpc_contracts_pk",columns:[e.works_copyright_id,e.tpc_contract_id,e._state]}),c({name:"works_copyright_tpc_contract_works_copyright_fk",columns:[e.works_copyright_id,e._state],foreignColumns:[tr.works_copyright_id,tr._state]}),c({name:"works_copyright_tpc_contract_tpc_contract_fk",columns:[e.tpc_contract_id],foreignColumns:[er.tpc_contract_id]}),c({name:"works_copyright_tpc_contracts_release_fk",columns:[e._release_id],foreignColumns:[bs.release_id]})]),Yn.table("videos_works_copyright",{video_id:tt("video_id").notNull(),works_copyright_id:tt("works_copyright_id").notNull(),...vs,...Is,...fs},e=>[Qi({columns:[e.video_id,e.works_copyright_id,e._state]}),c({name:"videos_works_copyright_video_fk",columns:[e.video_id],foreignColumns:[Ks.video_id]}),c({name:"videos_works_copyright_works_copyright_fk",columns:[e.works_copyright_id,e._state],foreignColumns:[tr.works_copyright_id,tr._state]})]);const nr=Yn.table("supervision_levels",{supervision_level_id:tt("supervision_level_id").primaryKey().generatedByDefaultAsIdentity(),...ws,deprecated_fields:ct("deprecated_fields"),description:ti("description"),global_position:tt("global_position").notNull(),supervision_level_rating:tt("supervision_level_rating"),title:ti("title").notNull(),...Is,...fs}),sr=Yn.table("content_guidance",{content_guidance_id:tt("content_guidance_id").primaryKey().generatedByDefaultAsIdentity(),...ws,supervision_level_id:tt("supervision_level_id").notNull(),content_guidance_area:ti("content_guidance_area"),content_guidance_code:ti("content_guidance_code"),content_guidance_description:ti("content_guidance_description"),content_guidance_label:ti("content_guidance_label"),deprecated_fields:ct("deprecated_fields"),...Is,...fs},e=>[c({name:"content_guid_super_level_fk",columns:[e.supervision_level_id],foreignColumns:[nr.supervision_level_id]})]),rr=Yn.table("key_stages",{key_stage_id:tt("key_stage_id").primaryKey().generatedByDefaultAsIdentity(),...ws,deprecated_fields:ct("deprecated_fields"),description:ti("description"),global_position:tt("global_position").notNull(),key_stage:ti("key_stage"),slug:ti("slug"),...Is,...fs}),or=Yn.table("phases",{phase_id:tt("phase_id").primaryKey().generatedByDefaultAsIdentity(),...ws,deprecated_fields:ct("deprecated_fields"),description:ti("description"),global_position:tt("global_position").notNull(),phase:ti("phase"),slug:ti("slug"),...Is,...fs}),ar=Yn.table("subjects",{subject_id:tt("subject_id").primaryKey().generatedByDefaultAsIdentity(),...ws,subject_parent_id:tt("subject_parent_id"),deprecated_fields:ct("deprecated_fields"),description:ti("description"),global_position:tt("global_position").notNull(),non_curriculum:Pe("non_curriculum"),slug:ti("slug"),subject:ti("subject"),...Is,...fs},e=>[c({name:"subjects_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[e.subject_id]})]),lr=Yn.table("years",{year_id:tt("year_id").primaryKey().generatedByDefaultAsIdentity(),...ws,key_stage_id:tt("key_stage_id").notNull(),phase_id:tt("phase_id").notNull(),deprecated_fields:ct("deprecated_fields"),description:ti("description"),global_position:tt("global_position").notNull(),slug:ti("slug"),year:ti("year"),...Is,...fs},e=>[c({columns:[e.key_stage_id],foreignColumns:[rr.key_stage_id]}),c({columns:[e.phase_id],foreignColumns:[or.phase_id]})]),ur=Yn.table("content_guidance_scopes",{scope_id:tt("scope_id").primaryKey().generatedByDefaultAsIdentity(),...ws,content_guidance_id:tt("content_guidance_id").notNull(),key_stage_id:tt("key_stage_id"),phase_id:tt("phase_id"),subject_id:tt("subject_id"),subject_parent_id:tt("subject_parent_id"),year_id:tt("year_id"),...Is,...fs},e=>[c({name:"content_guid_scopes_content_guid_fk",columns:[e.content_guidance_id],foreignColumns:[sr.content_guidance_id]}),c({name:"content_guid_scopes_subject_fk",columns:[e.subject_id],foreignColumns:[ar.subject_id]}),c({name:"content_guid_scopes_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[ar.subject_id]}),c({name:"content_guid_scopes_phase_fk",columns:[e.phase_id],foreignColumns:[or.phase_id]}),c({name:"content_guid_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[rr.key_stage_id]}),c({columns:[e.year_id],foreignColumns:[lr.year_id]})]),cr=Yn.table("exam_board_specs",{exam_board_spec_id:tt("exam_board_spec_id").primaryKey().generatedByDefaultAsIdentity(),...ws,deprecated_fields:ct("deprecated_fields"),description:ti("description"),title:ti("title").notNull(),...Is,...fs});Yn.table("exam_board_spec_scopes",{scope_id:tt("scope_id").primaryKey().generatedByDefaultAsIdentity(),...ws,exam_board_spec_id:tt("exam_board_spec_id").notNull(),key_stage_id:tt("key_stage_id"),phase_id:tt("phase_id"),subject_id:tt("subject_id"),subject_parent_id:tt("subject_parent_id"),year_id:tt("year_id"),...Is,...fs},e=>[c({name:"exam_spec_scopes_exam_spec_fk",columns:[e.exam_board_spec_id],foreignColumns:[cr.exam_board_spec_id]}),c({name:"exam_spec_scopes_subject_fk",columns:[e.subject_id],foreignColumns:[ar.subject_id]}),c({name:"exam_spec_scopes_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[ar.subject_id]}),c({name:"exam_spec_scopes_phase_fk",columns:[e.phase_id],foreignColumns:[or.phase_id]}),c({name:"exam_spec_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[rr.key_stage_id]}),c({columns:[e.year_id],foreignColumns:[lr.year_id]})]);const _r=Yn.table("lesson_content_guidance",{lesson_id:tt("lesson_id").notNull(),content_guidance_id:tt("content_guidance_id").notNull(),...Ls,position:tt("position").notNull(),...Is,...fs},e=>[Qi({name:"lesson_content_guid_pk",columns:[e.lesson_id,e.content_guidance_id,e._state]}),c({name:"lesson_content_guid_lesson_fk",columns:[e.lesson_id,e._state],foreignColumns:[Fs.lesson_id,Fs._state]}),c({name:"lesson_content_guid_content_guid_fk",columns:[e.content_guidance_id],foreignColumns:[sr.content_guidance_id]})]),dr=Yn.table("tags",{tag_id:tt("tag_id").primaryKey().generatedByDefaultAsIdentity(),...ws,deprecated_fields:ct("deprecated_fields"),tag_category:us("tag_category"),title:ti("title").notNull(),...Is,...fs});Yn.table("lesson_tags",{lesson_id:tt("lesson_id").notNull(),tag_id:tt("tag_id").notNull(),...Ls,position:tt("position").notNull(),...Is,...fs},e=>[Qi({columns:[e.lesson_id,e.tag_id,e._state]}),c({columns:[e.lesson_id,e._state],foreignColumns:[Fs.lesson_id,Fs._state]}),c({columns:[e.tag_id],foreignColumns:[dr.tag_id]})]);const mr=Yn.table("national_curriculum",{national_curriculum_id:tt("national_curriculum_id").primaryKey().generatedByDefaultAsIdentity(),...ws,deprecated_fields:ct("deprecated_fields"),description:ti("description"),title:ti("title").notNull(),...Is,...fs});Yn.table("national_curriculum_scopes",{scope_id:tt("scope_id").primaryKey().generatedByDefaultAsIdentity(),...ws,key_stage_id:tt("key_stage_id"),national_curriculum_id:tt("national_curriculum_id").notNull(),phase_id:tt("phase_id"),subject_id:tt("subject_id"),subject_parent_id:tt("subject_parent_id"),year_id:tt("year_id"),...Is,...fs},e=>[c({name:"nat_curric_scopes_nat_curric_fk",columns:[e.national_curriculum_id],foreignColumns:[mr.national_curriculum_id]}),c({name:"nat_curric_scopes_subject_fk",columns:[e.subject_id],foreignColumns:[ar.subject_id]}),c({name:"nat_curric_scopes_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[ar.subject_id]}),c({name:"nat_curric_scopes_phase_fk",columns:[e.phase_id],foreignColumns:[or.phase_id]}),c({name:"nat_curric_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[rr.key_stage_id]}),c({name:"nat_curric_scopes_year_fk",columns:[e.year_id],foreignColumns:[lr.year_id]})]);const pr=Yn.table("subject_categories",{subject_category_id:tt("subject_category_id").primaryKey().generatedByDefaultAsIdentity(),...ws,deprecated_fields:ct("deprecated_fields"),description:ti("description"),slug:ti("slug"),title:ti("title").notNull(),...Is,...fs});Yn.table("subject_category_scopes",{scope_id:tt("scope_id").primaryKey().generatedByDefaultAsIdentity(),...ws,key_stage_id:tt("key_stage_id"),phase_id:tt("phase_id"),subject_category_id:tt("subject_category_id").notNull(),subject_id:tt("subject_id"),subject_parent_id:tt("subject_parent_id"),year_id:tt("year_id"),...Is,...fs},e=>[c({name:"subj_cat_scopes_subj_cat_fk",columns:[e.subject_category_id],foreignColumns:[pr.subject_category_id]}),c({name:"subj_cat_scopes_subject_fk",columns:[e.subject_id],foreignColumns:[ar.subject_id]}),c({name:"subj_cat_scopes_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[ar.subject_id]}),c({name:"subj_cat_scopes_phase_fk",columns:[e.phase_id],foreignColumns:[or.phase_id]}),c({name:"subj_cat_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[rr.key_stage_id]}),c({columns:[e.year_id],foreignColumns:[lr.year_id]})]),Yn.table("tag_scopes",{scope_id:tt("scope_id").primaryKey().generatedByDefaultAsIdentity(),...ws,key_stage_id:tt("key_stage_id"),phase_id:tt("phase_id"),subject_id:tt("subject_id"),subject_parent_id:tt("subject_parent_id"),tag_id:tt("tag_id").notNull(),year_id:tt("year_id"),...Is,...fs},e=>[c({columns:[e.tag_id],foreignColumns:[dr.tag_id]}),c({columns:[e.subject_id],foreignColumns:[ar.subject_id]}),c({name:"tag_scopes_subj_parent_fk",columns:[e.subject_parent_id],foreignColumns:[ar.subject_id]}),c({columns:[e.phase_id],foreignColumns:[or.phase_id]}),c({name:"tag_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[rr.key_stage_id]}),c({columns:[e.year_id],foreignColumns:[lr.year_id]})]),Yn.table("unit_exam_board_specs",{unit_id:tt("unit_id").notNull(),exam_board_spec_id:tt("exam_board_spec_id").notNull(),...Ls,position:tt("position").notNull(),...Is,...fs},e=>[Qi({columns:[e.unit_id,e.exam_board_spec_id,e._state]}),c({columns:[e.unit_id,e._state],foreignColumns:[Ws.unit_id,Ws._state]}),c({name:"unit_exam_spec_exam_spec_fk",columns:[e.exam_board_spec_id],foreignColumns:[cr.exam_board_spec_id]})]),Yn.table("unit_national_curriculum",{unit_id:tt("unit_id").notNull(),national_curriculum_id:tt("national_curriculum_id").notNull(),...Ls,position:tt("position").notNull(),...Is,...fs},e=>[Qi({name:"unit_nat_curric_pk",columns:[e.unit_id,e.national_curriculum_id,e._state]}),c({name:"unit_nat_curric_unit_fk",columns:[e.unit_id,e._state],foreignColumns:[Ws.unit_id,Ws._state]}),c({name:"unit_nat_curric_nat_curric_fk",columns:[e.national_curriculum_id],foreignColumns:[mr.national_curriculum_id]})]),Yn.table("unit_subject_categories",{unit_id:tt("unit_id").notNull(),subject_category_id:tt("subject_category_id").notNull(),...Ls,position:tt("position").notNull(),...Is,...fs},e=>[Qi({columns:[e.unit_id,e.subject_category_id,e._state]}),c({columns:[e.unit_id,e._state],foreignColumns:[Ws.unit_id,Ws._state]}),c({name:"unit_subj_cat_subj_cat_fk",columns:[e.subject_category_id],foreignColumns:[pr.subject_category_id]})]);const gr=Yn.table("exam_boards",{exam_board_id:tt("exam_board_id").primaryKey().generatedByDefaultAsIdentity(),...ws,deprecated_fields:ct("deprecated_fields"),description:ti("description"),exam_board:ti("exam_board"),global_position:tt("global_position").notNull(),slug:ti("slug"),...Is,...fs}),fr=Yn.table("pathways",{pathway_id:tt("pathway_id").primaryKey().generatedByDefaultAsIdentity(),...ws,deprecated_fields:ct("deprecated_fields"),description:ti("description"),global_position:tt("global_position").notNull(),pathway:ti("pathway"),slug:ti("slug"),...Is,...fs}),hr=Yn.table("tiers",{tier_id:tt("tier_id").primaryKey().generatedByDefaultAsIdentity(),...ws,deprecated_fields:ct("deprecated_fields"),description:ti("description"),global_position:tt("global_position").notNull(),slug:ti("slug"),tier:ti("tier"),...Is,...fs}),yr=Yn.table("unit_variants",{unit_variant_id:tt("unit_variant_id").notNull().generatedByDefaultAsIdentity(),...Ls,exam_board_id:tt("exam_board_id"),pathway_id:tt("pathway_id"),subject_id:tt("subject_id"),tier_id:tt("tier_id"),unit_id:tt("unit_id").notNull(),deprecated_fields:ct("deprecated_fields"),description_override:ti("description_override"),optionality:ti("optionality"),planned_number_of_lessons_override:tt("planned_number_of_lessons_override"),prior_knowledge_requirements_override:ti("prior_knowledge_requirements_override").array(),title_override:ti("title_override"),unit_variant_uid:Ae("unit_variant_uid",{length:16}),why_this_why_now_override:ti("why_this_why_now_override"),...Is,...fs},e=>[Qi({columns:[e.unit_variant_id,e._state]}),c({name:"unit_variants_exam_board_fk",columns:[e.exam_board_id],foreignColumns:[gr.exam_board_id]}),c({columns:[e.pathway_id],foreignColumns:[fr.pathway_id]}),c({columns:[e.subject_id],foreignColumns:[ar.subject_id]}),c({columns:[e.tier_id],foreignColumns:[hr.tier_id]}),c({columns:[e.unit_id,e._state],foreignColumns:[Ws.unit_id,Ws._state]}),_("unit_variants_unit_scope_unique").on(e.unit_id,e.subject_id,e.tier_id,e.exam_board_id,e.pathway_id,e.optionality,e._state).nullsNotDistinct()]);Yn.table("unit_variant_exam_board_specs_override",{unit_variant_id:tt("unit_variant_id").notNull(),exam_board_spec_id:tt("exam_board_spec_id").notNull(),...Ls,position:tt("position").notNull(),...Is,_release_id:tt("_release_id"),...fs},e=>[Qi({name:"unit_variant_exam_board_specs_override_pk",columns:[e.unit_variant_id,e.exam_board_spec_id,e._state]}),c({name:"unit_var_exam_spec_ovr_release_fk",columns:[e._release_id],foreignColumns:[bs.release_id]}),c({name:"unit_var_exam_spec_ovr_unit_var_fk",columns:[e.unit_variant_id,e._state],foreignColumns:[yr.unit_variant_id,yr._state]}),c({name:"unit_var_exam_spec_ovr_exam_spec_fk",columns:[e.exam_board_spec_id],foreignColumns:[cr.exam_board_spec_id]})]),Yn.table("unit_variant_national_curriculum_override",{unit_variant_id:tt("unit_variant_id").notNull(),national_curriculum_id:tt("national_curriculum_id").notNull(),...Ls,position:tt("position").notNull(),...Is,_release_id:tt("_release_id"),...fs},e=>[Qi({name:"unit_variant_national_curriculum_override_pk",columns:[e.unit_variant_id,e.national_curriculum_id,e._state]}),c({name:"unit_var_nat_curric_ovr_release_fk",columns:[e._release_id],foreignColumns:[bs.release_id]}),c({name:"unit_var_nat_curric_ovr_unit_var_fk",columns:[e.unit_variant_id,e._state],foreignColumns:[yr.unit_variant_id,yr._state]}),c({name:"unit_var_nat_curric_ovr_nat_curric_fk",columns:[e.national_curriculum_id],foreignColumns:[mr.national_curriculum_id]})]),Yn.table("unit_variant_subject_categories_override",{unit_variant_id:tt("unit_variant_id").notNull(),subject_category_id:tt("subject_category_id").notNull(),...Ls,position:tt("position").notNull(),...Is,_release_id:tt("_release_id"),...fs},e=>[Qi({name:"unit_variant_subject_categories_override_pk",columns:[e.unit_variant_id,e.subject_category_id,e._state]}),c({name:"unit_var_subj_cat_ovr_release_fk",columns:[e._release_id],foreignColumns:[bs.release_id]}),c({name:"unit_var_subj_cat_ovr_unit_var_fk",columns:[e.unit_variant_id,e._state],foreignColumns:[yr.unit_variant_id,yr._state]}),c({name:"unit_var_subj_cat_ovr_subj_cat_fk",columns:[e.subject_category_id],foreignColumns:[pr.subject_category_id]})]);const br=Yn.table("actions",{action_id:tt("action_id").primaryKey().generatedByDefaultAsIdentity(),...ws,key:ti("key").notNull(),...Is,...fs},e=>[_("actions_key_unique").on(e.key)]),vr=Yn.table("overrides_and_exceptions",{overrides_and_exceptions_id:tt("overrides_and_exceptions_id").notNull().generatedByDefaultAsIdentity(),...vs,description:ti("description"),temporary_fields:ct("temporary_fields"),used_by_queries:ct("used_by_queries").notNull().default([]),...Is,...fs},e=>[Qi({columns:[e.overrides_and_exceptions_id,e._state]})]);Yn.table("overrides_and_exceptions_actions",{overrides_and_exceptions_id:tt("overrides_and_exceptions_id").notNull(),action_id:tt("action_id").notNull(),...vs,value:ct("value").notNull(),...Is,_release_id:tt("_release_id"),...fs},e=>[Qi({name:"ovr_exc_actions_pk",columns:[e.overrides_and_exceptions_id,e.action_id,e._state]}),c({name:"ovr_exc_actions_release_fk",columns:[e._release_id],foreignColumns:[bs.release_id]}),c({name:"ovr_exc_actions_ovr_exc_fk",columns:[e.overrides_and_exceptions_id,e._state],foreignColumns:[vr.overrides_and_exceptions_id,vr._state]}),c({name:"ovr_exc_actions_action_fk",columns:[e.action_id],foreignColumns:[br.action_id]})]),Yn.table("overrides_and_exceptions_feature_scopes",{overrides_and_exceptions_id:tt("overrides_and_exceptions_id").notNull(),condition_id:tt("condition_id").notNull(),feature_id:tt("feature_id").notNull(),...vs,value:ti("value").notNull(),...Is,_release_id:tt("_release_id"),...fs},e=>[Qi({name:"ovr_exc_feature_scopes_pk",columns:[e.overrides_and_exceptions_id,e.condition_id,e.feature_id,e._state]}),c({name:"ovr_exc_feature_scopes_release_fk",columns:[e._release_id],foreignColumns:[bs.release_id]}),c({name:"ovr_exc_feature_scopes_ovr_exc_fk",columns:[e.overrides_and_exceptions_id,e._state],foreignColumns:[vr.overrides_and_exceptions_id,vr._state]}),c({name:"ovr_exc_feature_scopes_feature_fk",columns:[e.feature_id],foreignColumns:[ir.feature_id]})]),Yn.table("overrides_and_exceptions_programme_scopes",{scope_id:tt("scope_id").notNull().generatedByDefaultAsIdentity(),...vs,key_stage_id:tt("key_stage_id"),overrides_and_exceptions_id:tt("overrides_and_exceptions_id").notNull(),pathway_id:tt("pathway_id"),phase_id:tt("phase_id"),subject_id:tt("subject_id"),tier_id:tt("tier_id"),legacy:Pe("legacy"),subject_slug:ti("subject_slug"),...Is,_release_id:tt("_release_id"),...fs},e=>[Qi({name:"ovr_exc_programme_scopes_pk",columns:[e.scope_id,e._state]}),c({name:"ovr_exc_programme_scopes_release_fk",columns:[e._release_id],foreignColumns:[bs.release_id]}),c({name:"ovr_exc_programme_scopes_ovr_exc_fk",columns:[e.overrides_and_exceptions_id,e._state],foreignColumns:[vr.overrides_and_exceptions_id,vr._state]}),c({name:"ovr_exc_programme_scopes_key_stage_fk",columns:[e.key_stage_id],foreignColumns:[rr.key_stage_id]}),c({name:"ovr_exc_programme_scopes_pathway_fk",columns:[e.pathway_id],foreignColumns:[fr.pathway_id]}),c({name:"ovr_exc_programme_scopes_phase_fk",columns:[e.phase_id],foreignColumns:[or.phase_id]}),c({name:"ovr_exc_programme_scopes_subject_fk",columns:[e.subject_id],foreignColumns:[ar.subject_id]}),c({name:"ovr_exc_programme_scopes_tier_fk",columns:[e.tier_id],foreignColumns:[hr.tier_id]})]),Yn.table("redirects",{entity_id:tt("entity_id").notNull(),entity_source:ds("entity_source").notNull(),...Ls,description:ti("description"),redirect_entity_id:tt("redirect_entity_id"),redirect_entity_source:ds("redirect_entity_source"),redirect_type:_s("redirect_type").notNull(),redirect_url:ti("redirect_url"),...Is,...fs},e=>[Qi({columns:[e.entity_id,e.entity_source,e._state]}),de("redirect_has_exactly_one_target",t.sql`(redirect_url IS NOT NULL)::int + (redirect_entity_id IS NOT NULL)::int = 1`),de("redirect_entity_ref_complete",t.sql`(redirect_entity_id IS NULL) = (redirect_entity_source IS NULL)`)]);const wr=Yn.table("choices",{choice_id:tt("choice_id").notNull().generatedByDefaultAsIdentity(),...Ls,unit_id:tt("unit_id").notNull(),temporary_fields:ct("temporary_fields"),...Is,...fs},e=>[Qi({columns:[e.choice_id,e._state]}),c({columns:[e.unit_id,e._state],foreignColumns:[Ws.unit_id,Ws._state]})]);Yn.table("choices_unit_variants",{unit_variant_id:tt("unit_variant_id").notNull(),choice_id:tt("choice_id").notNull(),...Ts,...Ns,position:tt("position").notNull(),...Is,...fs},e=>[Qi({name:"choices_unit_var_pk",columns:[e.unit_variant_id,e.choice_id,e._unit_variant_state,e._choice_state]}),c({name:"choices_unit_var_unit_var_fk",columns:[e.unit_variant_id,e._unit_variant_state],foreignColumns:[yr.unit_variant_id,yr._state]}),c({name:"choices_unit_var_choice_fk",columns:[e.choice_id,e._choice_state],foreignColumns:[wr.choice_id,wr._state]}),As({name:"choices_unit_var_state_coherence",columnA:e._unit_variant_state,columnB:e._choice_state})]);const Nr=Yn.table("programmes",{programme_id:tt("programme_id").notNull().generatedByDefaultAsIdentity(),...Ls,exam_board_id:tt("exam_board_id"),pathway_id:tt("pathway_id"),subject_id:tt("subject_id").notNull(),tier_id:tt("tier_id"),year_id:tt("year_id").notNull(),deprecated_fields:ct("deprecated_fields"),legacy:Pe("legacy").notNull().default(!1),national_curriculum_content:Pe("national_curriculum_content").notNull().default(!1),programme_uid:Ae("programme_uid",{length:16}),...Is,...fs},e=>[Qi({columns:[e.programme_id,e._state]}),c({columns:[e.subject_id],foreignColumns:[ar.subject_id]}),c({columns:[e.year_id],foreignColumns:[lr.year_id]}),c({columns:[e.tier_id],foreignColumns:[hr.tier_id]}),c({name:"programmes_exam_board_fk",columns:[e.exam_board_id],foreignColumns:[gr.exam_board_id]}),c({columns:[e.pathway_id],foreignColumns:[fr.pathway_id]}),_("programmes_factor_scope_unique").on(e.subject_id,e.year_id,e.tier_id,e.exam_board_id,e.pathway_id,e.legacy,e._state).nullsNotDistinct()]);Yn.table("inclusions",{programme_id:tt("programme_id").notNull(),position:tt("position").notNull(),...xs,...Bs,...Ds,choice_id:tt("choice_id"),unit_variant_id:tt("unit_variant_id"),...Is,...fs},e=>[Qi({name:"inclusions_pk",columns:[e.programme_id,e.position,e._programme_state]}),de("inclusions_xor_variant_choice",t.sql`num_nonnulls(${e.unit_variant_id}, ${e.choice_id}) = 1`),de("inclusions_choice_state_matches",t.sql`(${e.choice_id} is null) = (${e._choice_state} is null)`),de("inclusions_unit_variant_state_matches",t.sql`(${e.unit_variant_id} is null) = (${e._unit_variant_state} is null)`),Fi("inclusions_choice_unique").on(e.choice_id,e._choice_state).where(t.sql`${e.choice_id} is not null`),Fi("inclusions_programme_unit_variant_unique").on(e.programme_id,e.unit_variant_id,e._programme_state,e._unit_variant_state).where(t.sql`${e.unit_variant_id} is not null`),c({name:"inclusions_programme_fk",columns:[e.programme_id,e._programme_state],foreignColumns:[Nr.programme_id,Nr._state]}),c({name:"inclusions_choice_fk",columns:[e.choice_id,e._choice_state],foreignColumns:[wr.choice_id,wr._state]}),c({name:"inclusions_unit_var_fk",columns:[e.unit_variant_id,e._unit_variant_state],foreignColumns:[yr.unit_variant_id,yr._state]}),Os({name:"inclusions_choice_state_coherence",columnA:e._programme_state,columnB:e._choice_state}),Os({name:"inclusions_unit_var_state_coherence",columnA:e._programme_state,columnB:e._unit_variant_state})]);const Sr=Yn.table("subject_phases",{subject_id:tt("subject_id").notNull(),phase_id:tt("phase_id").notNull(),...Ls,curriculum_intent:ti("curriculum_intent"),deprecated_fields:ct("deprecated_fields"),prior_knowledge_requirements:Pe("prior_knowledge_requirements").notNull().default(!1),related_units:Pe("related_units").notNull().default(!1),unit_description:Pe("unit_description").notNull().default(!1),...Is,...fs},e=>[Qi({columns:[e.subject_id,e.phase_id,e._state]}),c({columns:[e.subject_id],foreignColumns:[ar.subject_id]}),c({columns:[e.phase_id],foreignColumns:[or.phase_id]})]),xr=Yn.table("threads",{thread_id:tt("thread_id").notNull().generatedByDefaultAsIdentity(),...vs,deprecated_fields:ct("deprecated_fields"),description:ti("description"),slug:ti("slug"),thread_uid:Ae("thread_uid",{length:16}),title:ti("title"),...Is,...fs},e=>[Qi({columns:[e.thread_id,e._state]})]);Yn.table("subject_phase_threads",{subject_id:tt("subject_id").notNull(),phase_id:tt("phase_id").notNull(),thread_id:tt("thread_id").notNull(),...qs,...$s,deprecated_fields:ct("deprecated_fields"),position:tt("position").notNull(),...Is,...fs},e=>[Qi({name:"subject_phase_threads_pk",columns:[e.subject_id,e.phase_id,e.thread_id,e._subject_phase_state,e._thread_state]}),c({name:"subject_phase_threads_subject_phase_fk",columns:[e.subject_id,e.phase_id,e._subject_phase_state],foreignColumns:[Sr.subject_id,Sr.phase_id,Sr._state]}),c({name:"subject_phase_threads_thread_fk",columns:[e.thread_id,e._thread_state],foreignColumns:[xr.thread_id,xr._state]}),As({name:"subject_phase_threads_state_coherence",columnA:e._subject_phase_state,columnB:e._thread_state})]),Yn.table("unit_threads",{thread_id:tt("thread_id").notNull(),unit_id:tt("unit_id").notNull(),...$s,...js,deprecated_fields:ct("deprecated_fields"),position:tt("position").notNull(),...Is,...fs},e=>[Qi({name:"unit_threads_pk",columns:[e.thread_id,e.unit_id,e._thread_state,e._unit_state]}),c({name:"unit_threads_thread_fk",columns:[e.thread_id,e._thread_state],foreignColumns:[xr.thread_id,xr._state]}),c({name:"unit_threads_unit_fk",columns:[e.unit_id,e._unit_state],foreignColumns:[Ws.unit_id,Ws._state]}),As({name:"unit_threads_state_coherence",columnA:e._thread_state,columnB:e._unit_state})]),Yn.table("unit_catalogue",{subject_id:tt("subject_id").notNull(),year_id:tt("year_id").notNull(),unit_id:tt("unit_id").notNull(),...Ls,...Is,...fs},e=>[Qi({columns:[e.subject_id,e.year_id,e.unit_id,e._state]}),c({columns:[e.unit_id,e._state],foreignColumns:[Ws.unit_id,Ws._state]}),c({columns:[e.subject_id],foreignColumns:[ar.subject_id]}),c({columns:[e.year_id],foreignColumns:[lr.year_id]})]),Yn.table("unit_lessons",{unit_id:tt("unit_id").notNull(),lesson_id:tt("lesson_id").notNull(),...js,...Ss,position:tt("position").notNull(),...Is,...fs},e=>[Qi({name:"unit_lessons_pk",columns:[e.unit_id,e.lesson_id,e._unit_state,e._lesson_state]}),c({name:"unit_lessons_unit_fk",columns:[e.unit_id,e._unit_state],foreignColumns:[Ws.unit_id,Ws._state]}),c({name:"unit_lessons_lesson_fk",columns:[e.lesson_id,e._lesson_state],foreignColumns:[Fs.lesson_id,Fs._state]}),As({name:"unit_lessons_state_coherence",columnA:e._unit_state,columnB:e._lesson_state})]),Yn.table("unit_variant_lessons",{unit_variant_id:tt("unit_variant_id").notNull(),lesson_id:tt("lesson_id").notNull(),...Ts,...Ss,deprecated_fields:ct("deprecated_fields"),position:tt("position").notNull(),...Is,...fs},e=>[Qi({name:"unit_var_lessons_pk",columns:[e.unit_variant_id,e.lesson_id,e._unit_variant_state,e._lesson_state]}),c({name:"unit_var_lessons_unit_var_fk",columns:[e.unit_variant_id,e._unit_variant_state],foreignColumns:[yr.unit_variant_id,yr._state]}),c({name:"unit_var_lessons_lesson_fk",columns:[e.lesson_id,e._lesson_state],foreignColumns:[Fs.lesson_id,Fs._state]}),As({name:"unit_var_lessons_state_coherence",columnA:e._unit_variant_state,columnB:e._lesson_state})]),Yn.table("unit_features",{unit_id:tt("unit_id").notNull(),feature_id:tt("feature_id").notNull(),...Ls,value:ti("value"),...Is,...fs},e=>[Qi({columns:[e.unit_id,e.feature_id,e._state]}),c({columns:[e.unit_id,e._state],foreignColumns:[Ws.unit_id,Ws._state]}),c({columns:[e.feature_id],foreignColumns:[ir.feature_id]})]);const kr=es.enum("lesson_component_operation_status_enum",["api_neutral","api_in_progress","api_failed","ingest_queued","ingest_in_progress","ingest_failed","ingest_completed"]),Cr=es.enum("lesson_component_status_retirement_enum",["superseded","draft_discarded","component_expired","component_removed","orphaned"]),qr=es.table("lesson_component_status",{lesson_component_status_id:di("lesson_component_status_id").primaryKey().defaultRandom(),lesson_component_id:tt("lesson_component_id").notNull(),lesson_component_type:gs("lesson_component_type").notNull(),active_media_id:tt("active_media_id"),active_media_type:ps("active_media_type"),last_error_location:ti("last_error_location"),last_error_message:ti("last_error_message"),last_error_timestamp:ui("last_error_timestamp"),last_ingest_id:di("last_ingest_id"),operation_status:kr("operation_status").notNull().default("api_neutral"),retired_at:ui("retired_at",{withTimezone:!0}),retired_reason:Cr("retired_reason"),...fs},e=>[de("lesson_comp_status_retired_both",t.sql`(${e.retired_at} is null) = (${e.retired_reason} is null)`),Fi("lesson_comp_status_live_unq").on(e.lesson_component_id,e.lesson_component_type).where(t.sql`${e.retired_at} is null`)]),$r=es.enum("lesson_status_enum",["api_neutral","ingest_queued","ingest_in_progress","ingest_complete","ingest_failed"]);es.table("lesson_status",{lesson_id:tt("lesson_id").primaryKey(),approved:Pe("approved").notNull().default(!1),last_approved:ui("last_approved"),last_error_location:ti("last_error_location"),last_error_message:ti("last_error_message"),last_error_timestamp:ui("last_error_timestamp"),status:$r("status").notNull().default("api_neutral"),...fs});const jr=es.enum("media_status_enum",["neutral","in_progress","failed"]),Tr=es.enum("media_status_retirement_enum",["superseded","media_retired","orphaned"]),Pr=es.table("media_status",{media_status_id:di("media_status_id").primaryKey().defaultRandom(),media_id:tt("media_id").notNull(),media_type:ps("media_type").notNull(),last_error_location:ti("last_error_location"),last_error_message:ti("last_error_message"),last_error_timestamp:ui("last_error_timestamp"),last_lesson_component_id:tt("last_lesson_component_id"),last_lesson_component_type:gs("last_lesson_component_type"),retired_at:ui("retired_at",{withTimezone:!0}),retired_reason:Tr("retired_reason"),status:jr("status").notNull().default("neutral"),...fs},e=>[de("media_status_retired_both",t.sql`(${e.retired_at} is null) = (${e.retired_reason} is null)`),Fi("media_status_live_unq").on(e.media_id,e.media_type).where(t.sql`${e.retired_at} is null`)]);es.table("mutations_log",{mutations_log_id:di("mutations_log_id").primaryKey().defaultRandom(),actor_role:ti("actor_role"),actor_type:ti("actor_type"),app_id:ti("app_id"),changes:ct("changes").notNull(),operation:ms("operation").notNull(),record_key:ct("record_key").notNull(),table_name:ti("table_name").notNull(),...hs},e=>[zi("idx_mutations_log_record_key").using("gin",e.record_key)]),es.table("release_snapshots",{release_snapshot_id:di("release_snapshot_id").primaryKey().defaultRandom(),_release_id:tt("_release_id"),source_created_at:ui("source_created_at"),source_id:tt("source_id"),source_row:ct("source_row"),source_schema:ti("source_schema").default(""),source_state:ts("source_state").notNull(),source_table:ti("source_table").default(""),source_uid:Ae("source_uid",{length:16}),source_updated_at:ui("source_updated_at")},e=>[c({columns:[e._release_id],foreignColumns:[bs.release_id]}),zi("release_snapshots_source_idx").on(e.source_schema,e.source_table,e.source_id),zi("release_snapshots_release_idx").on(e._release_id)]);const Br=es.enum("contract_log_event_type_enum",["works_change","contract_change","works_added_to_contract"]);es.table("tpc_contract_log",{tpc_contract_log_id:tt("tpc_contract_log_id").primaryKey().generatedByDefaultAsIdentity(),tpc_contract_id:tt("tpc_contract_id").notNull(),changed_at:ui("changed_at",{withTimezone:!0}).notNull(),event_type:Br("event_type").notNull(),payload:ct("payload")},e=>[c({name:"tpc_contract_log_tpc_contract_fk",columns:[e.tpc_contract_id],foreignColumns:[er.tpc_contract_id]})]);const Dr=es.enum("restrictions_type_enum",["Restrictions 1","Restrictions 2","Restrictions 3","Restrictions 4","Restrictions 5","Restrictions 6","Restrictions 7","Additional Restrictions"]),Ar=es.table("tpc_restriction_definitions",{tpc_restriction_definition_id:tt("tpc_restriction_definition_id").primaryKey().generatedByDefaultAsIdentity(),restriction_text:ti("restriction_text").notNull(),type:Dr("type").notNull(),...fs},e=>[_("tpc_restriction_definitions_type_unique").on(e.type,e.restriction_text)]);es.table("tpc_restrictions",{tpc_contract_id:tt("tpc_contract_id").notNull(),tpc_restriction_definition_id:tt("tpc_restriction_definition_id").notNull(),...Ls,restriction_override:ti("restriction_override"),...fs},e=>[Qi({name:"tpc_restrictions_pk",columns:[e.tpc_contract_id,e.tpc_restriction_definition_id,e._state]}),c({name:"tpc_restrictions_tpc_contract_fk",columns:[e.tpc_contract_id],foreignColumns:[er.tpc_contract_id]}),c({name:"tpc_restrictions_tpc_restriction_definition_fk",columns:[e.tpc_restriction_definition_id],foreignColumns:[Ar.tpc_restriction_definition_id]})]),Zn.view("unit_variant_exam_board_specs",{unit_variant_id:tt("unit_variant_id"),exam_board_spec_id:tt("exam_board_spec_id"),position:tt("position"),_state:ts("_state"),is_override:Pe("is_override")}).as(t.sql`
|
|
8
8
|
SELECT ovr.unit_variant_id, ovr.exam_board_spec_id, ovr.position,
|
|
9
9
|
ovr._state, true AS is_override
|
|
10
10
|
FROM raw.unit_variant_exam_board_specs_override ovr
|
|
@@ -55,5 +55,5 @@
|
|
|
55
55
|
WHERE ovr.unit_variant_id = uv.unit_variant_id
|
|
56
56
|
AND ovr._state = uv._state
|
|
57
57
|
)
|
|
58
|
-
`);const
|
|
58
|
+
`);const Or=e.createSelectSchema(sr),Ir=e.createInsertSchema(sr),Lr=e.createSelectSchema(ur),zr=e.createSelectSchema(_r),Fr=e.createInsertSchema(_r),Qr=e.createSelectSchema(Vs),Vr=e.createInsertSchema(Vs),Er=e.createSelectSchema(zs),Kr=e.createInsertSchema(zs),Ur=e.createSelectSchema(Fs),Mr=e.createInsertSchema(Fs),Rr=Ur.extend({_state:i.z.literal("published")}),Jr=e.createSelectSchema(qr),Wr=e.createInsertSchema(qr),Hr=e.createSelectSchema(Pr),Gr=e.createInsertSchema(Pr);exports.contentGuidanceInsertSchema=Ir,exports.contentGuidanceScopesSelectSchema=Lr,exports.contentGuidanceSelectSchema=Or,exports.documentInsertSchema=Vr,exports.documentSelectSchema=Qr,exports.gdriveFileInsertSchema=Kr,exports.gdriveFileSelectSchema=Er,exports.lessonComponentStatusInsertSchema=Wr,exports.lessonComponentStatusSelectSchema=Jr,exports.lessonContentGuidanceInsertSchema=Fr,exports.lessonContentGuidanceSelectSchema=zr,exports.lessonInsertSchema=Mr,exports.lessonPublishedSchema=Rr,exports.lessonSelectSchema=Ur,exports.mediaStatusInsertSchema=Gr,exports.mediaStatusSelectSchema=Hr;
|
|
59
59
|
//# sourceMappingURL=index.cjs.map
|