use crate::field::{HasFields, SeaFields};
use sea_query::{ColumnRef, DynIden, IntoIden, SelectStatement};
pub trait HasSeaFields: HasFields {
fn not_none_sea_fields(self) -> SeaFields;
fn all_sea_fields(self) -> SeaFields;
fn sea_idens() -> Vec<DynIden>;
fn sea_column_refs() -> Vec<ColumnRef>;
fn sea_column_refs_with_rel(rel: impl IntoIden) -> Vec<ColumnRef>;
fn sea_apply_select_columns(&self, sea_select: &mut SelectStatement) {
for meta in Self::field_metas().iter() {
meta.sea_apply_select_column(sea_select);
}
}
}