{"version":3,"file":"dp.mjs","sources":["../../../../../../src/services/document-service/transform/relations/utils/dp.ts"],"sourcesContent":["import { isNil } from 'lodash/fp';\n\nimport { contentTypes } from '@strapi/utils';\nimport type { UID } from '@strapi/types';\n\nimport { LongHandDocument } from './types';\n\ntype Status = 'draft' | 'published';\n\nexport const getRelationTargetStatus = (\n  relation: Pick<LongHandDocument, 'documentId' | 'status'>,\n  opts: {\n    targetUid: UID.Schema;\n    sourceUid: UID.Schema;\n    sourceStatus?: Status;\n  }\n): Status[] => {\n  // Ignore if the target content type does not have draft and publish enabled\n  const targetContentType = strapi.getModel(opts.targetUid);\n  const sourceContentType = strapi.getModel(opts.sourceUid);\n\n  const targetHasDP = contentTypes.hasDraftAndPublish(targetContentType);\n  const sourceHasDP = contentTypes.hasDraftAndPublish(sourceContentType);\n\n  if (!targetHasDP) {\n    return ['published'];\n  }\n\n  /**\n   * If both source and target have DP enabled,\n   * connect it to the same status as the source status\n   */\n  if (sourceHasDP && !isNil(opts.sourceStatus)) {\n    return [opts.sourceStatus];\n  }\n\n  /**\n   * Use the status from the relation if it's set\n   */\n  if (relation.status) {\n    switch (relation.status) {\n      case 'published':\n        return ['published'];\n      default:\n        // Default to draft if it's an invalid status (e.g. modified)\n        return ['draft'];\n    }\n  }\n\n  /**\n   * If DP is disabled and relation does not specify any status\n   * Connect to both draft and published versions\n   */\n  if (!sourceHasDP) {\n    return ['draft', 'published'];\n  }\n\n  // Default to draft as a fallback\n  return ['draft'];\n};\n"],"names":["getRelationTargetStatus","relation","opts","targetContentType","strapi","getModel","targetUid","sourceContentType","sourceUid","targetHasDP","contentTypes","hasDraftAndPublish","sourceHasDP","isNil","sourceStatus","status"],"mappings":";;;AASO,MAAMA,uBAAAA,GAA0B,CACrCC,QAAAA,EACAC,IAAAA,GAAAA;;AAOA,IAAA,MAAMC,iBAAAA,GAAoBC,MAAAA,CAAOC,QAAQ,CAACH,KAAKI,SAAS,CAAA;AACxD,IAAA,MAAMC,iBAAAA,GAAoBH,MAAAA,CAAOC,QAAQ,CAACH,KAAKM,SAAS,CAAA;IAExD,MAAMC,WAAAA,GAAcC,YAAAA,CAAaC,kBAAkB,CAACR,iBAAAA,CAAAA;IACpD,MAAMS,WAAAA,GAAcF,YAAAA,CAAaC,kBAAkB,CAACJ,iBAAAA,CAAAA;AAEpD,IAAA,IAAI,CAACE,WAAAA,EAAa;QAChB,OAAO;AAAC,YAAA;AAAY,SAAA;AACtB,IAAA;AAEA;;;AAGC,MACD,IAAIG,WAAAA,IAAe,CAACC,KAAAA,CAAMX,IAAAA,CAAKY,YAAY,CAAA,EAAG;QAC5C,OAAO;AAACZ,YAAAA,IAAAA,CAAKY;AAAa,SAAA;AAC5B,IAAA;AAEA;;MAGA,IAAIb,QAAAA,CAASc,MAAM,EAAE;AACnB,QAAA,OAAQd,SAASc,MAAM;YACrB,KAAK,WAAA;gBACH,OAAO;AAAC,oBAAA;AAAY,iBAAA;AACtB,YAAA;;gBAEE,OAAO;AAAC,oBAAA;AAAQ,iBAAA;AACpB;AACF,IAAA;AAEA;;;MAIA,IAAI,CAACH,WAAAA,EAAa;QAChB,OAAO;AAAC,YAAA,OAAA;AAAS,YAAA;AAAY,SAAA;AAC/B,IAAA;;IAGA,OAAO;AAAC,QAAA;AAAQ,KAAA;AAClB;;;;"}