{"version":3,"sources":["../../../../../src/versions/migrations/localizeStatus/sql/migrateMainCollection.ts"],"sourcesContent":["import type { Payload } from '../../../../types/index.js'\n\nimport { toSnakeCase } from '../shared.js'\n\n/**\n * Migrates main collection documents from _status to per-locale status object\n */\nexport async function migrateMainCollectionStatus({\n collectionSlug,\n db,\n locales,\n payload,\n sql,\n versionsTable,\n}: {\n collectionSlug: string\n db: any\n locales: string[]\n payload: Payload\n sql: any\n versionsTable: string\n}): Promise {\n const mainTable = toSnakeCase(collectionSlug)\n const mainLocalesTable = `${mainTable}_locales`\n\n payload.logger.info({ msg: `Migrating main collection locales for: ${mainLocalesTable}` })\n\n // Get all documents\n const documents = await db.execute({\n drizzle: db.drizzle,\n sql: sql`\n SELECT DISTINCT id\n FROM ${sql.identifier(mainTable)}\n `,\n })\n\n for (const doc of documents.rows) {\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 v.parent_id = ${doc.id}\n AND 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 // Update the main collection's locales table with this status\n await db.execute({\n drizzle: db.drizzle,\n sql: sql`\n UPDATE ${sql.identifier(mainLocalesTable)}\n SET _status = ${status}\n WHERE _parent_id = ${doc.id}\n AND _locale = ${locale}\n `,\n })\n }\n }\n\n payload.logger.info({ msg: `Migrated ${documents.rows.length} collection documents` })\n}\n"],"names":["toSnakeCase","migrateMainCollectionStatus","collectionSlug","db","locales","payload","sql","versionsTable","mainTable","mainLocalesTable","logger","info","msg","documents","execute","drizzle","identifier","doc","rows","locale","latestVersionStatus","raw","id","status","_status","length"],"mappings":"AAEA,SAASA,WAAW,QAAQ,eAAc;AAE1C;;CAEC,GACD,OAAO,eAAeC,4BAA4B,EAChDC,cAAc,EACdC,EAAE,EACFC,OAAO,EACPC,OAAO,EACPC,GAAG,EACHC,aAAa,EAQd;IACC,MAAMC,YAAYR,YAAYE;IAC9B,MAAMO,mBAAmB,GAAGD,UAAU,QAAQ,CAAC;IAE/CH,QAAQK,MAAM,CAACC,IAAI,CAAC;QAAEC,KAAK,CAAC,uCAAuC,EAAEH,kBAAkB;IAAC;IAExF,oBAAoB;IACpB,MAAMI,YAAY,MAAMV,GAAGW,OAAO,CAAC;QACjCC,SAASZ,GAAGY,OAAO;QACnBT,KAAKA,GAAG,CAAC;;WAEF,EAAEA,IAAIU,UAAU,CAACR,WAAW;IACnC,CAAC;IACH;IAEA,KAAK,MAAMS,OAAOJ,UAAUK,IAAI,CAAE;QAChC,iDAAiD;QACjD,KAAK,MAAMC,UAAUf,QAAS;YAC5B,MAAMgB,sBAAsB,MAAMjB,GAAGW,OAAO,CAAC;gBAC3CC,SAASZ,GAAGY,OAAO;gBACnBT,KAAKA,GAAG,CAAC;;eAEF,EAAEA,IAAIU,UAAU,CAACT,eAAe;eAChC,EAAED,IAAIe,GAAG,CAAC,GAAGd,cAAc,QAAQ,CAAC,EAAE;8BACvB,EAAEU,IAAIK,EAAE,CAAC;0BACb,EAAEH,OAAO;;;QAG3B,CAAC;YACH;YAEA,MAAMI,SAASH,oBAAoBF,IAAI,CAAC,EAAE,EAAEM,WAAW;YAEvD,8DAA8D;YAC9D,MAAMrB,GAAGW,OAAO,CAAC;gBACfC,SAASZ,GAAGY,OAAO;gBACnBT,KAAKA,GAAG,CAAC;iBACA,EAAEA,IAAIU,UAAU,CAACP,kBAAkB;wBAC5B,EAAEc,OAAO;6BACJ,EAAEN,IAAIK,EAAE,CAAC;wBACd,EAAEH,OAAO;QACzB,CAAC;YACH;QACF;IACF;IAEAd,QAAQK,MAAM,CAACC,IAAI,CAAC;QAAEC,KAAK,CAAC,SAAS,EAAEC,UAAUK,IAAI,CAACO,MAAM,CAAC,qBAAqB,CAAC;IAAC;AACtF"}