mod backlink; mod backup; mod blob; mod delegation; mod event_notifier; mod infra; mod oauth; mod repo; mod session; mod sso; mod user; use sqlx::PgPool; use std::sync::Arc; pub use backlink::PostgresBacklinkRepository; pub use backup::PostgresBackupRepository; pub use blob::PostgresBlobRepository; pub use delegation::PostgresDelegationRepository; pub use event_notifier::PostgresRepoEventNotifier; pub use infra::PostgresInfraRepository; pub use oauth::PostgresOAuthRepository; pub use repo::PostgresRepoRepository; pub use session::PostgresSessionRepository; pub use sso::PostgresSsoRepository; use tranquil_db_traits::{ BacklinkRepository, BackupRepository, BlobRepository, DelegationRepository, InfraRepository, OAuthRepository, RepoEventNotifier, RepoRepository, SessionRepository, SsoRepository, UserRepository, }; pub use user::PostgresUserRepository; pub struct PostgresRepositories { pub pool: PgPool, pub user: Arc, pub oauth: Arc, pub session: Arc, pub delegation: Arc, pub repo: Arc, pub blob: Arc, pub infra: Arc, pub backup: Arc, pub backlink: Arc, pub sso: Arc, pub event_notifier: Arc, } impl PostgresRepositories { pub fn new(pool: PgPool) -> Self { Self { pool: pool.clone(), user: Arc::new(PostgresUserRepository::new(pool.clone())), oauth: Arc::new(PostgresOAuthRepository::new(pool.clone())), session: Arc::new(PostgresSessionRepository::new(pool.clone())), delegation: Arc::new(PostgresDelegationRepository::new(pool.clone())), repo: Arc::new(PostgresRepoRepository::new(pool.clone())), blob: Arc::new(PostgresBlobRepository::new(pool.clone())), infra: Arc::new(PostgresInfraRepository::new(pool.clone())), backup: Arc::new(PostgresBackupRepository::new(pool.clone())), backlink: Arc::new(PostgresBacklinkRepository::new(pool.clone())), sso: Arc::new(PostgresSsoRepository::new(pool.clone())), event_notifier: Arc::new(PostgresRepoEventNotifier::new(pool)), } } }