pulse_pixelstream_types/collection_membership.rs
1use myko::prelude::*;
2use myko_macros::myko_item;
3
4/// Many-to-many placement of one reusable timeline in one organizational bin.
5/// A timeline may appear in several collections without duplicating its definition.
6#[myko_item]
7pub struct CollectionMembership {
8 pub collection_id: String,
9 #[serde(alias = "shotListId")]
10 pub timeline_id: String,
11 #[serde(default)]
12 pub sort_order: u32,
13}
14
15impl CollectionMembership {
16 pub fn stable_id(collection_id: &str, timeline_id: &str) -> String {
17 format!("{collection_id}:timeline:{timeline_id}")
18 }
19}