palpo_core/
power_levels.rs1use salvo::prelude::*;
5use serde::{Deserialize, Serialize};
6
7#[derive(ToSchema, Deserialize, Serialize, Clone, Debug)]
9pub struct NotificationPowerLevels {
10 #[serde(
12 default = "default_power_level",
13 deserialize_with = "crate::serde::deserialize_v1_powerlevel"
14 )]
15 pub room: i64,
16}
17
18impl NotificationPowerLevels {
19 pub fn new() -> Self {
21 Self {
22 room: default_power_level(),
23 }
24 }
25
26 pub fn get(&self, key: &str) -> Option<&i64> {
28 match key {
29 "room" => Some(&self.room),
30 _ => None,
31 }
32 }
33
34 pub fn is_default(&self) -> bool {
36 self.room == default_power_level()
37 }
38}
39
40impl Default for NotificationPowerLevels {
41 fn default() -> Self {
42 Self::new()
43 }
44}
45
46pub fn default_power_level() -> i64 {
48 50
49}