Index: ChapterX.Infrastructure/ChapterX.Infrastructure.csproj
===================================================================
--- ChapterX.Infrastructure/ChapterX.Infrastructure.csproj	(revision a6e33d1f34c0dbbfff38bfb2c73eea32abfe7cff)
+++ ChapterX.Infrastructure/ChapterX.Infrastructure.csproj	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -8,5 +8,4 @@
 
   <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="9.0.0" />
     <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.0">
       <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
Index: ChapterX.Infrastructure/Data/DataContext/ApplicationDbContext.cs
===================================================================
--- ChapterX.Infrastructure/Data/DataContext/ApplicationDbContext.cs	(revision a6e33d1f34c0dbbfff38bfb2c73eea32abfe7cff)
+++ ChapterX.Infrastructure/Data/DataContext/ApplicationDbContext.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -2,5 +2,4 @@
 using ChapterX.Domain.Entities;
 using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Storage;
 
 namespace ChapterX.Infrastructure.Data.DataContext
@@ -32,7 +31,4 @@
         public DbSet<PermissionLevel> PermissionLevels { get; init; }
 
-        public Task<IDbContextTransaction> BeginTransactionAsync(CancellationToken cancellationToken = default)
-            => Database.BeginTransactionAsync(cancellationToken);
-
         protected override void OnModelCreating(ModelBuilder modelBuilder)
         {
@@ -47,9 +43,9 @@
                 e.Property(x => x.Username).HasColumnName("username");
                 e.Property(x => x.Email).HasColumnName("email");
-                e.Property(x => x.Name).HasColumnName("user_name");
+                e.Property(x => x.Name).HasColumnName("name");
                 e.Property(x => x.Surname).HasColumnName("surname");
                 e.Property(x => x.Password).HasColumnName("password");
-                e.Property(x => x.CreatedAt).HasColumnName("user_created_at");
-                e.Property(x => x.UpdatedAt).HasColumnName("user_updated_at");
+                e.Property(x => x.CreatedAt).HasColumnName("created_at");
+                e.Property(x => x.UpdatedAt).HasColumnName("updated_at");
             });
 
@@ -88,11 +84,10 @@
                 e.Property(x => x.Id).HasColumnName("story_id");
                 e.Property(x => x.MatureContent).HasColumnName("mature_content");
-                e.Property(x => x.Title).HasColumnName("title");
                 e.Property(x => x.ShortDescription).HasColumnName("short_description");
                 e.Property(x => x.Image).HasColumnName("image");
-                e.Property(x => x.Content).HasColumnName("story_content");
-                e.Property(x => x.UserId).HasColumnName("user_id");
-                e.Property(x => x.CreatedAt).HasColumnName("story_created_at");
-                e.Property(x => x.UpdatedAt).HasColumnName("story_updated_at");
+                e.Property(x => x.Content).HasColumnName("content");
+                e.Property(x => x.UserId).HasColumnName("user_id");
+                e.Property(x => x.CreatedAt).HasColumnName("created_at");
+                e.Property(x => x.UpdatedAt).HasColumnName("updated_at");
                 e.HasOne(x => x.Writer).WithMany(w => w.Stories).HasForeignKey(x => x.UserId);
             });
@@ -118,5 +113,5 @@
                 e.Property(x => x.Name).HasColumnName("chapter_name");
                 e.Property(x => x.Title).HasColumnName("title");
-                e.Property(x => x.Content).HasColumnName("chapter_content");
+                e.Property(x => x.Content).HasColumnName("content");
                 e.Property(x => x.WordCount).HasColumnName("word_count");
                 e.Property(x => x.Rating).HasColumnName("rating");
@@ -124,6 +119,6 @@
                 e.Property(x => x.ViewCount).HasColumnName("view_count");
                 e.Property(x => x.StoryId).HasColumnName("story_id");
-                e.Property(x => x.CreatedAt).HasColumnName("chapter_created_at");
-                e.Property(x => x.UpdatedAt).HasColumnName("chapter_updated_at");
+                e.Property(x => x.CreatedAt).HasColumnName("created_at");
+                e.Property(x => x.UpdatedAt).HasColumnName("updated_at");
                 e.HasOne(x => x.Story).WithMany(s => s.Chapters).HasForeignKey(x => x.StoryId);
             });
