use rust_eloquent::{Eloquent, EloquentModel, sqlx::FromRow};
#[derive(Debug, Clone, FromRow, rust_eloquent::Eloquent)]
pub struct User {
pub id: i32,
pub name: String,
pub email: String,
}
#[tokio::main]
async fn main() -> Result<(), rust_eloquent::sqlx::Error> {
let _ = std::fs::File::create("test.db");
Eloquent::init("sqlite://test.db").await?;
let pool = Eloquent::pool();
rust_eloquent::sqlx::query(
"CREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, email TEXT)"
)
.execute(pool)
.await?;
rust_eloquent::sqlx::query("INSERT INTO users (name, email) VALUES ('Vene Louis', 'vene@cosmos.com')").execute(pool).await?;
rust_eloquent::sqlx::query("INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com')").execute(pool).await?;
rust_eloquent::sqlx::query("INSERT INTO users (name, email) VALUES ('Maria Doe', 'maria@example.com')").execute(pool).await?;
println!("\n🚀 Testando o Query Builder Encadeável:");
let users = User::query()
.where_like("email", "%@example.com")
.order_by_name_desc()
.limit(1)
.get()
.await?;
println!("=> Último usuário da example.com: {:?}", users);
let count = User::query().count().await?;
println!("=> Total de usuários na tabela: {}", count);
let filtered_user = User::query().where_id(1).first().await?;
println!("=> User via builder mágico onde id=1: {:?}", filtered_user);
let _ = std::fs::remove_file("test.db");
Ok(())
}