pub fn ordinary_task_clause(alias: &'static str) -> String {
format!(
"NOT EXISTS (
SELECT 1 FROM recurrence_occurrences ro
JOIN recurrence_series rs
ON rs.workspace_id = ro.workspace_id AND rs.id = ro.series_id
WHERE ro.workspace_id = {alias}.workspace_id AND ro.task_id = {alias}.id
AND (ro.projection_state = 'archived'
OR (ro.projection_state = 'projected' AND rs.state = 'paused'))
)"
)
}
pub fn open_task_clause(alias: &'static str) -> String {
format!(
"{alias}.deleted = 0 AND {alias}.status NOT IN ('done', 'canceled') AND {}",
ordinary_task_clause(alias)
)
}
pub fn terminal_status_clause(alias: &'static str) -> String {
format!("{alias}.status IN ('done', 'canceled')")
}