//! Form system — fields, validation, Tera rendering, Prisme extractor, model forms.
pub mod base;
pub mod extractor;
pub mod field;
pub mod fields;
pub mod form;
pub mod generic;
pub mod model_form;
pub mod options;
pub mod prisme;
pub mod renderer;
pub mod validator;

pub use base::*;
pub use extractor::*;
pub use field::*;
pub use fields::*;
pub use form::*;
pub use generic::*;
pub use model_form::*;
pub use options::*;
pub use prisme::*;
pub use renderer::*;
pub use validator::*;

/// Associates a form with a SeaORM entity.
///
/// Automatically generated by `#[form(schema = ..., model = EntityPath)]`.
/// Allows using the form as an entry point for queries:
///
/// ```rust,ignore
/// search!(@UserForm => Username = "alice")
/// UserForm::objects.get(&db, id).await?
/// ```
pub trait FormEntity {
    type Entity: sea_orm::EntityTrait;
}
