systemprompt_users/repository/
mod.rs1mod api_key;
14mod banned_ip;
15mod device_cert;
16mod federated_identity;
17mod rate_limit_bucket;
18mod role_directory;
19mod session;
20mod user;
21
22pub use api_key::CreateApiKeyParams;
23pub use banned_ip::{
24 BanDuration, BanIpParams, BanIpWithMetadataParams, BannedIp, BannedIpRepository,
25};
26pub use device_cert::EnrollDeviceCertParams;
27pub use rate_limit_bucket::UserRateLimitBucketRepository;
28pub use role_directory::UsersRoleDirectory;
29pub use session::SessionRepository;
30pub use user::{
31 ArchiveOutcome, ArchiveParams, ArchiveState, MERGE_EXCLUDED_SECURITY_TABLES, MergeResult,
32 PurgeCount, UpdateUserParams,
33};
34
35use sqlx::PgPool;
36use std::sync::Arc;
37use systemprompt_database::DbPool;
38
39const MAX_PAGE_SIZE: i64 = 100;
40
41#[derive(Debug, Clone)]
42pub struct UserRepository {
43 pool: Arc<PgPool>,
44 write_pool: Arc<PgPool>,
45}
46
47impl UserRepository {
48 pub fn new(db: &DbPool) -> Self {
49 let pool = db.pool();
50 let write_pool = db.write_pool();
51 Self { pool, write_pool }
52 }
53}