@@ -242,12 +242,14 @@ export async function handleRestorePlaylistSnapshot(
242242
243243 partIdMap . set ( oldId , part . _id )
244244 }
245+
245246 const partInstanceOldRundownIdMap = new Map < PartInstanceId , RundownId > ( )
246247 const partInstanceIdMap = new Map < PartInstanceId , PartInstanceId > ( )
247248 for ( const partInstance of snapshot . partInstances ) {
248249 const oldId = partInstance . _id
249250 partInstance . _id = getRandomId ( )
250251 partInstanceIdMap . set ( oldId , partInstance . _id )
252+
251253 partInstance . part . _id = partIdMap . get ( partInstance . part . _id ) || getRandomId ( )
252254 partInstanceOldRundownIdMap . set ( oldId , partInstance . rundownId )
253255 }
@@ -279,7 +281,6 @@ export async function handleRestorePlaylistSnapshot(
279281 ...snapshot . baselineAdLibActions ,
280282 ] ) {
281283 const oldId = adlib . _id
282- if ( adlib . partId ) adlib . partId = partIdMap . get ( adlib . partId )
283284 adlib . _id = getRandomId ( )
284285 pieceIdMap . set ( oldId , adlib . _id )
285286 }
@@ -367,7 +368,7 @@ export async function handleRestorePlaylistSnapshot(
367368 piece ?: unknown
368369 }
369370 > ( objs : undefined | T [ ] , updateId : boolean ) : T [ ] {
370- const updateIds = ( obj : T ) => {
371+ const updateIds = ( obj : T , updateOwnId : boolean ) => {
371372 if ( obj . rundownId ) {
372373 obj . rundownId = getNewRundownId ( obj . rundownId )
373374 }
@@ -382,20 +383,20 @@ export async function handleRestorePlaylistSnapshot(
382383 obj . partInstanceId = partInstanceIdMap . get ( obj . partInstanceId ) || getRandomId ( )
383384 }
384385
385- if ( updateId ) {
386+ if ( updateOwnId ) {
386387 obj . _id = getRandomId ( )
387388 }
388389
389390 if ( obj . part ) {
390- updateIds ( obj . part as any )
391+ updateIds ( obj . part as any , false )
391392 }
392393 if ( obj . piece ) {
393- updateIds ( obj . piece as any )
394+ updateIds ( obj . piece as any , false )
394395 }
395396
396397 return obj
397398 }
398- return ( objs || [ ] ) . map ( ( obj ) => updateIds ( obj ) )
399+ return ( objs || [ ] ) . map ( ( obj ) => updateIds ( obj , updateId ) )
399400 }
400401
401402 await Promise . all ( [
@@ -417,13 +418,13 @@ export async function handleRestorePlaylistSnapshot(
417418 context ,
418419 context . directCollections . RundownBaselineAdLibPieces ,
419420 { rundownId : { $in : rundownIds } } ,
420- updateItemIds ( snapshot . baselineAdlibs , true )
421+ updateItemIds ( snapshot . baselineAdlibs , false )
421422 ) ,
422423 saveIntoDb (
423424 context ,
424425 context . directCollections . RundownBaselineAdLibActions ,
425426 { rundownId : { $in : rundownIds } } ,
426- updateItemIds ( snapshot . baselineAdLibActions , true )
427+ updateItemIds ( snapshot . baselineAdLibActions , false )
427428 ) ,
428429 saveIntoDb (
429430 context ,
@@ -459,13 +460,13 @@ export async function handleRestorePlaylistSnapshot(
459460 context ,
460461 context . directCollections . AdLibPieces ,
461462 { rundownId : { $in : rundownIds } } ,
462- updateItemIds ( snapshot . adLibPieces , true )
463+ updateItemIds ( snapshot . adLibPieces , false )
463464 ) ,
464465 saveIntoDb (
465466 context ,
466467 context . directCollections . AdLibActions ,
467468 { rundownId : { $in : rundownIds } } ,
468- updateItemIds ( snapshot . adLibActions , true )
469+ updateItemIds ( snapshot . adLibActions , false )
469470 ) ,
470471 saveIntoDb (
471472 context ,
@@ -477,13 +478,13 @@ export async function handleRestorePlaylistSnapshot(
477478 context ,
478479 context . directCollections . ExpectedPlayoutItems ,
479480 { rundownId : { $in : rundownIds } } ,
480- updateItemIds ( snapshot . expectedPlayoutItems || [ ] , false )
481+ updateItemIds ( snapshot . expectedPlayoutItems || [ ] , true )
481482 ) ,
482483 saveIntoDb (
483484 context ,
484485 context . directCollections . ExpectedPackages ,
485486 { rundownId : { $in : rundownIds } } ,
486- updateItemIds ( snapshot . expectedPackages || [ ] , false )
487+ snapshot . expectedPackages || [ ]
487488 ) ,
488489 ] )
489490
0 commit comments