use chrono::{DateTime, Utc};
use serde_json::Value;
#[derive(Clone, Debug)]
pub struct Job {
pub id: u64,
pub queue: String,
pub class: String,
pub args: Value,
pub max_attempts: u32,
pub created_at: DateTime<Utc>,
pub run_next_at: Option<DateTime<Utc>>,
pub last_failed_at: Option<DateTime<Utc>>,
pub last_error: Option<String>,
pub error_count: u32,
}
impl Job {
pub fn final_attempt(&self) -> bool {
self.error_count == self.max_attempts - 1
}
pub fn failed(&self) -> bool {
self.error_count >= self.max_attempts
}
}