use myko::prelude::*;
#[myko_item]
pub struct Dependency {
pub project_id: String,
pub blocker_task_id: String,
pub blocked_task_id: String,
#[serde(default)]
pub blocker_project_id: Option<String>,
#[serde(default)]
pub blocker_ref: Option<String>,
#[serde(default)]
pub via: Option<String>,
}
pub fn dependency_id(blocker: &str, blocked: &str) -> String {
format!("{blocker}->{blocked}")
}
pub fn foreign_dependency_id(blocker_project: &str, blocker: &str, blocked: &str) -> String {
format!("{blocker_project}/{blocker}->{blocked}")
}
pub fn foreign_key(project_id: &str, task_id: &str) -> String {
format!("{project_id}/{task_id}")
}