diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..13566b81b018ad684f3a35fee301741b2734c8f4
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/bambangshop.iml b/.idea/bambangshop.iml
new file mode 100644
index 0000000000000000000000000000000000000000..d6ebd4805981b8400db3e3291c74a743fef9a824
--- /dev/null
+++ b/.idea/bambangshop.iml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$" />
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6f29fee2f2b3b412625a792b92bcd1263e5b765a
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="21" project-jdk-type="JavaSDK">
+    <output url="file://$PROJECT_DIR$/out" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..cfef350571b6742ed26f45eb0f7822e6c6b7e97f
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/.idea/bambangshop.iml" filepath="$PROJECT_DIR$/.idea/bambangshop.iml" />
+    </modules>
+  </component>
+</project>
\ No newline at end of file
diff --git a/src/model/mod.rs b/src/model/mod.rs
index 68024e148492337f0e30a98004247f4755ad48b6..e4371e0316d93924c7f25de9c036dd5a89759f2a 100644
--- a/src/model/mod.rs
+++ b/src/model/mod.rs
@@ -1 +1,2 @@
 pub mod product;
+pub mod subscriber;
\ No newline at end of file
diff --git a/src/model/subscriber.rs b/src/model/subscriber.rs
new file mode 100644
index 0000000000000000000000000000000000000000..759f458e610540bd7200799575b94147a1c66105
--- /dev/null
+++ b/src/model/subscriber.rs
@@ -0,0 +1,13 @@
+use rocket::serde::{Deserialize, Serialize};
+use rocket::log;
+use rocket::serde::json::to_string;
+use rocket::tokio;
+use bambangshop::REQWEST_CLIENT;
+use crate::model::notification::Notification;
+
+#[derive(Debug, Clone, Deserialize, Serialize)]
+#[serde(crate = "rocket::serde")]
+pub struct Subscriber {
+    pub url: String,
+    pub name: String,
+}
\ No newline at end of file