Index: ChapterX.Application/Story/Commands/AddHandler.cs
===================================================================
--- ChapterX.Application/Story/Commands/AddHandler.cs	(revision a6e33d1f34c0dbbfff38bfb2c73eea32abfe7cff)
+++ ChapterX.Application/Story/Commands/AddHandler.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -1,3 +1,2 @@
-using ChapterX.Application.Abstractions;
 using ChapterX.Domain.Repositories;
 using MediatR;
@@ -9,15 +8,9 @@
     {
         private readonly IStoryRepository _storyRepository;
-        private readonly IGenreRepository _genreRepository;
-        private readonly IHasGenreRepository _hasGenreRepository;
-        private readonly IApplicationDbContext _context;
         private readonly ILogger<AddHandler> _logger;
 
-        public AddHandler(IStoryRepository storyRepository, IGenreRepository genreRepository, IHasGenreRepository hasGenreRepository, IApplicationDbContext context, ILogger<AddHandler> logger)
+        public AddHandler(IStoryRepository storyRepository, ILogger<AddHandler> logger)
         {
             _storyRepository = storyRepository;
-            _genreRepository = genreRepository;
-            _hasGenreRepository = hasGenreRepository;
-            _context = context;
             _logger = logger;
         }
@@ -25,36 +18,18 @@
         public async Task<AddResponse> Handle(AddRequest request, CancellationToken cancellationToken)
         {
-            await using var transaction = await _context.BeginTransactionAsync(cancellationToken);
-            try
+            var story = new Domain.Entities.Story
             {
-                var story = new Domain.Entities.Story
-                {
-                    MatureContent = request.MatureContent,
-                    Title = request.Title,
-                    ShortDescription = request.ShortDescription,
-                    Image = request.Image,
-                    Content = request.Content,
-                    UserId = request.UserId,
-                    CreatedAt = DateTime.UtcNow,
-                    UpdatedAt = DateTime.UtcNow
-                };
+                MatureContent = request.MatureContent,
+                ShortDescription = request.ShortDescription,
+                Image = request.Image,
+                Content = request.Content,
+                UserId = request.UserId,
+                CreatedAt = DateTime.UtcNow,
+                UpdatedAt = DateTime.UtcNow
+            };
 
-                await _storyRepository.AddAsync(story, cancellationToken);
+            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);
-                }
-
-                await transaction.CommitAsync(cancellationToken);
-                return new AddResponse(story.Id);
-            }
-            catch
-            {
-                await transaction.RollbackAsync(cancellationToken);
-                throw;
-            }
+            return new AddResponse(story.Id);
         }
     }
Index: ChapterX.Application/Story/Commands/AddRequest.cs
===================================================================
--- ChapterX.Application/Story/Commands/AddRequest.cs	(revision a6e33d1f34c0dbbfff38bfb2c73eea32abfe7cff)
+++ ChapterX.Application/Story/Commands/AddRequest.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -1,15 +1,6 @@
 using MediatR;
-using System.ComponentModel.DataAnnotations;
 
 namespace ChapterX.Application.Story.Commands
 {
-    public record AddRequest(
-        bool MatureContent,
-        [Required][MaxLength(200)] string Title,
-        [Required][MaxLength(500)] string ShortDescription,
-        [MaxLength(2048)] string? Image,
-        [Required] string Content,
-        int UserId,
-        List<string> Genres
-    ) : IRequest<AddResponse>;
+    public record AddRequest(bool MatureContent, string ShortDescription, string? Image, string Content, int UserId) : IRequest<AddResponse>;
 }
Index: ChapterX.Application/Story/Commands/DeleteHandler.cs
===================================================================
--- ChapterX.Application/Story/Commands/DeleteHandler.cs	(revision a6e33d1f34c0dbbfff38bfb2c73eea32abfe7cff)
+++ ChapterX.Application/Story/Commands/DeleteHandler.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -22,7 +22,4 @@
                 return new DeleteResponse(false);
 
-            if (!request.IsAdmin && story.UserId != request.CallerId)
-                throw new UnauthorizedAccessException("You do not own this story.");
-
             await _storyRepository.DeleteAsync(story, cancellationToken);
 
Index: ChapterX.Application/Story/Commands/DeleteRequest.cs
===================================================================
--- ChapterX.Application/Story/Commands/DeleteRequest.cs	(revision a6e33d1f34c0dbbfff38bfb2c73eea32abfe7cff)
+++ ChapterX.Application/Story/Commands/DeleteRequest.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -3,4 +3,4 @@
 namespace ChapterX.Application.Story.Commands
 {
-    public record DeleteRequest(int Id, int CallerId, bool IsAdmin = false) : IRequest<DeleteResponse>;
+    public record DeleteRequest(int Id) : IRequest<DeleteResponse>;
 }
Index: ChapterX.Application/Story/Commands/UpdateHandler.cs
===================================================================
--- ChapterX.Application/Story/Commands/UpdateHandler.cs	(revision a6e33d1f34c0dbbfff38bfb2c73eea32abfe7cff)
+++ ChapterX.Application/Story/Commands/UpdateHandler.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -22,9 +22,5 @@
                 return new UpdateResponse(false);
 
-            if (story.UserId != request.CallerId)
-                throw new UnauthorizedAccessException("You do not own this story.");
-
             story.MatureContent = request.MatureContent;
-            story.Title = request.Title;
             story.ShortDescription = request.ShortDescription;
             story.Image = request.Image;
Index: ChapterX.Application/Story/Commands/UpdateRequest.cs
===================================================================
--- ChapterX.Application/Story/Commands/UpdateRequest.cs	(revision a6e33d1f34c0dbbfff38bfb2c73eea32abfe7cff)
+++ ChapterX.Application/Story/Commands/UpdateRequest.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -3,4 +3,4 @@
 namespace ChapterX.Application.Story.Commands
 {
-    public record UpdateRequest(int Id, bool MatureContent, string Title, string ShortDescription, string? Image, string Content, int CallerId = 0) : IRequest<UpdateResponse>;
+    public record UpdateRequest(int Id, bool MatureContent, string ShortDescription, string? Image, string Content) : IRequest<UpdateResponse>;
 }
