use super::{
field::Field, predicate_arg::PredicateArg, rename_case::RenameCase, selection_arg::SelectionArg,
};
use std::collections::HashMap;
use syn::{Ident, Path};
#[derive(Debug, Default, Clone)]
pub(crate) struct StructRoles {
pub(crate) load: Option<String>,
pub(crate) update: Option<String>,
pub(crate) insert: Option<String>,
pub(crate) delete: Option<String>,
}
#[derive(Debug)]
pub(crate) struct ParsedStruct {
pub(crate) vis: syn::Visibility,
pub(crate) struct_name: Ident,
pub(crate) tables: RenameCase,
pub(crate) table: String,
pub(crate) columns: RenameCase,
pub(crate) skip_mut: bool,
pub(crate) auto_key: bool,
pub(crate) predicates: HashMap<String, PredicateArg>,
pub(crate) selections: HashMap<String, SelectionArg>,
pub(crate) roles: StructRoles,
pub(crate) fields: Vec<Field>,
pub(crate) field_handler: Option<Path>,
}