kill LibraryItem, unify to MediaItem; decouple schedule engine from providers
ADR-0001: MediaItem absorbs LibraryItem fields (provider_id, external_id, collection_name, collection_type, synced_at, role/MediaRole). LibraryItem + LibraryItemRow deleted. All ports/adapters/tests updated. ADR-0002: schedule engine takes LibraryQuery instead of IProviderRegistry. Algorithmic blocks query library via search(), manual blocks via get_by_id(). get_stream_url removed from engine; provider_registry moved to ScheduleDeps for playback-time stream URL resolution in application layer. BlockContent provider_id field removed (meaningless when querying library).
This commit is contained in:
@@ -342,7 +342,6 @@ impl ProgrammingBlock {
|
||||
content: BlockContent::Algorithmic {
|
||||
filter,
|
||||
strategy,
|
||||
provider_id: String::new(),
|
||||
},
|
||||
loop_on_finish: true,
|
||||
ignore_rotation_policy: false,
|
||||
@@ -362,7 +361,6 @@ impl ProgrammingBlock {
|
||||
duration_mins,
|
||||
content: BlockContent::Manual {
|
||||
items,
|
||||
provider_id: String::new(),
|
||||
},
|
||||
loop_on_finish: true,
|
||||
ignore_rotation_policy: false,
|
||||
@@ -403,14 +401,10 @@ impl ProgrammingBlock {
|
||||
pub enum BlockContent {
|
||||
Manual {
|
||||
items: Vec<MediaItemId>,
|
||||
#[serde(default)]
|
||||
provider_id: String,
|
||||
},
|
||||
Algorithmic {
|
||||
filter: MediaFilter,
|
||||
strategy: FillStrategy,
|
||||
#[serde(default)]
|
||||
provider_id: String,
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user