use sea_orm::{ActiveModelTrait, ColumnTrait, DbConn, DbErr, EntityTrait, QueryFilter, Set}; use models::domains::user; use models::params::user::CreateUserParams; use models::queries::user::UserQuery; pub async fn create_user( db: &DbConn, params: CreateUserParams, ) -> Result { user::ActiveModel { username: Set(params.username), ..Default::default() } .save(db) .await } pub async fn search_users(db: &DbConn, query: UserQuery) -> Result, DbErr> { user::Entity::find() .filter(user::Column::Username.contains(query.username.unwrap_or_default())) .all(db) .await } pub async fn get_user(db: &DbConn, id: i32) -> Result, DbErr> { user::Entity::find_by_id(id).one(db).await } pub async fn get_user_by_username( db: &DbConn, username: &str, ) -> Result, DbErr> { user::Entity::find() .filter(user::Column::Username.eq(username)) .one(db) .await } pub async fn get_users_by_ids(db: &DbConn, ids: Vec) -> Result, DbErr> { user::Entity::find() .filter(user::Column::Id.is_in(ids)) .all(db) .await }