From f6a36ae9ca4d2f2ee74b747548aaac4c9e5a7b17 Mon Sep 17 00:00:00 2001
From: vissutagunawan <vglim3653@gmail.com>
Date: Thu, 27 Mar 2025 09:56:14 +0700
Subject: [PATCH] Create Notification model struct.

---
 src/model/mod.rs          |  3 ++-
 src/model/notification.rs | 45 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 47 insertions(+), 1 deletion(-)
 create mode 100644 src/model/notification.rs

diff --git a/src/model/mod.rs b/src/model/mod.rs
index 589f8b5..c45d8c1 100644
--- a/src/model/mod.rs
+++ b/src/model/mod.rs
@@ -1 +1,2 @@
-pub mod subscriber;
\ No newline at end of file
+pub mod subscriber;
+pub mod notification;
\ No newline at end of file
diff --git a/src/model/notification.rs b/src/model/notification.rs
new file mode 100644
index 0000000..a431004
--- /dev/null
+++ b/src/model/notification.rs
@@ -0,0 +1,45 @@
+use std::fmt::{Display, Formatter, Result};
+ 
+ use rocket::serde::{Deserialize, Serialize};
+ 
+ #[derive(Debug, Clone, Serialize, Deserialize)]
+ #[serde(crate = "rocket::serde")]
+ pub struct Notification {
+     pub product_title: String,
+     pub product_type: String,
+     pub product_url: String,
+     pub subscriber_name: String,
+     pub status: String,
+ }
+ 
+ impl Display for Notification {
+     fn fmt(&self, f: &mut Formatter<'_>) -> Result {
+         if self.status.to_uppercase().eq("CREATED") {
+             return write!(
+                 f,
+                 "Hello {} let's try our new {} product: {}, only in BambangShop! Check it out: {}",
+                 self.subscriber_name,
+                 self.product_type.to_lowercase(),
+                 self.product_title,
+                 self.product_url
+             );
+         } else if self.status.to_uppercase().eq("DELETED") {
+             return write!(
+                 f,
+                 "Hello {} we informed that our {} product called {} already sold out...",
+                 self.subscriber_name,
+                 self.product_type.to_lowercase(),
+                 self.product_title,
+             );
+         } else {
+             return write!(
+                 f,
+                 "Hello {} let's try our {} product: {}, grab it before the stock ran out! Check it out: {}",
+                 self.subscriber_name,
+                 self.product_type.to_lowercase(),
+                 self.product_title,
+                 self.product_url
+             );
+         }
+     }
+ }
\ No newline at end of file
-- 
GitLab