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( db: &C, title: &str, time: DateTime, ) -> Result { 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(db: &C, enabled: Option) -> Result, 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 }