use crate::database::introspection::Schema;
use crate::generators::rust::casing;
use crate::generators::rust::model::Model;
pub(super) fn render(model: &Model, schema: &Schema) -> String {
let mut file = format!(
"use super::{};\nuse actix_web::{{web, HttpResponse, Responder}};\n",
model.name
);
if let Some(name) = key_enum(model, schema) {
file.push_str(&format!("use super::super::enums::{name};\n"));
}
file.push('\n');
file
}
fn key_enum(model: &Model, schema: &Schema) -> Option<String> {
let key = model.key()?;
model
.enums(schema)
.iter()
.map(|item| casing::to_pascal(&item.name))
.find(|name| key.mapping.names(name))
}