Files
snooze-pal/src/dao/alarm.rs
2026-03-03 12:14:39 +01:00

37 lines
891 B
Rust

use chrono::{DateTime, Local, Utc};
use sea_orm::{
ActiveModelTrait, ActiveValue::Set, ColumnTrait, ConnectionTrait, DbErr, EntityTrait, QueryFilter
};
use crate::model::{self, alarm};
pub async fn create_alarm<C: ConnectionTrait>(
db: &C,
title: &str,
time: DateTime<Utc>,
) -> Result<alarm::Model, DbErr> {
let alarm_to_create = model::alarm::ActiveModel {
title: Set(title.to_string()),
time: Set(time.naive_utc()),
enabled: Set(true),
..Default::default()
};
Ok(alarm_to_create.insert(db).await?)
}
pub async fn get_alarms<C: ConnectionTrait>(db: &C, enabled: Option<bool>) -> Result<Vec<alarm::Model>, DbErr> {
let query = model::alarm::Entity::find();
let query = match enabled {
Some(enabled) => {
query.filter(model::alarm::Column::Enabled.eq(enabled))
},
None => {
query
}
};
query.all(db).await
}