Skip to main content

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}