@@ -135,5 +130,5 @@
                 e.HasKey(x => x.Id);
                 e.Property(x => x.Id).HasColumnName("genre_id");
-                e.Property(x => x.Name).HasColumnName("genre_name");
+                e.Property(x => x.Name).HasColumnName("name");
             });
 
@@ -158,5 +153,5 @@
                 e.Property(x => x.UserId).HasColumnName("user_id");
                 e.Property(x => x.StoryId).HasColumnName("story_id");
-                e.Property(x => x.CreatedAt).HasColumnName("like_created_at");
+                e.Property(x => x.CreatedAt).HasColumnName("created_at");
                 e.HasOne(x => x.User).WithMany(u => u.Likes).HasForeignKey(x => x.UserId);
                 e.HasOne(x => x.Story).WithMany(s => s.Likes).HasForeignKey(x => x.StoryId);
@@ -169,9 +164,9 @@
                 e.HasKey(x => x.Id);
                 e.Property(x => x.Id).HasColumnName("comment_id");
-                e.Property(x => x.Content).HasColumnName("comment_content");
-                e.Property(x => x.UserId).HasColumnName("user_id");
-                e.Property(x => x.StoryId).HasColumnName("story_id");
-                e.Property(x => x.CreatedAt).HasColumnName("comment_created_at");
-                e.Property(x => x.UpdatedAt).HasColumnName("comment_updated_at");
+                e.Property(x => x.Content).HasColumnName("content");
+                e.Property(x => x.UserId).HasColumnName("user_id");
+                e.Property(x => x.StoryId).HasColumnName("story_id");
+                e.Property(x => x.CreatedAt).HasColumnName("created_at");
+                e.Property(x => x.UpdatedAt).HasColumnName("updated_at");
                 e.HasOne(x => x.User).WithMany(u => u.Comments).HasForeignKey(x => x.UserId);
                 e.HasOne(x => x.Story).WithMany(s => s.Comments).HasForeignKey(x => x.StoryId);
@@ -184,10 +179,10 @@
                 e.HasKey(x => x.Id);
                 e.Property(x => x.Id).HasColumnName("list_id");
-                e.Property(x => x.Name).HasColumnName("list_name");
-                e.Property(x => x.Content).HasColumnName("list_content");
+                e.Property(x => x.Name).HasColumnName("name");
+                e.Property(x => x.Content).HasColumnName("content");
                 e.Property(x => x.IsPublic).HasColumnName("is_public");
                 e.Property(x => x.UserId).HasColumnName("user_id");
-                e.Property(x => x.CreatedAt).HasColumnName("list_created_at");
-                e.Property(x => x.UpdatedAt).HasColumnName("list_updated_at");
+                e.Property(x => x.CreatedAt).HasColumnName("created_at");
+                e.Property(x => x.UpdatedAt).HasColumnName("updated_at");
                 e.HasOne(x => x.User).WithMany(u => u.ReadingLists).HasForeignKey(x => x.UserId);
             });
@@ -212,10 +207,7 @@
                 e.HasKey(x => x.Id);
                 e.Property(x => x.Id).HasColumnName("notification_id");
-                e.Property(x => x.Content).HasColumnName("notification_content");
+                e.Property(x => x.Content).HasColumnName("content");
                 e.Property(x => x.IsRead).HasColumnName("is_read");
-                e.Property(x => x.CreatedAt).HasColumnName("notification_created_at");
-                e.Property(x => x.RecipientUserId).HasColumnName("recipient_user_id");
-                e.Property(x => x.Type).HasColumnName("type");
-                e.Property(x => x.Link).HasColumnName("link");
+                e.Property(x => x.CreatedAt).HasColumnName("created_at");
             });
 
@@ -254,5 +246,5 @@
                 e.Property(x => x.SuggestedText).HasColumnName("suggested_text");
                 e.Property(x => x.Accepted).HasColumnName("accepted");
-                e.Property(x => x.CreatedAt).HasColumnName("suggestion_created_at");
+                e.Property(x => x.CreatedAt).HasColumnName("created_at");
                 e.Property(x => x.AppliedAt).HasColumnName("applied_at");
                 e.Property(x => x.StoryId).HasColumnName("story_id");
@@ -293,5 +285,5 @@
                 e.Property(x => x.UserId).HasColumnName("user_id");
                 e.Property(x => x.StoryId).HasColumnName("story_id");
