use molten_service::{DocumentService, FormService, WorkflowService};
use sea_orm::DatabaseConnection;
use std::sync::Arc;
#[derive(Clone)]
pub struct AppState {
pub db: DatabaseConnection,
pub document_service: Arc<DocumentService>,
pub form_service: Arc<FormService>,
pub workflow_service: Arc<WorkflowService>,
}
impl AppState {
pub fn new(db: DatabaseConnection) -> Self {
let document_service = DocumentService::new(db.clone());
let form_service = FormService::new(db.clone());
let workflow_service = WorkflowService::new(db.clone());
Self {
db,
document_service: Arc::new(document_service),
form_service: Arc::new(form_service),
workflow_service: Arc::new(workflow_service),
}
}
}