koprogo_api/application/dto/
stats_dto.rs

1use chrono::{DateTime, Utc};
2use serde::Serialize;
3
4#[derive(Debug, Clone, Serialize)]
5pub struct AdminDashboardStats {
6    pub total_organizations: i64,
7    pub total_users: i64,
8    pub total_buildings: i64,
9    pub active_subscriptions: i64,
10    pub total_owners: i64,
11    pub total_units: i64,
12    pub total_expenses: i64,
13    pub total_meetings: i64,
14}
15
16#[derive(Debug, Clone, Serialize)]
17pub struct SeedDataStats {
18    pub seed_organizations: i64,
19    pub production_organizations: i64,
20    pub seed_buildings: i64,
21    pub seed_units: i64,
22    pub seed_owners: i64,
23    pub seed_unit_owners: i64,
24    pub seed_expenses: i64,
25    pub seed_meetings: i64,
26    pub seed_users: i64,
27}
28
29#[derive(Debug, Clone, Serialize)]
30pub struct NextMeetingInfo {
31    pub id: String,
32    pub date: DateTime<Utc>,
33    pub building_name: String,
34}
35
36#[derive(Debug, Clone, Serialize)]
37pub struct SyndicDashboardStats {
38    pub total_buildings: i64,
39    pub total_units: i64,
40    pub total_owners: i64,
41    pub pending_expenses_count: i64,
42    pub pending_expenses_amount: f64,
43    pub next_meeting: Option<NextMeetingInfo>,
44}
45
46#[derive(Debug, Clone, Serialize)]
47pub struct UrgentTask {
48    pub task_type: String,
49    pub title: String,
50    pub description: String,
51    pub priority: String,
52    pub building_name: Option<String>,
53    pub entity_id: Option<String>,
54    pub due_date: Option<DateTime<Utc>>,
55}