-                e.Property(x => x.CreatedAt).HasColumnName("collab_created_at");
+                e.Property(x => x.CreatedAt).HasColumnName("created_at");
                 e.HasOne(x => x.User).WithMany(u => u.Collaborations).HasForeignKey(x => x.UserId);
                 e.HasOne(x => x.Story).WithMany(s => s.Collaborations).HasForeignKey(x => x.StoryId);
Index: ChapterX.Infrastructure/DependencyInjection.cs
===================================================================
--- ChapterX.Infrastructure/DependencyInjection.cs	(revision a6e33d1f34c0dbbfff38bfb2c73eea32abfe7cff)
+++ ChapterX.Infrastructure/DependencyInjection.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -1,8 +1,6 @@
 using ChapterX.Application.Abstractions;
-using ChapterX.Application.Auth;
 using ChapterX.Domain.Repositories;
 using ChapterX.Infrastructure.Data.DataContext;
 using ChapterX.Infrastructure.Repositories;
-using ChapterX.Infrastructure.Services;
 using Microsoft.EntityFrameworkCore;
 using Microsoft.Extensions.Configuration;
@@ -15,23 +13,8 @@
         public static IServiceCollection AddInfrastructure(this IServiceCollection services, IConfiguration configuration)
         {
-            var poolSection = configuration.GetSection("ConnectionPool");
-            var minPoolSize = poolSection.GetValue<int>("MinPoolSize", 1);
-            var maxPoolSize = poolSection.GetValue<int>("MaxPoolSize", 20);
-            var idleLifetime = poolSection.GetValue<int>("ConnectionIdleLifetime", 300);
-            var pruningInterval = poolSection.GetValue<int>("ConnectionPruningInterval", 10);
-            var commandTimeout = poolSection.GetValue<int>("CommandTimeout", 30);
-            var connectionTimeout = poolSection.GetValue<int>("Timeout", 15);
-
-            var baseConnectionString = configuration.GetConnectionString("Database")!;
-            var connectionString =
-                $"{baseConnectionString};Minimum Pool Size={minPoolSize};Maximum Pool Size={maxPoolSize};" +
-                $"Connection Idle Lifetime={idleLifetime};Connection Pruning Interval={pruningInterval};" +
-                $"Command Timeout={commandTimeout};Timeout={connectionTimeout}";
-
-            services.AddDbContextPool<ApplicationDbContext>(options =>
-                options.UseNpgsql(connectionString));
+            services.AddDbContext<ApplicationDbContext>(options =>
+                options.UseNpgsql(configuration.GetConnectionString("Database")));
 
             services.AddScoped<IApplicationDbContext>(sp => sp.GetRequiredService<ApplicationDbContext>());
-            services.AddScoped<IJwtTokenService, JwtTokenService>();
 
             services.AddScoped<IUserRepository, UserRepository>();
Index: ChapterX.Infrastructure/Migrations/ApplicationDbContextModelSnapshot.cs
===================================================================
--- ChapterX.Infrastructure/Migrations/ApplicationDbContextModelSnapshot.cs	(revision a6e33d1f34c0dbbfff38bfb2c73eea32abfe7cff)
+++ ChapterX.Infrastructure/Migrations/ApplicationDbContextModelSnapshot.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -31,5 +31,5 @@
                     NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                    b.Property<bool?>("Accepted")
+                    b.Property<bool>("Accepted")
                         .HasColumnType("boolean");
 
@@ -59,5 +59,5 @@
                     b.HasIndex("StoryId");
 
-                    b.ToTable("AISuggestions", (string)null);
+                    b.ToTable("AISuggestions");
                 });
 
@@ -78,5 +78,5 @@
                         .IsUnique();
 
-                    b.ToTable("Admins", (string)null);
+                    b.ToTable("Admins");
                 });
 
@@ -129,5 +129,5 @@
                     b.HasIndex("StoryId");
 
-                    b.ToTable("Chapters", (string)null);
+                    b.ToTable("Chapters");
                 });
 
@@ -159,5 +159,5 @@
                     b.HasIndex("UserId");
 
-                    b.ToTable("Collaborations", (string)null);
+                    b.ToTable("Collaborations");
                 });
 
@@ -192,5 +192,5 @@
                     b.HasIndex("UserId");
 
-                    b.ToTable("Comments", (string)null);
+                    b.ToTable("Comments");
                 });
 
