use super::sql_value::{SqlColumnValue, SqlValue};
pub trait CreateModelInput<M> {
fn sql_values(&self) -> Vec<SqlColumnValue>;
fn validate(&self) -> Result<(), cratestack_core::CoolError> {
Ok(())
}
}
pub trait UpdateModelInput<M> {
fn sql_values(&self) -> Vec<SqlColumnValue>;
fn validate(&self) -> Result<(), cratestack_core::CoolError> {
Ok(())
}
}
pub trait UpsertModelInput<M>: Send {
fn sql_values(&self) -> Vec<SqlColumnValue>;
fn primary_key_value(&self) -> SqlValue;
fn validate(&self) -> Result<(), cratestack_core::CoolError> {
Ok(())
}
}
pub trait ModelPrimaryKey<PK> {
fn primary_key(&self) -> PK;
}