koprogo_api/application/dto/
stats_dto.rs1use 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}