@@ -209,5 +209,5 @@
                     b.HasKey("Id");
 
-                    b.ToTable("Genres", (string)null);
+                    b.ToTable("Genres");
                 });
 
@@ -232,5 +232,5 @@
                     b.HasIndex("StoryId");
 
-                    b.ToTable("HasGenres", (string)null);
+                    b.ToTable("HasGenres");
                 });
 
@@ -263,5 +263,5 @@
                     b.HasIndex("UserId");
 
-                    b.ToTable("Likes", (string)null);
+                    b.ToTable("Likes");
                 });
 
@@ -302,5 +302,5 @@
                     b.HasIndex("StoryId");
 
-                    b.ToTable("NeedApprovals", (string)null);
+                    b.ToTable("NeedApprovals");
                 });
 
@@ -329,5 +329,5 @@
                     b.HasKey("Id");
 
-                    b.ToTable("Notifications", (string)null);
+                    b.ToTable("Notifications");
                 });
 
@@ -360,5 +360,5 @@
                     b.HasIndex("UserId");
 
-                    b.ToTable("Notifies", (string)null);
+                    b.ToTable("Notifies");
                 });
 
@@ -394,5 +394,5 @@
                     b.HasIndex("UserId");
 
-                    b.ToTable("ReadingLists", (string)null);
+                    b.ToTable("ReadingLists");
                 });
 
@@ -420,5 +420,5 @@
                     b.HasIndex("StoryId");
 
-                    b.ToTable("ReadingListItems", (string)null);
+                    b.ToTable("ReadingListItems");
                 });
 
@@ -439,5 +439,5 @@
                         .IsUnique();
 
-                    b.ToTable("RegularUsers", (string)null);
+                    b.ToTable("RegularUsers");
                 });
 
@@ -484,5 +484,5 @@
                     b.HasIndex("WriterId");
 
-                    b.ToTable("Stories", (string)null);
+                    b.ToTable("Stories");
                 });
 
@@ -523,5 +523,5 @@
                     b.HasKey("Id");
 
-                    b.ToTable("Users", (string)null);
+                    b.ToTable("Users");
                 });
 
@@ -546,5 +546,5 @@
                         .IsUnique();
 
-                    b.ToTable("Writers", (string)null);
+                    b.ToTable("Writers");
                 });
 
Index: ChapterX.Infrastructure/Repositories/AISuggestionRepository.cs
===================================================================
--- ChapterX.Infrastructure/Repositories/AISuggestionRepository.cs	(revision a6e33d1f34c0dbbfff38bfb2c73eea32abfe7cff)
+++ ChapterX.Infrastructure/Repositories/AISuggestionRepository.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -21,6 +21,5 @@
         {
             return await _dbSet
-                .Include(a => a.SuggestionTypes)
-                .Where(a => a.NeedApprovals.Any(na => na.ChapterId == chapterId))
+                .Where(a => a.StoryId == chapterId)
                 .ToListAsync(cancellationToken);
         }
Index: ChapterX.Infrastructure/Repositories/ChapterRepository.cs
===================================================================
--- ChapterX.Infrastructure/Repositories/ChapterRepository.cs	(revision a6e33d1f34c0dbbfff38bfb2c73eea32abfe7cff)
+++ ChapterX.Infrastructure/Repositories/ChapterRepository.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -24,18 +24,4 @@
                 .ToListAsync(cancellationToken);
         }
-
-        public async Task<Chapter?> GetByIdWithStoryAsync(int id, CancellationToken cancellationToken = default)
-        {
-            return await _dbSet
-                .Include(c => c.Story)
-                .FirstOrDefaultAsync(c => c.Id == id, cancellationToken);
-        }
-
-        public async Task IncrementViewCountAsync(int id, CancellationToken cancellationToken = default)
-        {
-            await _dbSet
-                .Where(c => c.Id == id)
-                .ExecuteUpdateAsync(s => s.SetProperty(c => c.ViewCount, c => c.ViewCount + 1), cancellationToken);
-        }
     }
 }
Index: ChapterX.Infrastructure/Repositories/CollaborationRepository.cs
===================================================================
--- ChapterX.Infrastructure/Repositories/CollaborationRepository.cs	(revision a6e33d1f34c0dbbfff38bfb2c73eea32abfe7cff)
+++ ChapterX.Infrastructure/Repositories/CollaborationRepository.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -2,5 +2,9 @@
 using ChapterX.Domain.Repositories;
 using ChapterX.Infrastructure.Data.DataContext;
