reddb_server/application/
catalog.rs1use crate::application::ports::RuntimeCatalogPort;
2use crate::catalog::{
3 CatalogAnalyticsJobStatus, CatalogAttentionSummary, CatalogConsistencyReport,
4 CatalogGraphProjectionStatus, CatalogIndexStatus, CatalogModelSnapshot, CollectionDescriptor,
5};
6use crate::runtime::RuntimeStats;
7use crate::{PhysicalAnalyticsJob, PhysicalGraphProjection, PhysicalIndexState, RedDBResult};
8
9pub struct CatalogUseCases<'a, P: ?Sized> {
10 runtime: &'a P,
11}
12
13impl<'a, P: RuntimeCatalogPort + ?Sized> CatalogUseCases<'a, P> {
14 pub fn new(runtime: &'a P) -> Self {
15 Self { runtime }
16 }
17
18 pub fn collections(&self) -> Vec<String> {
19 self.runtime.collections()
20 }
21
22 pub fn snapshot(&self) -> CatalogModelSnapshot {
23 self.runtime.catalog()
24 }
25
26 pub fn consistency_report(&self) -> CatalogConsistencyReport {
27 self.runtime.catalog_consistency_report()
28 }
29
30 pub fn attention_summary(&self) -> CatalogAttentionSummary {
31 self.runtime.catalog_attention_summary()
32 }
33
34 pub fn collection_attention(&self) -> Vec<CollectionDescriptor> {
35 self.runtime.collection_attention()
36 }
37
38 pub fn indexes(&self) -> Vec<PhysicalIndexState> {
39 self.runtime.indexes()
40 }
41
42 pub fn declared_indexes(&self) -> Vec<PhysicalIndexState> {
43 self.runtime.declared_indexes()
44 }
45
46 pub fn indexes_for_collection(&self, collection: &str) -> Vec<PhysicalIndexState> {
47 self.runtime.indexes_for_collection(collection)
48 }
49
50 pub fn declared_indexes_for_collection(&self, collection: &str) -> Vec<PhysicalIndexState> {
51 self.runtime.declared_indexes_for_collection(collection)
52 }
53
54 pub fn index_statuses(&self) -> Vec<CatalogIndexStatus> {
55 self.runtime.index_statuses()
56 }
57
58 pub fn index_attention(&self) -> Vec<CatalogIndexStatus> {
59 self.runtime.index_attention()
60 }
61
62 pub fn graph_projections(&self) -> RedDBResult<Vec<PhysicalGraphProjection>> {
63 self.runtime.graph_projections()
64 }
65
66 pub fn operational_graph_projections(&self) -> Vec<PhysicalGraphProjection> {
67 self.runtime.operational_graph_projections()
68 }
69
70 pub fn graph_projection_statuses(&self) -> Vec<CatalogGraphProjectionStatus> {
71 self.runtime.graph_projection_statuses()
72 }
73
74 pub fn graph_projection_attention(&self) -> Vec<CatalogGraphProjectionStatus> {
75 self.runtime.graph_projection_attention()
76 }
77
78 pub fn analytics_jobs(&self) -> RedDBResult<Vec<PhysicalAnalyticsJob>> {
79 self.runtime.analytics_jobs()
80 }
81
82 pub fn operational_analytics_jobs(&self) -> Vec<PhysicalAnalyticsJob> {
83 self.runtime.operational_analytics_jobs()
84 }
85
86 pub fn analytics_job_statuses(&self) -> Vec<CatalogAnalyticsJobStatus> {
87 self.runtime.analytics_job_statuses()
88 }
89
90 pub fn analytics_job_attention(&self) -> Vec<CatalogAnalyticsJobStatus> {
91 self.runtime.analytics_job_attention()
92 }
93
94 pub fn stats(&self) -> RuntimeStats {
95 self.runtime.stats()
96 }
97}