oneiros_model/entities/
level.rs1use serde::{Deserialize, Serialize};
2
3use crate::*;
4
5#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, schemars::JsonSchema)]
6pub struct Level {
7 pub name: LevelName,
8 pub description: Description,
9 pub prompt: Prompt,
10}
11
12impl Level {
13 pub fn init(
14 name: impl Into<LevelName>,
15 description: impl Into<Description>,
16 prompt: impl Into<Prompt>,
17 ) -> Self {
18 Self {
19 name: name.into(),
20 description: description.into(),
21 prompt: prompt.into(),
22 }
23 }
24
25 pub fn construct_from_db(
26 (name, description, prompt): (impl AsRef<str>, impl AsRef<str>, impl AsRef<str>),
27 ) -> Level {
28 Level {
29 name: LevelName::new(name),
30 description: Description::new(description),
31 prompt: Prompt::new(prompt),
32 }
33 }
34}
35
36domain_name!(LevelName);