{"version":3,"sources":["../../../../../src/versions/migrations/localizeStatus/sql/migrateMainGlobal.ts"],"sourcesContent":["import type { Payload } from '../../../../types/index.js'\n\nimport { toSnakeCase } from '../shared.js'\n\n/**\n * Migrates main global document from _status to per-locale status object\n */\nexport async function migrateMainGlobalStatus({\n db,\n globalSlug,\n locales,\n payload,\n sql,\n versionsTable,\n}: {\n db: any\n globalSlug: string\n locales: string[]\n payload: Payload\n sql: any\n versionsTable: string\n}): Promise {\n const globalTable = toSnakeCase(globalSlug)\n const globalLocalesTable = `${globalTable}_locales`\n\n payload.logger.info({ msg: `Migrating main global locales for: ${globalLocalesTable}` })\n\n // For each locale, get the latest version status\n for (const locale of locales) {\n const latestVersionStatus = await db.execute({\n drizzle: db.drizzle,\n sql: sql`\n SELECT l.version__status as _status\n FROM ${sql.identifier(versionsTable)} v\n JOIN ${sql.raw(`${versionsTable}_locales`)} l ON l._parent_id = v.id\n WHERE l._locale = ${locale}\n ORDER BY v.created_at DESC\n LIMIT 1\n `,\n })\n\n const status = latestVersionStatus.rows[0]?._status || 'draft'\n\n // Get the global document ID from the globals table\n const globalDoc = await db.execute({\n drizzle: db.drizzle,\n sql: sql`\n SELECT id FROM ${sql.identifier(globalTable)} LIMIT 1\n `,\n })\n\n if (globalDoc.rows.length === 0) {\n payload.logger.warn({ msg: `No global document found for ${globalSlug}, skipping` })\n continue\n }\n\n const globalId = globalDoc.rows[0].id\n\n // Update the global's locales table with this status\n await db.execute({\n drizzle: db.drizzle,\n sql: sql`\n UPDATE ${sql.identifier(globalLocalesTable)}\n SET _status = ${status}\n WHERE _parent_id = ${globalId}\n AND _locale = ${locale}\n `,\n })\n }\n\n payload.logger.info({ msg: 'Migrated global document' })\n}\n"],"names":["toSnakeCase","migrateMainGlobalStatus","db","globalSlug","locales","payload","sql","versionsTable","globalTable","globalLocalesTable","logger","info","msg","locale","latestVersionStatus","execute","drizzle","identifier","raw","status","rows","_status","globalDoc","length","warn","globalId","id"],"mappings":"AAEA,SAASA,WAAW,QAAQ,eAAc;AAE1C;;CAEC,GACD,OAAO,eAAeC,wBAAwB,EAC5CC,EAAE,EACFC,UAAU,EACVC,OAAO,EACPC,OAAO,EACPC,GAAG,EACHC,aAAa,EAQd;IACC,MAAMC,cAAcR,YAAYG;IAChC,MAAMM,qBAAqB,GAAGD,YAAY,QAAQ,CAAC;IAEnDH,QAAQK,MAAM,CAACC,IAAI,CAAC;QAAEC,KAAK,CAAC,mCAAmC,EAAEH,oBAAoB;IAAC;IAEtF,iDAAiD;IACjD,KAAK,MAAMI,UAAUT,QAAS;QAC5B,MAAMU,sBAAsB,MAAMZ,GAAGa,OAAO,CAAC;YAC3CC,SAASd,GAAGc,OAAO;YACnBV,KAAKA,GAAG,CAAC;;aAEF,EAAEA,IAAIW,UAAU,CAACV,eAAe;aAChC,EAAED,IAAIY,GAAG,CAAC,GAAGX,cAAc,QAAQ,CAAC,EAAE;0BACzB,EAAEM,OAAO;;;MAG7B,CAAC;QACH;QAEA,MAAMM,SAASL,oBAAoBM,IAAI,CAAC,EAAE,EAAEC,WAAW;QAEvD,oDAAoD;QACpD,MAAMC,YAAY,MAAMpB,GAAGa,OAAO,CAAC;YACjCC,SAASd,GAAGc,OAAO;YACnBV,KAAKA,GAAG,CAAC;uBACQ,EAAEA,IAAIW,UAAU,CAACT,aAAa;MAC/C,CAAC;QACH;QAEA,IAAIc,UAAUF,IAAI,CAACG,MAAM,KAAK,GAAG;YAC/BlB,QAAQK,MAAM,CAACc,IAAI,CAAC;gBAAEZ,KAAK,CAAC,6BAA6B,EAAET,WAAW,UAAU,CAAC;YAAC;YAClF;QACF;QAEA,MAAMsB,WAAWH,UAAUF,IAAI,CAAC,EAAE,CAACM,EAAE;QAErC,qDAAqD;QACrD,MAAMxB,GAAGa,OAAO,CAAC;YACfC,SAASd,GAAGc,OAAO;YACnBV,KAAKA,GAAG,CAAC;eACA,EAAEA,IAAIW,UAAU,CAACR,oBAAoB;sBAC9B,EAAEU,OAAO;2BACJ,EAAEM,SAAS;sBAChB,EAAEZ,OAAO;MACzB,CAAC;QACH;IACF;IAEAR,QAAQK,MAAM,CAACC,IAAI,CAAC;QAAEC,KAAK;IAA2B;AACxD"}