use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct JobRevision {
pub revision_id: String,
pub job_id: String,
pub revision_number: i32,
pub changed_at: DateTime<Utc>,
pub changed_by_actor_json: Value,
pub snapshot_json: Value,
}
impl JobRevision {
pub fn new(
job_id: impl Into<String>,
revision_number: i32,
changed_by_actor_json: Value,
snapshot_json: Value,
) -> Self {
Self {
revision_id: uuid::Uuid::new_v4().to_string(),
job_id: job_id.into(),
revision_number,
changed_at: Utc::now(),
changed_by_actor_json,
snapshot_json,
}
}
}