35 lines
950 B
Rust
35 lines
950 B
Rust
//! Tietomallit — Todo, CreateTodo, UpdateTodo serde-rakenteina.
|
|
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
/// Tehtävä — otsikko, kuvaus, deadline, prioriteetti ja status.
|
|
#[derive(Debug, Serialize, Deserialize, sqlx::FromRow)]
|
|
pub struct Todo {
|
|
pub id: i64,
|
|
pub title: String,
|
|
pub description: Option<String>,
|
|
pub due_date: Option<String>,
|
|
pub priority: i64,
|
|
pub status: String,
|
|
}
|
|
|
|
/// Uuden tehtävän luonti. Pakolliset: title.
|
|
#[derive(Debug, Deserialize)]
|
|
pub struct CreateTodo {
|
|
pub title: String,
|
|
pub description: Option<String>,
|
|
pub due_date: Option<String>,
|
|
pub priority: Option<i64>,
|
|
pub status: Option<String>,
|
|
}
|
|
|
|
/// Tehtävän päivitys — kaikki kentät valinnaisia.
|
|
#[derive(Debug, Deserialize)]
|
|
pub struct UpdateTodo {
|
|
pub title: Option<String>,
|
|
pub description: Option<String>,
|
|
pub due_date: Option<String>,
|
|
pub priority: Option<i64>,
|
|
pub status: Option<String>,
|
|
}
|