levi_core/entities/
dependency.rs1use myko::prelude::*;
2
3#[myko_item]
6pub struct Dependency {
7 pub project_id: String,
8 pub blocker_task_id: String,
9 pub blocked_task_id: String,
10 #[serde(default)]
12 pub blocker_project_id: Option<String>,
13 #[serde(default)]
16 pub blocker_ref: Option<String>,
17 #[serde(default)]
20 pub via: Option<String>,
21}
22
23pub fn dependency_id(blocker: &str, blocked: &str) -> String {
24 format!("{blocker}->{blocked}")
25}
26
27pub fn foreign_dependency_id(blocker_project: &str, blocker: &str, blocked: &str) -> String {
29 format!("{blocker_project}/{blocker}->{blocked}")
30}
31
32pub fn foreign_key(project_id: &str, task_id: &str) -> String {
34 format!("{project_id}/{task_id}")
35}