-using Microsoft.EntityFrameworkCore;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
 
 namespace ChapterX.Infrastructure.Repositories
@@ -11,18 +15,4 @@
         {
         }
-
-        public override async Task<IEnumerable<Collaboration>> GetAllAsync(CancellationToken cancellationToken = default)
-            => await _dbSet
-                .Include(c => c.User)
-                .ToListAsync(cancellationToken);
-
-        public async Task<bool> DeleteByUserAndStoryAsync(int userId, int storyId, CancellationToken cancellationToken = default)
-        {
-            var collab = await _dbSet.FirstOrDefaultAsync(c => c.UserId == userId && c.StoryId == storyId, cancellationToken);
-            if (collab == null) return false;
-            _dbSet.Remove(collab);
-            await _context.SaveChangesAsync(cancellationToken);
-            return true;
-        }
     }
 }
Index: ChapterX.Infrastructure/Repositories/CommentRepository.cs
===================================================================
--- ChapterX.Infrastructure/Repositories/CommentRepository.cs	(revision a6e33d1f34c0dbbfff38bfb2c73eea32abfe7cff)
+++ ChapterX.Infrastructure/Repositories/CommentRepository.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -19,12 +19,9 @@
 
         public async Task<IEnumerable<Comment>> GetByChapterIdAsync(int chapterId, CancellationToken cancellationToken = default)
-            => await _dbSet.Where(c => c.StoryId == chapterId).ToListAsync(cancellationToken);
-
-        public async Task<IEnumerable<Comment>> GetByStoryIdAsync(int storyId, CancellationToken cancellationToken = default)
-            => await _dbSet
-                .Include(c => c.User)
-                .Where(c => c.StoryId == storyId)
-                .OrderByDescending(c => c.CreatedAt)
+        {
+            return await _dbSet
+                .Where(c => c.StoryId == chapterId)
                 .ToListAsync(cancellationToken);
+        }
     }
 }
Index: ChapterX.Infrastructure/Repositories/GenericRepository.cs
===================================================================
--- ChapterX.Infrastructure/Repositories/GenericRepository.cs	(revision a6e33d1f34c0dbbfff38bfb2c73eea32abfe7cff)
+++ ChapterX.Infrastructure/Repositories/GenericRepository.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -18,8 +18,8 @@
         }
 
-        public virtual async Task<T?> GetByIdAsync(int id, CancellationToken cancellationToken = default)
+        public async Task<T?> GetByIdAsync(int id, CancellationToken cancellationToken = default)
             => await _dbSet.FindAsync([id], cancellationToken);
 
-        public virtual async Task<IEnumerable<T>> GetAllAsync(CancellationToken cancellationToken = default)
+        public async Task<IEnumerable<T>> GetAllAsync(CancellationToken cancellationToken = default)
             => await _dbSet.ToListAsync(cancellationToken);
 
Index: ChapterX.Infrastructure/Repositories/LikesRepository.cs
===================================================================
--- ChapterX.Infrastructure/Repositories/LikesRepository.cs	(revision a6e33d1f34c0dbbfff38bfb2c73eea32abfe7cff)
+++ ChapterX.Infrastructure/Repositories/LikesRepository.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -2,5 +2,9 @@
 using ChapterX.Domain.Repositories;
 using ChapterX.Infrastructure.Data.DataContext;
-using Microsoft.EntityFrameworkCore;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
 
 namespace ChapterX.Infrastructure.Repositories
@@ -11,19 +15,4 @@
         {
         }
-
-        public async Task<IEnumerable<Likes>> GetByStoryIdAsync(int storyId, CancellationToken cancellationToken = default)
-            => await _dbSet.Where(l => l.StoryId == storyId).ToListAsync(cancellationToken);
-
-        public async Task<bool> ExistsAsync(int userId, int storyId, CancellationToken cancellationToken = default)
-            => await _dbSet.AnyAsync(l => l.UserId == userId && l.StoryId == storyId, cancellationToken);
-
-        public async Task<bool> DeleteByUserAndStoryAsync(int userId, int storyId, CancellationToken cancellationToken = default)
-        {
-            var like = await _dbSet.FirstOrDefaultAsync(l => l.UserId == userId && l.StoryId == storyId, cancellationToken);
-            if (like == null) return false;
-            _dbSet.Remove(like);
-            await _context.SaveChangesAsync(cancellationToken);
-            return true;
-        }
     }
 }
