use std::collections::BTreeMap;
use serde::Serialize;
#[derive(Clone, Debug, Serialize)]
pub struct IntermediateSchema {
pub tables: BTreeMap<String, Table>,
}
#[derive(Clone, Debug, Serialize)]
pub struct Table {
pub name: String,
pub comment: String,
pub columns: Vec<Column>,
pub indices: Vec<Index>,
pub foreign_keys: Vec<ForeignKey>,
pub foreign_key_backlinks: Vec<ForeignKey>,
}
#[derive(Clone, Debug, Serialize)]
pub struct Column {
pub name: String,
pub r#type: String,
pub not_null: bool,
pub comment: String,
}
#[derive(Clone, Debug, Serialize)]
pub struct Index {
pub name: String,
pub def: String,
}
#[derive(Clone, Debug, Serialize)]
pub struct ForeignKey {
pub name: String,
pub referrer_table: String,
pub referee_table: String,
pub def: String,
}