1use crate::application::use_cases::{
2 AccountUseCases, AchievementUseCases, AuthUseCases, BoardDashboardUseCases,
3 BoardDecisionUseCases, BoardMemberUseCases, BudgetUseCases, BuildingUseCases,
4 CallForFundsUseCases, ChallengeUseCases, ChargeDistributionUseCases, ConvocationUseCases,
5 DashboardUseCases, DocumentUseCases, EnergyBillUploadUseCases, EnergyCampaignUseCases,
6 EtatDateUseCases, ExpenseUseCases, FinancialReportUseCases, GamificationStatsUseCases,
7 GdprUseCases, IoTUseCases, JournalEntryUseCases, LinkyUseCases, LocalExchangeUseCases,
8 MeetingUseCases, NoticeUseCases, NotificationUseCases, OwnerContributionUseCases,
9 OwnerUseCases, PaymentMethodUseCases, PaymentReminderUseCases, PaymentUseCases, PcnUseCases,
10 PollUseCases, QuoteUseCases, ResolutionUseCases, ResourceBookingUseCases, SharedObjectUseCases,
11 SkillUseCases, TechnicalInspectionUseCases, TicketUseCases, TwoFactorUseCases,
12 UnitOwnerUseCases, UnitUseCases, WorkReportUseCases,
13};
14use crate::infrastructure::audit_logger::AuditLogger;
15use crate::infrastructure::email::EmailService;
16use crate::infrastructure::pool::DbPool;
17use std::sync::Arc;
18
19pub struct AppState {
20 pub account_use_cases: Arc<AccountUseCases>,
21 pub auth_use_cases: Arc<AuthUseCases>,
22 pub building_use_cases: Arc<BuildingUseCases>,
23 pub budget_use_cases: Arc<BudgetUseCases>,
24 pub unit_use_cases: Arc<UnitUseCases>,
25 pub owner_use_cases: Arc<OwnerUseCases>,
26 pub unit_owner_use_cases: Arc<UnitOwnerUseCases>,
27 pub expense_use_cases: Arc<ExpenseUseCases>,
28 pub charge_distribution_use_cases: Arc<ChargeDistributionUseCases>,
29 pub meeting_use_cases: Arc<MeetingUseCases>,
30 pub convocation_use_cases: Arc<ConvocationUseCases>,
31 pub resolution_use_cases: Arc<ResolutionUseCases>,
32 pub ticket_use_cases: Arc<TicketUseCases>,
33 pub two_factor_use_cases: Arc<TwoFactorUseCases>,
34 pub notification_use_cases: Arc<NotificationUseCases>,
35 pub payment_use_cases: Arc<PaymentUseCases>,
36 pub payment_method_use_cases: Arc<PaymentMethodUseCases>,
37 pub poll_use_cases: Arc<PollUseCases>,
38 pub quote_use_cases: Arc<QuoteUseCases>,
39 pub local_exchange_use_cases: Arc<LocalExchangeUseCases>,
40 pub notice_use_cases: Arc<NoticeUseCases>,
41 pub resource_booking_use_cases: Arc<ResourceBookingUseCases>,
42 pub shared_object_use_cases: Arc<SharedObjectUseCases>,
43 pub skill_use_cases: Arc<SkillUseCases>,
44 pub technical_inspection_use_cases: Arc<TechnicalInspectionUseCases>,
45 pub work_report_use_cases: Arc<WorkReportUseCases>,
46 pub document_use_cases: Arc<DocumentUseCases>,
47 pub energy_campaign_use_cases: Arc<EnergyCampaignUseCases>,
48 pub energy_bill_upload_use_cases: Arc<EnergyBillUploadUseCases>,
49 pub etat_date_use_cases: Arc<EtatDateUseCases>,
50 pub pcn_use_cases: Arc<PcnUseCases>,
51 pub payment_reminder_use_cases: Arc<PaymentReminderUseCases>,
52 pub gdpr_use_cases: Arc<GdprUseCases>,
53 pub iot_use_cases: Arc<IoTUseCases>,
54 pub linky_use_cases: Arc<LinkyUseCases>,
55 pub board_member_use_cases: Arc<BoardMemberUseCases>,
56 pub board_decision_use_cases: Arc<BoardDecisionUseCases>,
57 pub board_dashboard_use_cases: Arc<BoardDashboardUseCases>,
58 pub dashboard_use_cases: Arc<DashboardUseCases>,
59 pub financial_report_use_cases: Arc<FinancialReportUseCases>,
60 pub owner_contribution_use_cases: Arc<OwnerContributionUseCases>,
61 pub call_for_funds_use_cases: Arc<CallForFundsUseCases>,
62 pub journal_entry_use_cases: Arc<JournalEntryUseCases>,
63 pub achievement_use_cases: Arc<AchievementUseCases>,
64 pub challenge_use_cases: Arc<ChallengeUseCases>,
65 pub gamification_stats_use_cases: Arc<GamificationStatsUseCases>,
66 pub audit_logger: Arc<AuditLogger>,
67 pub email_service: Arc<EmailService>,
68 pub pool: DbPool, }
70
71impl AppState {
72 #[allow(clippy::too_many_arguments)]
73 pub fn new(
74 account_use_cases: AccountUseCases,
75 auth_use_cases: AuthUseCases,
76 building_use_cases: BuildingUseCases,
77 budget_use_cases: BudgetUseCases,
78 unit_use_cases: UnitUseCases,
79 owner_use_cases: OwnerUseCases,
80 unit_owner_use_cases: UnitOwnerUseCases,
81 expense_use_cases: ExpenseUseCases,
82 charge_distribution_use_cases: ChargeDistributionUseCases,
83 meeting_use_cases: MeetingUseCases,
84 convocation_use_cases: ConvocationUseCases,
85 resolution_use_cases: ResolutionUseCases,
86 ticket_use_cases: TicketUseCases,
87 two_factor_use_cases: TwoFactorUseCases,
88 notification_use_cases: NotificationUseCases,
89 payment_use_cases: PaymentUseCases,
90 payment_method_use_cases: PaymentMethodUseCases,
91 poll_use_cases: PollUseCases,
92 quote_use_cases: QuoteUseCases,
93 local_exchange_use_cases: LocalExchangeUseCases,
94 notice_use_cases: NoticeUseCases,
95 resource_booking_use_cases: ResourceBookingUseCases,
96 shared_object_use_cases: SharedObjectUseCases,
97 skill_use_cases: SkillUseCases,
98 technical_inspection_use_cases: TechnicalInspectionUseCases,
99 work_report_use_cases: WorkReportUseCases,
100 document_use_cases: DocumentUseCases,
101 energy_campaign_use_cases: EnergyCampaignUseCases,
102 energy_bill_upload_use_cases: EnergyBillUploadUseCases,
103 etat_date_use_cases: EtatDateUseCases,
104 pcn_use_cases: PcnUseCases,
105 payment_reminder_use_cases: PaymentReminderUseCases,
106 gdpr_use_cases: GdprUseCases,
107 iot_use_cases: IoTUseCases,
108 linky_use_cases: LinkyUseCases,
109 board_member_use_cases: BoardMemberUseCases,
110 board_decision_use_cases: BoardDecisionUseCases,
111 board_dashboard_use_cases: BoardDashboardUseCases,
112 dashboard_use_cases: DashboardUseCases,
113 financial_report_use_cases: FinancialReportUseCases,
114 owner_contribution_use_cases: OwnerContributionUseCases,
115 call_for_funds_use_cases: CallForFundsUseCases,
116 journal_entry_use_cases: JournalEntryUseCases,
117 achievement_use_cases: AchievementUseCases,
118 challenge_use_cases: ChallengeUseCases,
119 gamification_stats_use_cases: GamificationStatsUseCases,
120 audit_logger: AuditLogger,
121 email_service: EmailService,
122 pool: DbPool,
123 ) -> Self {
124 Self {
125 account_use_cases: Arc::new(account_use_cases),
126 auth_use_cases: Arc::new(auth_use_cases),
127 building_use_cases: Arc::new(building_use_cases),
128 budget_use_cases: Arc::new(budget_use_cases),
129 unit_use_cases: Arc::new(unit_use_cases),
130 owner_use_cases: Arc::new(owner_use_cases),
131 unit_owner_use_cases: Arc::new(unit_owner_use_cases),
132 expense_use_cases: Arc::new(expense_use_cases),
133 charge_distribution_use_cases: Arc::new(charge_distribution_use_cases),
134 meeting_use_cases: Arc::new(meeting_use_cases),
135 convocation_use_cases: Arc::new(convocation_use_cases),
136 resolution_use_cases: Arc::new(resolution_use_cases),
137 ticket_use_cases: Arc::new(ticket_use_cases),
138 two_factor_use_cases: Arc::new(two_factor_use_cases),
139 notification_use_cases: Arc::new(notification_use_cases),
140 payment_use_cases: Arc::new(payment_use_cases),
141 payment_method_use_cases: Arc::new(payment_method_use_cases),
142 poll_use_cases: Arc::new(poll_use_cases),
143 quote_use_cases: Arc::new(quote_use_cases),
144 local_exchange_use_cases: Arc::new(local_exchange_use_cases),
145 notice_use_cases: Arc::new(notice_use_cases),
146 resource_booking_use_cases: Arc::new(resource_booking_use_cases),
147 shared_object_use_cases: Arc::new(shared_object_use_cases),
148 skill_use_cases: Arc::new(skill_use_cases),
149 technical_inspection_use_cases: Arc::new(technical_inspection_use_cases),
150 work_report_use_cases: Arc::new(work_report_use_cases),
151 document_use_cases: Arc::new(document_use_cases),
152 energy_campaign_use_cases: Arc::new(energy_campaign_use_cases),
153 energy_bill_upload_use_cases: Arc::new(energy_bill_upload_use_cases),
154 etat_date_use_cases: Arc::new(etat_date_use_cases),
155 pcn_use_cases: Arc::new(pcn_use_cases),
156 payment_reminder_use_cases: Arc::new(payment_reminder_use_cases),
157 gdpr_use_cases: Arc::new(gdpr_use_cases),
158 iot_use_cases: Arc::new(iot_use_cases),
159 linky_use_cases: Arc::new(linky_use_cases),
160 board_member_use_cases: Arc::new(board_member_use_cases),
161 board_decision_use_cases: Arc::new(board_decision_use_cases),
162 board_dashboard_use_cases: Arc::new(board_dashboard_use_cases),
163 dashboard_use_cases: Arc::new(dashboard_use_cases),
164 financial_report_use_cases: Arc::new(financial_report_use_cases),
165 owner_contribution_use_cases: Arc::new(owner_contribution_use_cases),
166 call_for_funds_use_cases: Arc::new(call_for_funds_use_cases),
167 journal_entry_use_cases: Arc::new(journal_entry_use_cases),
168 achievement_use_cases: Arc::new(achievement_use_cases),
169 challenge_use_cases: Arc::new(challenge_use_cases),
170 gamification_stats_use_cases: Arc::new(gamification_stats_use_cases),
171 audit_logger: Arc::new(audit_logger),
172 email_service: Arc::new(email_service),
173 pool,
174 }
175 }
176}