Index: ChapterX.Infrastructure/Repositories/NotificationRepository.cs
===================================================================
--- ChapterX.Infrastructure/Repositories/NotificationRepository.cs	(revision a6e33d1f34c0dbbfff38bfb2c73eea32abfe7cff)
+++ ChapterX.Infrastructure/Repositories/NotificationRepository.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -15,8 +15,7 @@
         // This method returns all notifications; adjust filter when a User relation is added.
         public async Task<IEnumerable<Notification>> GetByUserIdAsync(int userId, CancellationToken cancellationToken = default)
-            => await _dbSet
-                .Where(n => n.RecipientUserId == userId)
-                .OrderByDescending(n => n.CreatedAt)
-                .ToListAsync(cancellationToken);
+        {
+            return await _dbSet.ToListAsync(cancellationToken);
+        }
     }
 }
Index: ChapterX.Infrastructure/Repositories/ReadingListItemsRepository.cs
===================================================================
--- ChapterX.Infrastructure/Repositories/ReadingListItemsRepository.cs	(revision a6e33d1f34c0dbbfff38bfb2c73eea32abfe7cff)
+++ ChapterX.Infrastructure/Repositories/ReadingListItemsRepository.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -2,5 +2,9 @@
 using ChapterX.Domain.Repositories;
 using ChapterX.Infrastructure.Data.DataContext;
-using Microsoft.EntityFrameworkCore;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
 
 namespace ChapterX.Infrastructure.Repositories
@@ -11,16 +15,4 @@
         {
         }
-
-        public async Task<bool> ExistsAsync(int listId, int storyId, CancellationToken cancellationToken = default)
-            => await _dbSet.AnyAsync(i => i.ListId == listId && i.StoryId == storyId, cancellationToken);
-
-        public async Task<bool> DeleteByListAndStoryAsync(int listId, int storyId, CancellationToken cancellationToken = default)
-        {
-            var item = await _dbSet.FirstOrDefaultAsync(i => i.ListId == listId && i.StoryId == storyId, cancellationToken);
-            if (item == null) return false;
-            _dbSet.Remove(item);
-            await _context.SaveChangesAsync(cancellationToken);
-            return true;
-        }
     }
 }
Index: ChapterX.Infrastructure/Repositories/ReadingListRepository.cs
===================================================================
--- ChapterX.Infrastructure/Repositories/ReadingListRepository.cs	(revision a6e33d1f34c0dbbfff38bfb2c73eea32abfe7cff)
+++ ChapterX.Infrastructure/Repositories/ReadingListRepository.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -12,32 +12,8 @@
         }
 
-        public override async Task<IEnumerable<ReadingList>> GetAllAsync(CancellationToken cancellationToken = default)
-        {
-            return await _dbSet
-                .Include(r => r.User)
-                .Include(r => r.ReadingListItems)
-                    .ThenInclude(i => i.Story)
-                        .ThenInclude(s => s.Writer)
-                            .ThenInclude(w => w!.User)
-                .Include(r => r.ReadingListItems)
-                    .ThenInclude(i => i.Story)
-                        .ThenInclude(s => s.HasGenres)
-                            .ThenInclude(hg => hg.Genre)
-                .ToListAsync(cancellationToken);
-        }
-
         public async Task<IEnumerable<ReadingList>> GetByUserIdAsync(int userId, CancellationToken cancellationToken = default)
         {
             return await _dbSet
                 .Where(r => r.UserId == userId)
-                .Include(r => r.User)
-                .Include(r => r.ReadingListItems)
-                    .ThenInclude(i => i.Story)
-                        .ThenInclude(s => s.Writer)
-                            .ThenInclude(w => w!.User)
-                .Include(r => r.ReadingListItems)
-                    .ThenInclude(i => i.Story)
-                        .ThenInclude(s => s.HasGenres)
-                            .ThenInclude(hg => hg.Genre)
                 .ToListAsync(cancellationToken);
         }
Index: ChapterX.Infrastructure/Repositories/StoryRepository.cs
===================================================================
--- ChapterX.Infrastructure/Repositories/StoryRepository.cs	(revision a6e33d1f34c0dbbfff38bfb2c73eea32abfe7cff)
+++ ChapterX.Infrastructure/Repositories/StoryRepository.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -12,30 +12,4 @@
         }
 
