Index: ChapterX.Application/Story/Commands/AddHandler.cs
===================================================================
--- ChapterX.Application/Story/Commands/AddHandler.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
+++ ChapterX.Application/Story/Commands/AddHandler.cs	(revision a7550ca4790b7d1a7515a4a688b871e32313d8bf)
@@ -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);
         }
