use sql_orm::prelude::*;
#[derive(AuditFields)]
struct Audit {
#[orm(default_sql = "SYSUTCDATETIME()")]
#[orm(sql_type = "datetime2")]
#[orm(updatable = false)]
created_at: String,
}
#[derive(Entity, Debug, Clone)]
#[orm(table = "audited_entities", schema = "audit", audit = Audit)]
struct AuditedEntity {
#[orm(primary_key)]
#[orm(identity)]
id: i64,
#[orm(length = 120)]
name: String,
}
fn main() {
let metadata = AuditedEntity::metadata();
assert_eq!(metadata.schema, "audit");
assert_eq!(metadata.table, "audited_entities");
assert_eq!(metadata.columns.len(), 3);
assert_eq!(metadata.columns[0].column_name, "id");
assert_eq!(metadata.columns[1].column_name, "name");
assert_eq!(metadata.columns[2].column_name, "created_at");
assert!(metadata.column("created_at").is_some());
}