koprogo_api/infrastructure/web/
routes.rs

1use crate::infrastructure::web::handlers::*;
2use actix_web::web;
3
4pub fn configure_routes(cfg: &mut web::ServiceConfig) {
5    cfg.service(
6        web::scope("/api/v1")
7            .service(health_check)
8            // Authentication
9            .service(login)
10            .service(register)
11            .service(refresh_token)
12            .service(get_current_user)
13            // Buildings
14            .service(create_building)
15            .service(list_buildings)
16            .service(get_building)
17            .service(update_building)
18            .service(delete_building)
19            // Units
20            .service(create_unit)
21            .service(list_units)
22            .service(get_unit)
23            .service(list_units_by_building)
24            .service(assign_owner)
25            // Owners
26            .service(create_owner)
27            .service(list_owners)
28            .service(get_owner)
29            // Expenses
30            .service(create_expense)
31            .service(list_expenses)
32            .service(get_expense)
33            .service(list_expenses_by_building)
34            .service(mark_expense_paid)
35            // Meetings
36            .service(create_meeting)
37            .service(list_meetings)
38            .service(get_meeting)
39            .service(list_meetings_by_building)
40            .service(update_meeting)
41            .service(add_agenda_item)
42            .service(complete_meeting)
43            .service(cancel_meeting)
44            .service(delete_meeting)
45            // Documents
46            .service(upload_document)
47            .service(list_documents)
48            .service(get_document)
49            .service(download_document)
50            .service(list_documents_by_building)
51            .service(list_documents_by_meeting)
52            .service(link_document_to_meeting)
53            .service(link_document_to_expense)
54            .service(delete_document)
55            // PCN (Belgian Chart of Accounts)
56            .service(generate_pcn_report)
57            .service(export_pcn_pdf)
58            .service(export_pcn_excel)
59            // Seed (SuperAdmin only)
60            .service(seed_demo_data)
61            .service(seed_realistic_data)
62            .service(clear_demo_data)
63            // Stats (SuperAdmin only)
64            .service(get_dashboard_stats)
65            // Organizations (SuperAdmin only)
66            .service(list_organizations)
67            // Users (SuperAdmin only)
68            .service(list_users),
69    );
70}