use sqlx::Row; pub async fn insert( pool: &sqlx::PgPool, scheduled_message: &textsender_models::message::scheduling::ScheduledMessage, user_id: &uuid::Uuid, ) -> Result<(uuid::Uuid, time::OffsetDateTime), sqlx::Error> { match sqlx::query( r#" INSERT INTO "scheduled_messages" (scheduled, status, user_id) VALUES($1, $2, $3) RETURNING id, created; "#, ) .bind(scheduled_message.scheduled) .bind(&scheduled_message.status) .bind(user_id) .fetch_one(pool) .await { Ok(row) => { let id: uuid::Uuid = row.try_get("id")?; let created: time::OffsetDateTime = row.try_get("created")?; Ok((id, created)) } Err(_) => Err(sqlx::Error::RowNotFound), } }