tododo 0.1.2

A minimal terminal todo manager built with Rust and Ratatui
Documentation
mod m20260318_000001_create_todo_items;

pub use sea_orm_migration::prelude::*;

use sea_orm::DatabaseConnection;
use crate::error::AppError;

pub struct Migrator;

#[async_trait::async_trait]
impl MigratorTrait for Migrator {
    fn migrations() -> Vec<Box<dyn MigrationTrait>> {
        vec![Box::new(m20260318_000001_create_todo_items::Migration)]
    }
}

pub async fn connect(db_url: &str) -> Result<DatabaseConnection, AppError> {
    sea_orm::Database::connect(db_url)
        .await
        .map_err(AppError::Db)
}

pub async fn run_migrations(conn: &DatabaseConnection) -> Result<(), AppError> {
    use sea_orm_migration::MigratorTrait;
    <Migrator as MigratorTrait>::up(conn, None)
        .await
        .map_err(|e| AppError::Init(e.to_string()))?;
    Ok(())
}