systemprompt_users/repository/user/
bulk.rs1use systemprompt_identifiers::UserId;
7
8use crate::error::Result;
9use crate::models::UserStatus;
10use crate::repository::UserRepository;
11
12impl UserRepository {
13 pub async fn bulk_update_status(&self, user_ids: &[UserId], new_status: &str) -> Result<u64> {
14 let ids: Vec<String> = user_ids.iter().map(ToString::to_string).collect();
15 let result = sqlx::query!(
16 r#"
17 UPDATE users
18 SET status = $1, updated_at = NOW()
19 WHERE id = ANY($2)
20 "#,
21 new_status,
22 &ids[..]
23 )
24 .execute(&*self.write_pool)
25 .await?;
26
27 Ok(result.rows_affected())
28 }
29
30 pub async fn bulk_delete(&self, user_ids: &[UserId]) -> Result<u64> {
31 let deleted_status = UserStatus::Deleted.as_str();
32 let ids: Vec<String> = user_ids.iter().map(ToString::to_string).collect();
33 let result = sqlx::query!(
34 r#"
35 UPDATE users
36 SET status = $1, updated_at = NOW()
37 WHERE id = ANY($2)
38 "#,
39 deleted_status,
40 &ids[..]
41 )
42 .execute(&*self.write_pool)
43 .await?;
44
45 Ok(result.rows_affected())
46 }
47}