1- import { AdLibAction } from '@sofie-automation/corelib/dist/dataModel/AdlibAction'
2- import { AdLibPiece } from '@sofie-automation/corelib/dist/dataModel/AdLibPiece'
31import { BucketAdLibAction } from '@sofie-automation/corelib/dist/dataModel/BucketAdLibAction'
42import { BucketAdLib } from '@sofie-automation/corelib/dist/dataModel/BucketAdLibPiece'
53import {
64 ExpectedPackageDBType ,
7- ExpectedPackageDBFromPiece ,
8- ExpectedPackageDBFromBaselineAdLibPiece ,
9- ExpectedPackageDBFromAdLibAction ,
10- ExpectedPackageDBFromBaselineAdLibAction ,
115 ExpectedPackageDBFromBucketAdLib ,
126 ExpectedPackageDBFromBucketAdLibAction ,
137 ExpectedPackageDBBase ,
14- ExpectedPackageDBFromRundownBaselineObjects ,
158 getContentVersionHash ,
169 getExpectedPackageId ,
17- ExpectedPackageFromRundown ,
1810} from '@sofie-automation/corelib/dist/dataModel/ExpectedPackages'
1911import {
20- SegmentId ,
2112 RundownId ,
2213 AdLibActionId ,
2314 PieceId ,
@@ -26,9 +17,6 @@ import {
2617 BucketAdLibId ,
2718 StudioId ,
2819} from '@sofie-automation/corelib/dist/dataModel/Ids'
29- import { Piece } from '@sofie-automation/corelib/dist/dataModel/Piece'
30- import { RundownBaselineAdLibAction } from '@sofie-automation/corelib/dist/dataModel/RundownBaselineAdLibAction'
31- import { RundownBaselineAdLibItem } from '@sofie-automation/corelib/dist/dataModel/RundownBaselineAdLibPiece'
3220import { saveIntoDb } from '../db/changes'
3321import { PlayoutModel } from '../playout/model/PlayoutModel'
3422import { StudioPlayoutModel } from '../studio/model/StudioPlayoutModel'
@@ -41,214 +29,24 @@ import {
4129 updateExpectedPlayoutItemsForRundownBaseline ,
4230} from './expectedPlayoutItems'
4331import { JobContext , JobStudio } from '../jobs'
44- import { ExpectedPackageForIngestModelBaseline , IngestModel } from './model/IngestModel'
32+ import { IngestModel } from './model/IngestModel'
4533import { IngestPartModel } from './model/IngestPartModel'
4634import { clone } from '@sofie-automation/corelib/dist/lib'
4735
48- export function updateExpectedPackagesForPartModel ( context : JobContext , part : IngestPartModel ) : void {
36+ export function updateExpectedMediaAndPlayoutItemsForPartModel ( context : JobContext , part : IngestPartModel ) : void {
4937 updateExpectedMediaItemsForPartModel ( context , part )
5038 updateExpectedPlayoutItemsForPartModel ( context , part )
51-
52- const expectedPackages : ExpectedPackageFromRundown [ ] = [
53- ...generateExpectedPackagesForPiece (
54- context . studio ,
55- part . part . rundownId ,
56- part . part . segmentId ,
57- part . pieces ,
58- ExpectedPackageDBType . PIECE
59- ) ,
60- ...generateExpectedPackagesForPiece (
61- context . studio ,
62- part . part . rundownId ,
63- part . part . segmentId ,
64- part . adLibPieces ,
65- ExpectedPackageDBType . ADLIB_PIECE
66- ) ,
67- ...generateExpectedPackagesForAdlibAction (
68- context . studio ,
69- part . part . rundownId ,
70- part . part . segmentId ,
71- part . adLibActions
72- ) ,
73- ]
74-
75- part . setExpectedPackages ( expectedPackages )
7639}
7740
78- export async function updateExpectedPackagesForRundownBaseline (
41+ export async function updateExpectedMediaAndPlayoutItemsForRundownBaseline (
7942 context : JobContext ,
8043 ingestModel : IngestModel ,
81- baseline : BlueprintResultBaseline | undefined ,
82- forceBaseline = false
44+ baseline : BlueprintResultBaseline | undefined
8345) : Promise < void > {
8446 await updateExpectedMediaItemsForRundownBaseline ( context , ingestModel )
8547 await updateExpectedPlayoutItemsForRundownBaseline ( context , ingestModel , baseline )
86-
87- const expectedPackages : ExpectedPackageForIngestModelBaseline [ ] = [ ]
88-
89- const preserveTypesDuringSave = new Set < ExpectedPackageDBType > ( )
90-
91- // Only regenerate the baseline types if they are already loaded into memory
92- // If the data isn't already loaded, then we haven't made any changes to the baseline adlibs
93- // This means we can skip regenerating them as it is guaranteed there will be no changes
94- const baselineAdlibPieceCache = forceBaseline
95- ? await ingestModel . rundownBaselineAdLibPieces . get ( )
96- : ingestModel . rundownBaselineAdLibPieces . getIfLoaded ( )
97- if ( baselineAdlibPieceCache ) {
98- expectedPackages . push (
99- ...generateExpectedPackagesForBaselineAdlibPiece (
100- context . studio ,
101- ingestModel . rundownId ,
102- baselineAdlibPieceCache
103- )
104- )
105- } else {
106- // We haven't regenerated anything, so preserve the values in the save
107- preserveTypesDuringSave . add ( ExpectedPackageDBType . BASELINE_ADLIB_PIECE )
108- }
109- const baselineAdlibActionCache = forceBaseline
110- ? await ingestModel . rundownBaselineAdLibActions . get ( )
111- : ingestModel . rundownBaselineAdLibActions . getIfLoaded ( )
112- if ( baselineAdlibActionCache ) {
113- expectedPackages . push (
114- ...generateExpectedPackagesForBaselineAdlibAction (
115- context . studio ,
116- ingestModel . rundownId ,
117- baselineAdlibActionCache
118- )
119- )
120- } else {
121- // We haven't regenerated anything, so preserve the values in the save
122- preserveTypesDuringSave . add ( ExpectedPackageDBType . BASELINE_ADLIB_ACTION )
123- }
124-
125- if ( baseline ) {
126- // Fill in ids of unnamed expectedPackages
127- setDefaultIdOnExpectedPackages ( baseline . expectedPackages )
128-
129- const bases = generateExpectedPackageBases (
130- context . studio ,
131- ingestModel . rundownId ,
132- baseline . expectedPackages ?? [ ]
133- )
134-
135- expectedPackages . push (
136- ...bases . map ( ( item ) : ExpectedPackageDBFromRundownBaselineObjects => {
137- return {
138- ...item ,
139- fromPieceType : ExpectedPackageDBType . RUNDOWN_BASELINE_OBJECTS ,
140- rundownId : ingestModel . rundownId ,
141- pieceId : null ,
142- }
143- } )
144- )
145- } else {
146- // We haven't regenerated anything, so preserve the values in the save
147- preserveTypesDuringSave . add ( ExpectedPackageDBType . RUNDOWN_BASELINE_OBJECTS )
148- }
149-
150- // Preserve anything existing
151- for ( const expectedPackage of ingestModel . expectedPackagesForRundownBaseline ) {
152- if ( preserveTypesDuringSave . has ( expectedPackage . fromPieceType ) ) {
153- expectedPackages . push ( clone < ExpectedPackageForIngestModelBaseline > ( expectedPackage ) )
154- }
155- }
156-
157- ingestModel . setExpectedPackagesForRundownBaseline ( expectedPackages )
15848}
15949
160- function generateExpectedPackagesForPiece (
161- studio : ReadonlyDeep < JobStudio > ,
162- rundownId : RundownId ,
163- segmentId : SegmentId ,
164- pieces : ReadonlyDeep < Piece | AdLibPiece > [ ] ,
165- type : ExpectedPackageDBType . PIECE | ExpectedPackageDBType . ADLIB_PIECE
166- ) {
167- const packages : ExpectedPackageDBFromPiece [ ] = [ ]
168- for ( const piece of pieces ) {
169- const partId = 'startPartId' in piece ? piece . startPartId : piece . partId
170- if ( piece . expectedPackages && partId ) {
171- const bases = generateExpectedPackageBases ( studio , piece . _id , piece . expectedPackages )
172- for ( const base of bases ) {
173- packages . push ( {
174- ...base ,
175- rundownId,
176- segmentId,
177- partId,
178- pieceId : piece . _id ,
179- fromPieceType : type ,
180- } )
181- }
182- }
183- }
184- return packages
185- }
186- function generateExpectedPackagesForBaselineAdlibPiece (
187- studio : ReadonlyDeep < JobStudio > ,
188- rundownId : RundownId ,
189- pieces : ReadonlyDeep < RundownBaselineAdLibItem [ ] >
190- ) {
191- const packages : ExpectedPackageDBFromBaselineAdLibPiece [ ] = [ ]
192- for ( const piece of pieces ) {
193- if ( piece . expectedPackages ) {
194- const bases = generateExpectedPackageBases ( studio , piece . _id , piece . expectedPackages )
195- for ( const base of bases ) {
196- packages . push ( {
197- ...base ,
198- rundownId,
199- pieceId : piece . _id ,
200- fromPieceType : ExpectedPackageDBType . BASELINE_ADLIB_PIECE ,
201- } )
202- }
203- }
204- }
205- return packages
206- }
207- function generateExpectedPackagesForAdlibAction (
208- studio : ReadonlyDeep < JobStudio > ,
209- rundownId : RundownId ,
210- segmentId : SegmentId ,
211- actions : ReadonlyDeep < AdLibAction [ ] >
212- ) {
213- const packages : ExpectedPackageDBFromAdLibAction [ ] = [ ]
214- for ( const action of actions ) {
215- if ( action . expectedPackages ) {
216- const bases = generateExpectedPackageBases ( studio , action . _id , action . expectedPackages )
217- for ( const base of bases ) {
218- packages . push ( {
219- ...base ,
220- rundownId,
221- segmentId,
222- partId : action . partId ,
223- pieceId : action . _id ,
224- fromPieceType : ExpectedPackageDBType . ADLIB_ACTION ,
225- } )
226- }
227- }
228- }
229- return packages
230- }
231- function generateExpectedPackagesForBaselineAdlibAction (
232- studio : ReadonlyDeep < JobStudio > ,
233- rundownId : RundownId ,
234- actions : ReadonlyDeep < RundownBaselineAdLibAction [ ] >
235- ) {
236- const packages : ExpectedPackageDBFromBaselineAdLibAction [ ] = [ ]
237- for ( const action of actions ) {
238- if ( action . expectedPackages ) {
239- const bases = generateExpectedPackageBases ( studio , action . _id , action . expectedPackages )
240- for ( const base of bases ) {
241- packages . push ( {
242- ...base ,
243- rundownId,
244- pieceId : action . _id ,
245- fromPieceType : ExpectedPackageDBType . BASELINE_ADLIB_ACTION ,
246- } )
247- }
248- }
249- }
250- return packages
251- }
25250function generateExpectedPackagesForBucketAdlib ( studio : ReadonlyDeep < JobStudio > , adlibs : BucketAdLib [ ] ) {
25351 const packages : ExpectedPackageDBFromBucketAdLib [ ] = [ ]
25452 for ( const adlib of adlibs ) {
0 commit comments