structural refactor and codebase improvements

This commit is contained in:
2026-08-09 14:58:14 +02:00
parent 22b1dd3f56
commit c9715baab8
247 changed files with 11515 additions and 3063 deletions

View File

@@ -1,14 +1,48 @@
use std::sync::Arc;
use domain::ports::{
DiaryQuery, EventPublisher, FederationAdminQuery, ObjectStorage, SocialQuery, StatsRepository,
UserRepository,
DiaryQuery, EventPublisher, FederatedProfileQuery, FederationAdminQuery, FollowGraphQuery,
ObjectStorage, StatsRepository, UserProfileFieldsRepository, UserRepository,
UserSettingsRepository,
};
use domain::value_objects::InstanceIdentity;
pub struct GetProfileDeps {
/// The local half of the former `GetProfileDeps` split (ADR-0004). `user` and
/// `instance` build the always-populated `ProfileIdentity`; `stats`/`diary`/
/// `social_query` are unchanged from before the split.
pub struct GetLocalProfileDeps {
pub stats: Arc<dyn StatsRepository>,
pub diary: Arc<dyn DiaryQuery>,
pub social_query: Arc<dyn SocialQuery>,
pub social_query: Arc<dyn FollowGraphQuery>,
pub user: Arc<dyn UserRepository>,
pub instance: InstanceIdentity,
}
/// The federated half of the former `GetProfileDeps` split. No `user`/`instance` —
/// the federated handler builds identity from the resolved remote actor and never
/// reads a local user row for this path.
pub struct GetFederatedProfileStatsDeps {
pub stats: Arc<dyn StatsRepository>,
pub diary: Arc<dyn DiaryQuery>,
pub social_query: Arc<dyn FollowGraphQuery>,
}
/// Backs page-chrome data (email/role badge, pending-follow badge). See the error
/// policy note on `get_page_viewer::execute`: this deliberately propagates errors
/// rather than degrading internally — the caller decides chrome degrades.
pub struct GetPageViewerDeps {
pub user: Arc<dyn UserRepository>,
pub follow_graph: Arc<dyn FollowGraphQuery>,
}
pub struct ResolveUsernameDeps {
pub user: Arc<dyn UserRepository>,
}
pub struct GetProfileSettingsDeps {
pub user: Arc<dyn UserRepository>,
pub profile_fields: Arc<dyn UserProfileFieldsRepository>,
pub instance: InstanceIdentity,
}
pub struct GetUsersListDeps {
@@ -26,3 +60,31 @@ pub struct DeleteAccountDeps {
pub user: Arc<dyn UserRepository>,
pub event_publisher: Arc<dyn EventPublisher>,
}
pub struct GetCurrentProfileDeps {
pub user: Arc<dyn UserRepository>,
}
pub struct UpdateProfileFieldsDeps {
pub profile_fields: Arc<dyn UserProfileFieldsRepository>,
pub event_publisher: Arc<dyn EventPublisher>,
}
pub struct GetSettingsDeps {
pub user_settings: Arc<dyn UserSettingsRepository>,
}
pub struct UpdateSettingsDeps {
pub user_settings: Arc<dyn UserSettingsRepository>,
}
pub struct AuthorizeAdminDeps {
pub user: Arc<dyn UserRepository>,
}
/// `Option` mirrors `Repositories::federated_profile` — genuine optional
/// configuration (federation on/off), not a container-shape workaround. Same
/// exemption as `Services::person_enrichment`.
pub struct GetFederatedProfileDeps {
pub federated_profile: Option<Arc<dyn FederatedProfileQuery>>,
}