use indexmap::IndexMap;
use crate::{column::Column, reference::Reference};
#[derive(Debug, Clone, Default)]
pub struct VistaMetadata {
pub columns: IndexMap<String, Column>,
pub references: IndexMap<String, Reference>,
pub id_column: Option<String>,
}
impl VistaMetadata {
pub fn new() -> Self {
Self::default()
}
pub fn with_column(mut self, column: Column) -> Self {
self.columns.insert(column.name.clone(), column);
self
}
pub fn with_reference(mut self, reference: Reference) -> Self {
self.references.insert(reference.name.clone(), reference);
self
}
pub fn with_id_column(mut self, name: impl Into<String>) -> Self {
self.id_column = Some(name.into());
self
}
}