use crate::expander::ExpandedEvent;
#[derive(Debug, Clone, PartialEq)]
pub struct Conflict {
pub event_a: ExpandedEvent,
pub event_b: ExpandedEvent,
pub overlap_minutes: i64,
}
pub fn find_conflicts(events_a: &[ExpandedEvent], events_b: &[ExpandedEvent]) -> Vec<Conflict> {
let mut conflicts = Vec::new();
for a in events_a {
for b in events_b {
if a.start < b.end && b.start < a.end {
let overlap_start = a.start.max(b.start);
let overlap_end = a.end.min(b.end);
let overlap_minutes = (overlap_end - overlap_start).num_minutes();
conflicts.push(Conflict {
event_a: a.clone(),
event_b: b.clone(),
overlap_minutes,
});
}
}
}
conflicts
}