use super::{Field, Model};
use crate::database::introspection::{Schema, Table};
use crate::generators::naming::Names;
use crate::generators::tetherscript::types;
impl Model {
pub fn resolve(table: &Table, schema: &Schema, names: &Names) -> Self {
let fields = table
.columns
.iter()
.map(|column| Field {
column: column.name.clone(),
kind: types::map(column, schema),
primary_key: table.primary_key.contains(&column.name),
generated: column.auto_increment,
nullable: column.nullable,
})
.collect();
Self {
table: table.name.clone(),
module: names.module.clone(),
name: names.type_name.clone(),
fields,
}
}
}