@@ -6,6 +6,7 @@ import { DBRundownPlaylist } from '@sofie-automation/corelib/dist/dataModel/Rund
66import { DBStudio , IStudioSettings } from '@sofie-automation/corelib/dist/dataModel/Studio'
77import { DBPartInstance } from '@sofie-automation/corelib/dist/dataModel/PartInstance'
88import { StudioId } from '@sofie-automation/corelib/dist/dataModel/Ids'
9+ import { DBPart } from '@sofie-automation/corelib/dist/dataModel/Part'
910
1011export type RundownPlaylistCompact = Pick < DBRundownPlaylist , '_id' | 'activationId' | 'quickLoop' | 'rundownIdsInOrder' >
1112export const rundownPlaylistFieldSpecifier = literal < MongoFieldSpecifierOnesStrict < RundownPlaylistCompact > > ( {
@@ -22,6 +23,14 @@ export const segmentFieldSpecifier = literal<MongoFieldSpecifierOnesStrict<Pick<
2223 rundownId : 1 ,
2324} )
2425
26+ export type PartFields = '_id' | '_rank' | 'rundownId' | 'segmentId'
27+ export const partFieldSpecifier = literal < MongoFieldSpecifierOnesStrict < Pick < DBPart , PartFields > > > ( {
28+ _id : 1 ,
29+ _rank : 1 ,
30+ segmentId : 1 ,
31+ rundownId : 1 ,
32+ } )
33+
2534export type PartInstanceOmitedFields = 'part.privateData'
2635export const partInstanceFieldSpecifier = literal < MongoFieldSpecifierZeroes < DBPartInstance > > ( {
2736 // @ts -expect-error Mongo typings aren't clever enough yet
@@ -42,6 +51,7 @@ export interface StudioSettingsDoc {
4251export interface ContentCache {
4352 StudioSettings : ReactiveCacheCollection < StudioSettingsDoc >
4453 Segments : ReactiveCacheCollection < Pick < DBSegment , SegmentFields > >
54+ Parts : ReactiveCacheCollection < Pick < DBPart , PartFields > >
4555 PartInstances : ReactiveCacheCollection < Omit < DBPartInstance , PartInstanceOmitedFields > >
4656 RundownPlaylists : ReactiveCacheCollection < RundownPlaylistCompact >
4757}
@@ -50,6 +60,7 @@ export function createReactiveContentCache(): ContentCache {
5060 const cache : ContentCache = {
5161 StudioSettings : new ReactiveCacheCollection < StudioSettingsDoc > ( 'studioSettings' ) ,
5262 Segments : new ReactiveCacheCollection < Pick < DBSegment , SegmentFields > > ( 'segments' ) ,
63+ Parts : new ReactiveCacheCollection < Pick < DBPart , PartFields > > ( 'parts' ) ,
5364 PartInstances : new ReactiveCacheCollection < Omit < DBPartInstance , PartInstanceOmitedFields > > ( 'partInstances' ) ,
5465 RundownPlaylists : new ReactiveCacheCollection < RundownPlaylistCompact > ( 'rundownPlaylists' ) ,
5566 }
0 commit comments