use std::sync::Arc; use domain::ports::{ DiaryQuery, EventPublisher, FederatedProfileQuery, FederationAdminQuery, FollowGraphQuery, ObjectStorage, PasswordHasher, StatsRepository, UserProfileFieldsRepository, UserRepository, UserSettingsRepository, }; use domain::value_objects::InstanceIdentity; pub struct GetLocalProfileDeps { pub stats: Arc, pub diary: Arc, pub social_query: Arc, pub user: Arc, pub instance: InstanceIdentity, } pub struct GetFederatedProfileStatsDeps { pub stats: Arc, pub diary: Arc, pub social_query: Arc, } pub struct GetPageViewerDeps { pub user: Arc, pub follow_graph: Arc, } pub struct ResolveUsernameDeps { pub user: Arc, } pub struct GetProfileSettingsDeps { pub user: Arc, pub profile_fields: Arc, pub instance: InstanceIdentity, } pub struct GetUsersListDeps { pub user: Arc, pub federation_admin: Arc, } pub struct UpdateProfileDeps { pub user: Arc, pub object_storage: Arc, pub event_publisher: Arc, } pub struct RequestAccountDeletionDeps { pub user: Arc, pub password_hasher: Arc, } pub struct EnsureActiveDeps { pub user: Arc, } pub struct GetCurrentProfileDeps { pub user: Arc, } pub struct UpdateProfileFieldsDeps { pub profile_fields: Arc, } pub struct GetSettingsDeps { pub user_settings: Arc, } pub struct UpdateSettingsDeps { pub user_settings: Arc, } pub struct AuthorizeAdminDeps { pub user: Arc, } pub struct GetFederatedProfileDeps { pub federated_profile: Option>, }