use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Migration {
pub version: String,
pub description: String,
pub applied_at: Option<chrono::DateTime<chrono::Utc>>,
}
impl Migration {
pub fn new(version: impl Into<String>, description: impl Into<String>) -> Self {
Self {
version: version.into(),
description: description.into(),
applied_at: None,
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_migration_creation() {
let migration = Migration::new("001", "Initial schema");
assert_eq!(migration.version, "001");
assert_eq!(migration.description, "Initial schema");
assert!(migration.applied_at.is_none());
}
}