use std::collections::HashMap; use sea_orm::{ColumnTrait, ConnectionTrait, DbErr, EntityTrait, QueryFilter}; use uuid::Uuid; use super::user_emails; /// Maps each user id to its activated primary email (lower-cased form). pub async fn primary_emails( db: &C, uids: &[Uuid], ) -> Result, DbErr> { if uids.is_empty() { return Ok(HashMap::new()); } let rows = user_emails::Entity::find() .filter(user_emails::Column::UserId.is_in(uids.to_vec())) .filter(user_emails::Column::IsPrimary.eq(true)) .filter(user_emails::Column::IsActivated.eq(true)) .filter(user_emails::Column::DeletedAt.is_null()) .all(db) .await?; Ok(rows .into_iter() .map(|r| (r.user_id, r.lower_email)) .collect()) }