-        public override async Task<IEnumerable<Story>> GetAllAsync(CancellationToken cancellationToken = default)
-        {
-            return await _dbSet
-                .Include(s => s.HasGenres)
-                    .ThenInclude(hg => hg.Genre)
-                .Include(s => s.Writer)
-                    .ThenInclude(w => w!.User)
-                .Include(s => s.Likes)
-                .Include(s => s.Comments)
-                .Include(s => s.Chapters)
-                .ToListAsync(cancellationToken);
-        }
-
-        public override async Task<Story?> GetByIdAsync(int id, CancellationToken cancellationToken = default)
-        {
-            return await _dbSet
-                .Include(s => s.HasGenres)
-                    .ThenInclude(hg => hg.Genre)
-                .Include(s => s.Writer)
-                    .ThenInclude(w => w!.User)
-                .Include(s => s.Likes)
-                .Include(s => s.Comments)
-                .Include(s => s.Chapters)
-                .FirstOrDefaultAsync(s => s.Id == id, cancellationToken);
-        }
-
         public async Task<IEnumerable<Story>> GetByWriterIdAsync(int writerId, CancellationToken cancellationToken = default)
         {
Index: ChapterX.Infrastructure/Repositories/UserRepository.cs
===================================================================
--- ChapterX.Infrastructure/Repositories/UserRepository.cs	(revision a6e33d1f34c0dbbfff38bfb2c73eea32abfe7cff)
+++ ChapterX.Infrastructure/Repositories/UserRepository.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -12,16 +12,6 @@
         }
 
-        public override async Task<IEnumerable<User>> GetAllAsync(CancellationToken cancellationToken = default)
-            => await _dbSet
-                .Include(u => u.Admin)
-                .Include(u => u.Writer)
-                .ToListAsync(cancellationToken);
-
         public async Task<User?> GetByEmailAsync(string email, CancellationToken cancellationToken = default)
-            => await _dbSet
-                .Include(u => u.Admin)
-                .Include(u => u.Writer)
-                .Include(u => u.RegularUser)
-                .FirstOrDefaultAsync(u => u.Email == email, cancellationToken);
+            => await _dbSet.FirstOrDefaultAsync(u => u.Email == email, cancellationToken);
 
         public async Task<User?> GetByUsernameAsync(string username, CancellationToken cancellationToken = default)
Index: ChapterX.Infrastructure/Services/JwtTokenService.cs
===================================================================
--- ChapterX.Infrastructure/Services/JwtTokenService.cs	(revision a6e33d1f34c0dbbfff38bfb2c73eea32abfe7cff)
+++ 	(revision )
@@ -1,49 +1,0 @@
-using ChapterX.Application.Auth;
-using ChapterX.Domain.Entities;
-using Microsoft.Extensions.Configuration;
-using Microsoft.IdentityModel.Tokens;
-using System.IdentityModel.Tokens.Jwt;
-using System.Security.Claims;
-using System.Text;
-
-namespace ChapterX.Infrastructure.Services
-{
-    public class JwtTokenService : IJwtTokenService
-    {
-        private readonly IConfiguration _configuration;
-
-        public JwtTokenService(IConfiguration configuration)
-        {
-            _configuration = configuration;
-        }
-
-        public string GenerateToken(User user)
-        {
-            var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["Jwt:Key"]!));
-            var credentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
-
-            var role = user.Admin != null ? "Admin"
-                : user.Writer != null ? "Writer"
-                : "RegularUser";
-
-            var claims = new[]
-            {
-                new Claim(JwtRegisteredClaimNames.Sub, user.Id.ToString()),
-                new Claim(JwtRegisteredClaimNames.Email, user.Email),
-                new Claim(JwtRegisteredClaimNames.UniqueName, user.Username),
-                new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
-                new Claim(ClaimTypes.Role, role)
-            };
-
-            var token = new JwtSecurityToken(
-                issuer: _configuration["Jwt:Issuer"],
-                audience: _configuration["Jwt:Audience"],
-                claims: claims,
-                expires: DateTime.UtcNow.AddDays(7),
-                signingCredentials: credentials
-            );
-
-            return new JwtSecurityTokenHandler().WriteToken(token);
-        }
-    }
-}
