feat: with local store

This commit is contained in:
2023-03-06 12:29:34 +01:00
parent e16127ecca
commit 762c792c05
12 changed files with 293 additions and 27 deletions

14
crates/domain/Cargo.toml Normal file
View File

@@ -0,0 +1,14 @@
[lib]
crate-type = ["cdylib", "rlib"]
[package]
name = "domain"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
chrono = { version = "0.4.23", features = ["serde"] }
serde = { version = "1.0.152", features = ["derive"] }
uuid = { version = "1.3.0", features = ["v4", "wasm-bindgen", "js", "serde"] }

53
crates/domain/src/lib.rs Normal file
View File

@@ -0,0 +1,53 @@
use std::collections::HashMap;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct Metadata(HashMap<String, String>);
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct Recipe {
pub id: uuid::Uuid,
pub metadata: Option<Metadata>,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct Image {
pub id: uuid::Uuid,
pub url: String,
pub alt: String,
pub metadata: Option<Metadata>,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct Event {
pub id: uuid::Uuid,
pub cover_image: Option<Image>,
pub name: String,
pub description: Option<String>,
pub time: chrono::NaiveDate,
pub recipe_id: Option<uuid::Uuid>,
pub images: Vec<Image>,
pub metadata: Option<Metadata>,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct EventOverview {
pub id: uuid::Uuid,
pub cover_image: Option<Image>,
pub name: String,
pub description: Option<String>,
pub time: chrono::NaiveDate,
}
impl From<Event> for EventOverview {
fn from(value: Event) -> Self {
Self {
id: value.id,
cover_image: value.cover_image,
name: value.name,
description: value.description,
time: value.time,
}
}
}