feat(domain): add FeedSort, FeedFilter, FeedOptions, FeedRequest CQRS query types

This commit is contained in:
2026-05-28 23:39:35 +02:00
parent 4d00d856c1
commit 95728302b7

View File

@@ -431,9 +431,38 @@ impl FeedQuery {
}
}
#[derive(Debug, Clone, Default)]
pub enum FeedSort {
#[default]
Newest,
Oldest,
MostLiked,
MostBoosted,
MostDiscussed,
}
#[derive(Debug, Clone, Default)]
pub struct FeedFilter {
pub originals_only: bool,
pub replies_only: bool,
pub local_only: bool,
pub hide_sensitive: bool,
}
#[derive(Debug, Clone, Default)]
pub struct FeedOptions {
pub sort: FeedSort,
pub filter: FeedFilter,
}
pub struct FeedRequest {
pub query: FeedQuery,
pub options: FeedOptions,
}
#[async_trait]
pub trait FeedRepository: Send + Sync {
async fn query(&self, q: &FeedQuery) -> Result<Paginated<FeedEntry>, DomainError>;
async fn query(&self, req: &FeedRequest) -> Result<Paginated<FeedEntry>, DomainError>;
}
#[async_trait]