use axum::extract::FromRef;
use crate::client_server::auth::AuthState;
use crate::observability::Metrics;
use crate::persistence::files::events::EventsService;
use crate::persistence::files::FileService;
use crate::persistence::sql::SqlDb;
use crate::services::user_service::UserService;
use crate::SignupMode;
#[derive(Clone, Debug)]
pub(crate) struct AppState {
pub(crate) auth_state: AuthState,
pub(crate) sql_db: SqlDb,
pub(crate) file_service: FileService,
pub(crate) signup_mode: SignupMode,
pub(crate) events_service: EventsService,
pub(crate) metrics: Metrics,
pub(crate) user_service: UserService,
pub(crate) default_storage_mb: Option<u64>,
}
impl FromRef<AppState> for AuthState {
fn from_ref(state: &AppState) -> Self {
state.auth_state.clone()
}
}