{"version":3,"file":"beforeChange.mjs","names":["beforeChangeHook: CollectionBeforeChangeHook"],"sources":["../../src/collectionHooks/beforeChange.ts"],"sourcesContent":["import { useErrorHandler } from '../hooks/useErrorHandler'\nimport { MediaCloudErrors } from '../types/errors'\nimport { buildS3Path } from '../utils/buildS3Path'\nimport type { CollectionBeforeChangeHook } from 'payload'\n\nexport const beforeChangeHook: CollectionBeforeChangeHook = async ({\n  data,\n  originalDoc,\n  req,\n}) => {\n  const { throwError } = useErrorHandler()\n  const { custom } = req?.payload?.config ?? {}\n\n  // Check if folders are enabled in plugin options\n  const folders = custom?.mediaCloud?.options?.folders\n\n  // Update path if missing or filename or folder have changed\n  if (\n    (data.filename && data.filename !== originalDoc?.filename) ||\n    (data.folder && data.folder !== originalDoc?.folder) ||\n    !data.path\n  ) {\n    switch (folders) {\n      case true: {\n        let prefix = ''\n\n        if (data.folder) {\n          try {\n            const folder = await req.payload.findByID({\n              id: data.folder,\n              collection: 'payload-folders',\n              select: { name: true, folder: true },\n              depth: 20,\n            })\n\n            if (folder) {\n              prefix = buildS3Path(folder)\n            }\n          } catch (error) {\n            throwError({\n              ...MediaCloudErrors.FOLDER_FETCH_ERROR,\n              cause: error,\n            })\n          }\n        }\n\n        // Save path\n        data.path = prefix ? `${prefix}/${data.filename}` : data.filename\n        break\n      }\n      case false: {\n        // For flat structures, use filename as path\n        data.path = data.filename\n        break\n      }\n    }\n  }\n\n  return data\n}\n"],"mappings":";;;;;AAKA,MAAaA,mBAA+C,OAAO,EACjE,MACA,aACA,UACI;CACJ,MAAM,EAAE,eAAe,iBAAiB;CACxC,MAAM,EAAE,WAAW,KAAK,SAAS,UAAU,EAAE;CAG7C,MAAM,UAAU,QAAQ,YAAY,SAAS;AAG7C,KACG,KAAK,YAAY,KAAK,aAAa,aAAa,YAChD,KAAK,UAAU,KAAK,WAAW,aAAa,UAC7C,CAAC,KAAK,KAEN,SAAQ,SAAR;EACE,KAAK,MAAM;GACT,IAAI,SAAS;AAEb,OAAI,KAAK,OACP,KAAI;IACF,MAAM,SAAS,MAAM,IAAI,QAAQ,SAAS;KACxC,IAAI,KAAK;KACT,YAAY;KACZ,QAAQ;MAAE,MAAM;MAAM,QAAQ;MAAM;KACpC,OAAO;KACR,CAAC;AAEF,QAAI,OACF,UAAS,YAAY,OAAO;YAEvB,OAAO;AACd,eAAW;KACT,GAAG,iBAAiB;KACpB,OAAO;KACR,CAAC;;AAKN,QAAK,OAAO,SAAS,GAAG,OAAO,GAAG,KAAK,aAAa,KAAK;AACzD;;EAEF,KAAK;AAEH,QAAK,OAAO,KAAK;AACjB;;AAKN,QAAO"}