Index: ChapterX.Application/Likes/Commands/AddHandler.cs
===================================================================
--- ChapterX.Application/Likes/Commands/AddHandler.cs	(revision acf690c1403ecbecd948a46d950278f177f2d408)
+++ ChapterX.Application/Likes/Commands/AddHandler.cs	(revision dc383dd3199c7db4b47fd42b458a73717189db88)
@@ -21,5 +21,5 @@
             {
                 UserId = request.UserId,
-                StoryId = request.ChapterId,
+                StoryId = request.StoryId,
                 CreatedAt = DateTime.UtcNow
             };
Index: ChapterX.Application/Likes/Commands/AddRequest.cs
===================================================================
--- ChapterX.Application/Likes/Commands/AddRequest.cs	(revision acf690c1403ecbecd948a46d950278f177f2d408)
+++ ChapterX.Application/Likes/Commands/AddRequest.cs	(revision dc383dd3199c7db4b47fd42b458a73717189db88)
@@ -3,4 +3,4 @@
 namespace ChapterX.Application.Likes.Commands
 {
-    public record AddRequest(int UserId, int ChapterId) : IRequest<AddResponse>;
+    public record AddRequest(int UserId, int StoryId) : IRequest<AddResponse>;
 }
Index: ChapterX.Application/Notification/Commands/AddHandler.cs
===================================================================
--- ChapterX.Application/Notification/Commands/AddHandler.cs	(revision acf690c1403ecbecd948a46d950278f177f2d408)
+++ ChapterX.Application/Notification/Commands/AddHandler.cs	(revision dc383dd3199c7db4b47fd42b458a73717189db88)
@@ -22,5 +22,8 @@
                 Content = request.Content,
                 IsRead = false,
-                CreatedAt = DateTime.UtcNow
+                CreatedAt = DateTime.UtcNow,
+                RecipientUserId = request.RecipientUserId,
+                Type = request.Type,
+                Link = request.Link,
             };
 
Index: ChapterX.Application/Notification/Commands/AddRequest.cs
===================================================================
--- ChapterX.Application/Notification/Commands/AddRequest.cs	(revision acf690c1403ecbecd948a46d950278f177f2d408)
+++ ChapterX.Application/Notification/Commands/AddRequest.cs	(revision dc383dd3199c7db4b47fd42b458a73717189db88)
@@ -3,4 +3,4 @@
 namespace ChapterX.Application.Notification.Commands
 {
-    public record AddRequest(string Content) : IRequest<AddResponse>;
+    public record AddRequest(string Content, int? RecipientUserId = null, string? Type = null, string? Link = null) : IRequest<AddResponse>;
 }
Index: ChapterX.Application/Story/Commands/AddHandler.cs
===================================================================
--- ChapterX.Application/Story/Commands/AddHandler.cs	(revision acf690c1403ecbecd948a46d950278f177f2d408)
+++ ChapterX.Application/Story/Commands/AddHandler.cs	(revision dc383dd3199c7db4b47fd42b458a73717189db88)
@@ -8,9 +8,13 @@
     {
         private readonly IStoryRepository _storyRepository;
+        private readonly IGenreRepository _genreRepository;
+        private readonly IHasGenreRepository _hasGenreRepository;
         private readonly ILogger<AddHandler> _logger;
 
-        public AddHandler(IStoryRepository storyRepository, ILogger<AddHandler> logger)
+        public AddHandler(IStoryRepository storyRepository, IGenreRepository genreRepository, IHasGenreRepository hasGenreRepository, ILogger<AddHandler> logger)
         {
             _storyRepository = storyRepository;
+            _genreRepository = genreRepository;
+            _hasGenreRepository = hasGenreRepository;
             _logger = logger;
         }
@@ -31,4 +35,11 @@
             await _storyRepository.AddAsync(story, cancellationToken);
 
+            foreach (var genreName in request.Genres ?? [])
+            {
+                var genre = await _genreRepository.GetByNameAsync(genreName, cancellationToken);
+                if (genre == null) continue;
+                await _hasGenreRepository.AddAsync(new Domain.Entities.HasGenre { StoryId = story.Id, GenreId = genre.Id }, cancellationToken);
+            }
+
             return new AddResponse(story.Id);
         }
Index: ChapterX.Application/Story/Commands/AddRequest.cs
===================================================================
--- ChapterX.Application/Story/Commands/AddRequest.cs	(revision acf690c1403ecbecd948a46d950278f177f2d408)
+++ ChapterX.Application/Story/Commands/AddRequest.cs	(revision dc383dd3199c7db4b47fd42b458a73717189db88)
@@ -3,4 +3,4 @@
 namespace ChapterX.Application.Story.Commands
 {
-    public record AddRequest(bool MatureContent, string ShortDescription, string? Image, string Content, int UserId) : IRequest<AddResponse>;
+    public record AddRequest(bool MatureContent, string ShortDescription, string? Image, string Content, int UserId, List<string> Genres) : IRequest<AddResponse>;
 }
