use myko::prelude::*;
use myko_macros::myko_item;
/// Many-to-many placement of one reusable timeline in one organizational bin.
/// A timeline may appear in several collections without duplicating its definition.
#[myko_item]
pub struct CollectionMembership {
pub collection_id: String,
#[serde(alias = "shotListId")]
pub timeline_id: String,
#[serde(default)]
pub sort_order: u32,
}
impl CollectionMembership {
pub fn stable_id(collection_id: &str, timeline_id: &str) -> String {
format!("{collection_id}:timeline:{timeline_id}")
}
}