Index: ChapterX.Infrastructure/Repositories/GenericRepository.cs
===================================================================
--- ChapterX.Infrastructure/Repositories/GenericRepository.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
+++ ChapterX.Infrastructure/Repositories/GenericRepository.cs	(revision acf690c1403ecbecd948a46d950278f177f2d408)
@@ -21,5 +21,5 @@
             => await _dbSet.FindAsync([id], cancellationToken);
 
-        public async Task<IEnumerable<T>> GetAllAsync(CancellationToken cancellationToken = default)
+        public virtual async Task<IEnumerable<T>> GetAllAsync(CancellationToken cancellationToken = default)
             => await _dbSet.ToListAsync(cancellationToken);
 
Index: ChapterX.Infrastructure/Repositories/ReadingListItemsRepository.cs
===================================================================
--- ChapterX.Infrastructure/Repositories/ReadingListItemsRepository.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
+++ ChapterX.Infrastructure/Repositories/ReadingListItemsRepository.cs	(revision acf690c1403ecbecd948a46d950278f177f2d408)
@@ -2,9 +2,5 @@
 using ChapterX.Domain.Repositories;
 using ChapterX.Infrastructure.Data.DataContext;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
+using Microsoft.EntityFrameworkCore;
 
 namespace ChapterX.Infrastructure.Repositories
@@ -15,4 +11,7 @@
         {
         }
+
+        public async Task<bool> ExistsAsync(int listId, int storyId, CancellationToken cancellationToken = default)
+            => await _dbSet.AnyAsync(i => i.ListId == listId && i.StoryId == storyId, cancellationToken);
     }
 }
Index: ChapterX.Infrastructure/Repositories/ReadingListRepository.cs
===================================================================
--- ChapterX.Infrastructure/Repositories/ReadingListRepository.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
+++ ChapterX.Infrastructure/Repositories/ReadingListRepository.cs	(revision acf690c1403ecbecd948a46d950278f177f2d408)
@@ -12,8 +12,16 @@
         }
 
+        public override async Task<IEnumerable<ReadingList>> GetAllAsync(CancellationToken cancellationToken = default)
+        {
+            return await _dbSet
+                .Include(r => r.ReadingListItems)
+                .ToListAsync(cancellationToken);
+        }
+
         public async Task<IEnumerable<ReadingList>> GetByUserIdAsync(int userId, CancellationToken cancellationToken = default)
         {
             return await _dbSet
                 .Where(r => r.UserId == userId)
+                .Include(r => r.ReadingListItems)
                 .ToListAsync(cancellationToken);
         }
Index: ChapterX.Infrastructure/Repositories/UserRepository.cs
===================================================================
--- ChapterX.Infrastructure/Repositories/UserRepository.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
+++ ChapterX.Infrastructure/Repositories/UserRepository.cs	(revision acf690c1403ecbecd948a46d950278f177f2d408)
@@ -13,5 +13,9 @@
 
         public async Task<User?> GetByEmailAsync(string email, CancellationToken cancellationToken = default)
-            => await _dbSet.FirstOrDefaultAsync(u => u.Email == email, cancellationToken);
+            => await _dbSet
+                .Include(u => u.Admin)
+                .Include(u => u.Writer)
+                .Include(u => u.RegularUser)
+                .FirstOrDefaultAsync(u => u.Email == email, cancellationToken);
 
         public async Task<User?> GetByUsernameAsync(string username, CancellationToken cancellationToken = default)
