Index: chapterx-frontend/src/components/admin/ContentModerationTable.tsx
===================================================================
--- chapterx-frontend/src/components/admin/ContentModerationTable.tsx	(revision a6e33d1f34c0dbbfff38bfb2c73eea32abfe7cff)
+++ chapterx-frontend/src/components/admin/ContentModerationTable.tsx	(revision e882b92860e1899312f197af1134bb0f33d30d15)
@@ -20,8 +20,7 @@
     deleteStory(story.story_id)
     addNotification({
-      user_id: story.user_id,
-      type: 'system',
-      title: 'Story Removed',
-      message: `Your story "${story.title}" has been removed by an administrator.`,
+      userId: story.user_id,
+      contentType: 'system',
+      content: `Your story "${story.title}" has been removed by an administrator.`,
     })
     addToast(`"${story.title}" removed from platform`, 'info')
Index: chapterx-frontend/src/components/story/CommentSection.tsx
===================================================================
--- chapterx-frontend/src/components/story/CommentSection.tsx	(revision a6e33d1f34c0dbbfff38bfb2c73eea32abfe7cff)
+++ chapterx-frontend/src/components/story/CommentSection.tsx	(revision e882b92860e1899312f197af1134bb0f33d30d15)
@@ -80,7 +80,8 @@
       if (currentUser.user_id !== authorUserId) {
         await addNotification({
-          recipientUserId: authorUserId,
-          type: 'comment',
+          userId: authorUserId,
+          contentType: 'comment',
           content: `${currentUser.username} commented: "${text.trim().slice(0, 60)}${text.length > 60 ? '...' : ''}"`,
+          storyId,
           link: `/story/${storyId}`,
         })
Index: chapterx-frontend/src/components/story/LikeButton.tsx
===================================================================
--- chapterx-frontend/src/components/story/LikeButton.tsx	(revision a6e33d1f34c0dbbfff38bfb2c73eea32abfe7cff)
+++ chapterx-frontend/src/components/story/LikeButton.tsx	(revision e882b92860e1899312f197af1134bb0f33d30d15)
@@ -59,7 +59,8 @@
         if (currentUser.user_id !== authorUserId) {
           await addNotification({
-            recipientUserId: authorUserId,
-            type: 'like',
+            userId: authorUserId,
+            contentType: 'like',
             content: `${currentUser.username} liked your story.`,
+            storyId,
             link: `/story/${storyId}`,
           })
Index: chapterx-frontend/src/components/writer/CollaboratorManager.tsx
===================================================================
--- chapterx-frontend/src/components/writer/CollaboratorManager.tsx	(revision a6e33d1f34c0dbbfff38bfb2c73eea32abfe7cff)
+++ chapterx-frontend/src/components/writer/CollaboratorManager.tsx	(revision e882b92860e1899312f197af1134bb0f33d30d15)
@@ -62,7 +62,8 @@
     addCollaboration(newCollab)
     addNotification({
-      recipientUserId: user.user_id,
-      type: 'collaboration',
+      userId: user.user_id,
+      contentType: 'collaboration',
       content: `You've been invited to collaborate on "${storyTitle}" as ${selectedRole}.`,
+      storyId,
       link: `/story/${storyId}`,
     })
Index: chapterx-frontend/src/store/notificationStore.ts
===================================================================
--- chapterx-frontend/src/store/notificationStore.ts	(revision a6e33d1f34c0dbbfff38bfb2c73eea32abfe7cff)
+++ chapterx-frontend/src/store/notificationStore.ts	(revision e882b92860e1899312f197af1134bb0f33d30d15)
@@ -17,5 +17,5 @@
   notifications: Notification[]
   fetchUserNotifications: (userId: number) => Promise<void>
-  addNotification: (n: { recipientUserId: number; type: string; content: string; link?: string }) => Promise<void>
+  addNotification: (n: { userId: number; contentType: string; content: string; storyId?: number; link?: string }) => Promise<void>
   markAllRead: () => Promise<void>
   markRead: (id: number) => Promise<void>
@@ -33,6 +33,6 @@
         notification_id: n.id,
         user_id: userId,
-        type: n.type ?? 'info',
-        title: n.type ?? 'Notification',
+        type: n.contentType ?? 'info',
+        title: n.contentType ?? 'Notification',
         message: n.content,
         link: n.link,
@@ -46,10 +46,11 @@
   },
 
-  addNotification: async ({ recipientUserId, type, content, link }) => {
+  addNotification: async ({ userId, contentType, content, storyId, link }) => {
     try {
       await axios.post(`${API}/notifications`, {
         content,
-        recipientUserId,
-        type,
+        contentType,
+        userId,
+        storyId,
         link,
       }, { headers: getAuthHeaders() })
Index: chapterx-frontend/src/store/storyStore.ts
===================================================================
--- chapterx-frontend/src/store/storyStore.ts	(revision a6e33d1f34c0dbbfff38bfb2c73eea32abfe7cff)
+++ chapterx-frontend/src/store/storyStore.ts	(revision e882b92860e1899312f197af1134bb0f33d30d15)
@@ -144,5 +144,5 @@
         cover_image: s.image ?? undefined,
         mature_content: s.matureContent,
-        status: 'published' as StoryStatus,
+        status: (s.status ?? 'draft') as StoryStatus,
         author_username: s.writer?.user?.username ?? '',
         created_at: s.createdAt,
@@ -193,6 +193,6 @@
         name: c.name ?? c.username ?? '',
         story_title: '',
-        role: 'editor' as any,
-        permission_level: 3 as any,
+        role: c.role as any,
+        permission_level: (c.permissionLevel ?? 3) as any,
         joined_at: c.createdAt,
       }))
@@ -246,4 +246,5 @@
         image: imageUrl,
         content: partial.content ?? story.content,
+        status: partial.status ?? story.status,
       }, { headers: getAuthHeaders() })
     } catch {
@@ -266,10 +267,12 @@
   },
 
-  updateStoryStatus: (id, status) =>
+  updateStoryStatus: (id, status) => {
     set(state => ({
       stories: state.stories.map(s =>
         s.story_id === id ? { ...s, status, updated_at: new Date().toISOString() } : s
       ),
-    })),
+    }))
+    get().updateStory(id, { status })
+  },
 
   addChapter: async (chapter) => {
@@ -407,4 +410,5 @@
         storyId: collab.story_id,
         role: collab.role,
+        permissionLevel: collab.permission_level,
       }, { headers: getAuthHeaders() })
     } catch {
@@ -445,6 +449,8 @@
         original_text: s.originalText,
         suggested_text: s.suggestedText,
-        suggestion_type: (s.suggestionTypes?.[0] ?? 'style') as SuggestionType,
+        suggestion_type: (s.suggestionType ?? 'style') as SuggestionType,
+        explanation: s.explanation ?? '',
         accepted: s.accepted === true ? true : s.accepted === false ? false : null,
+        created_at: s.createdAt ?? new Date().toISOString(),
         applied_at: s.appliedAt ?? undefined,
       }))
@@ -506,4 +512,5 @@
         originalText: suggestion.original_text,
         suggestedText: suggestion.suggested_text,
+        suggestionType: suggestion.suggestion_type,
         storyId: suggestion.chapter_id,
       }, { headers: getAuthHeaders() })
