use std::sync::Arc;
use shiny_common::context::Context;
use shiny_common::error::ServiceError;
use crate::job_trigger::JobTrigger;
pub mod jobs_executor;
pub mod job_trigger;
#[async_trait::async_trait]
pub trait Job: Send + Sync + 'static {
async fn execute(&self, context: &mut Context) -> Result<(), ServiceError>;
}
pub struct JobDefinition {
pub job: Arc<dyn Job>,
pub trigger: Arc<dyn JobTrigger>,
pub name: String,
}