use axum::Router;
use std::sync::Arc;
use super::{
maintenance_request_handler::create_maintenance_request_read_routes,
maintenance_schedule_handler::create_maintenance_schedule_routes,
maintenance_stage_handler::create_maintenance_stage_routes,
maintenance_visit_handler::create_maintenance_visit_routes,
maintenance_visit_part_handler::create_maintenance_visit_part_routes,
};
use crate::application::service::{
MaintenanceRequestService,
MaintenanceScheduleService,
MaintenanceStageService,
MaintenanceVisitService,
MaintenanceVisitPartService,
};
pub struct HttpServices {
pub maintenance_request: Arc<MaintenanceRequestService>,
pub maintenance_schedule: Arc<MaintenanceScheduleService>,
pub maintenance_stage: Arc<MaintenanceStageService>,
pub maintenance_visit: Arc<MaintenanceVisitService>,
pub maintenance_visit_part: Arc<MaintenanceVisitPartService>,
}
pub fn configure_routes(services: HttpServices) -> Router {
Router::new()
.merge(create_maintenance_request_read_routes(services.maintenance_request))
.merge(create_maintenance_schedule_routes(services.maintenance_schedule))
.merge(create_maintenance_stage_routes(services.maintenance_stage))
.merge(create_maintenance_visit_routes(services.maintenance_visit))
.merge(create_maintenance_visit_part_routes(services.maintenance_visit_part))
}
pub mod individual {
use super::*;
pub fn maintenance_request_routes(service: Arc<MaintenanceRequestService>) -> Router {
create_maintenance_request_read_routes(service)
}
pub fn maintenance_schedule_routes(service: Arc<MaintenanceScheduleService>) -> Router {
create_maintenance_schedule_routes(service)
}
pub fn maintenance_stage_routes(service: Arc<MaintenanceStageService>) -> Router {
create_maintenance_stage_routes(service)
}
pub fn maintenance_visit_routes(service: Arc<MaintenanceVisitService>) -> Router {
create_maintenance_visit_routes(service)
}
pub fn maintenance_visit_part_routes(service: Arc<MaintenanceVisitPartService>) -> Router {
create_maintenance_visit_part_routes(service)
}
}