move_timer 0.1.0

a small, portable desktop app reminding you to move a bit during ctivities like programming
use std::time::Duration;

#[cfg(target_os = "macos")]
use chrono::{DateTime, Utc};
use notify_rust::Notification;
use tracing::info;

use crate::utils::format_as_secs_minutes_and_hours;

//maybe blocking
pub(crate) fn move_notif(duration_elapsed: Duration) -> notify_rust::error::Result<()> {
    let body = format!(
        "Move a bit!\n({} elapsed)",
        format_as_secs_minutes_and_hours(duration_elapsed)
    );

    let mut notif = Notification::new();

    notif.summary("Time to move!").body(body.as_str());

    #[cfg(all(unix, not(target_os = "macos")))]
    notif.timeout(Duration::from_secs(60));

    notif.sound_name("ping");

    #[cfg(not(target_os = "macos"))]
    notif.urgency(notify_rust::Urgency::Critical);

    #[cfg(target_os = "macos")]
    notif.schedule(Utc::now());

    info!("showing notification");

    let _handle = notif.show();

    Ok(())
}