Index: ChapterX.Application/PermissionLevel/Commands/AddHandler.cs
===================================================================
--- ChapterX.Application/PermissionLevel/Commands/AddHandler.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
+++ ChapterX.Application/PermissionLevel/Commands/AddHandler.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -0,0 +1,21 @@
+using MediatR;
+using Microsoft.Extensions.Logging;
+
+namespace ChapterX.Application.PermissionLevel.Commands
+{
+    public class AddHandler : IRequestHandler<AddRequest, AddResponse>
+    {
+        private readonly ILogger<AddHandler> _logger;
+
+        public AddHandler(ILogger<AddHandler> logger)
+        {
+            _logger = logger;
+        }
+
+        public Task<AddResponse> Handle(AddRequest request, CancellationToken cancellationToken)
+        {
+            _logger.LogWarning("PermissionLevel is an enum and cannot be added at runtime.");
+            return Task.FromResult(new AddResponse(false));
+        }
+    }
+}
Index: ChapterX.Application/PermissionLevel/Commands/AddRequest.cs
===================================================================
--- ChapterX.Application/PermissionLevel/Commands/AddRequest.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
+++ ChapterX.Application/PermissionLevel/Commands/AddRequest.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -0,0 +1,7 @@
+using MediatR;
+using PermissionLevelEnum = ChapterX.Domain.Entities.PermissionLevel;
+
+namespace ChapterX.Application.PermissionLevel.Commands
+{
+    public record AddRequest(PermissionLevelEnum Value) : IRequest<AddResponse>;
+}
Index: ChapterX.Application/PermissionLevel/Commands/AddResponse.cs
===================================================================
--- ChapterX.Application/PermissionLevel/Commands/AddResponse.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
+++ ChapterX.Application/PermissionLevel/Commands/AddResponse.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -0,0 +1,4 @@
+namespace ChapterX.Application.PermissionLevel.Commands
+{
+    public record AddResponse(bool Success);
+}
Index: ChapterX.Application/PermissionLevel/Commands/DeleteHandler.cs
===================================================================
--- ChapterX.Application/PermissionLevel/Commands/DeleteHandler.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
+++ ChapterX.Application/PermissionLevel/Commands/DeleteHandler.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -0,0 +1,21 @@
+using MediatR;
+using Microsoft.Extensions.Logging;
+
+namespace ChapterX.Application.PermissionLevel.Commands
+{
+    public class DeleteHandler : IRequestHandler<DeleteRequest, DeleteResponse>
+    {
+        private readonly ILogger<DeleteHandler> _logger;
+
+        public DeleteHandler(ILogger<DeleteHandler> logger)
+        {
+            _logger = logger;
+        }
+
+        public Task<DeleteResponse> Handle(DeleteRequest request, CancellationToken cancellationToken)
+        {
+            _logger.LogWarning("PermissionLevel is an enum and cannot be deleted at runtime.");
+            return Task.FromResult(new DeleteResponse(false));
+        }
+    }
+}
Index: ChapterX.Application/PermissionLevel/Commands/DeleteRequest.cs
===================================================================
--- ChapterX.Application/PermissionLevel/Commands/DeleteRequest.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
+++ ChapterX.Application/PermissionLevel/Commands/DeleteRequest.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -0,0 +1,7 @@
+using MediatR;
+using PermissionLevelEnum = ChapterX.Domain.Entities.PermissionLevel;
+
+namespace ChapterX.Application.PermissionLevel.Commands
+{
+    public record DeleteRequest(PermissionLevelEnum Value) : IRequest<DeleteResponse>;
+}
Index: ChapterX.Application/PermissionLevel/Commands/DeleteResponse.cs
===================================================================
--- ChapterX.Application/PermissionLevel/Commands/DeleteResponse.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
+++ ChapterX.Application/PermissionLevel/Commands/DeleteResponse.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -0,0 +1,4 @@
+namespace ChapterX.Application.PermissionLevel.Commands
+{
+    public record DeleteResponse(bool Success);
+}
Index: ChapterX.Application/PermissionLevel/Commands/UpdateHandler.cs
===================================================================
--- ChapterX.Application/PermissionLevel/Commands/UpdateHandler.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
+++ ChapterX.Application/PermissionLevel/Commands/UpdateHandler.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -0,0 +1,22 @@
+using MediatR;
+using Microsoft.Extensions.Logging;
+
+namespace ChapterX.Application.PermissionLevel.Commands
+{
+    // PermissionLevel is an enum — values cannot be updated at runtime.
+    public class UpdateHandler : IRequestHandler<UpdateRequest, UpdateResponse>
+    {
+        private readonly ILogger<UpdateHandler> _logger;
+
+        public UpdateHandler(ILogger<UpdateHandler> logger)
+        {
+            _logger = logger;
+        }
+
+        public Task<UpdateResponse> Handle(UpdateRequest request, CancellationToken cancellationToken)
+        {
+            _logger.LogWarning("PermissionLevel is an enum and cannot be updated at runtime.");
+            return Task.FromResult(new UpdateResponse(false));
+        }
+    }
+}
Index: ChapterX.Application/PermissionLevel/Commands/UpdateRequest.cs
===================================================================
--- ChapterX.Application/PermissionLevel/Commands/UpdateRequest.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
+++ ChapterX.Application/PermissionLevel/Commands/UpdateRequest.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -0,0 +1,6 @@
+using MediatR;
+
+namespace ChapterX.Application.PermissionLevel.Commands
+{
+    public record UpdateRequest(int Id) : IRequest<UpdateResponse>;
+}
Index: ChapterX.Application/PermissionLevel/Commands/UpdateResponse.cs
===================================================================
--- ChapterX.Application/PermissionLevel/Commands/UpdateResponse.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
+++ ChapterX.Application/PermissionLevel/Commands/UpdateResponse.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -0,0 +1,4 @@
+namespace ChapterX.Application.PermissionLevel.Commands
+{
+    public record UpdateResponse(bool Success);
+}
Index: ChapterX.Application/PermissionLevel/Queries/GetAllHandler.cs
===================================================================
--- ChapterX.Application/PermissionLevel/Queries/GetAllHandler.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
+++ ChapterX.Application/PermissionLevel/Queries/GetAllHandler.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -0,0 +1,24 @@
+using ChapterX.Domain.Repositories;
+using MediatR;
+using Microsoft.Extensions.Logging;
+
+namespace ChapterX.Application.PermissionLevel.Queries
+{
+    public class GetAllHandler : IRequestHandler<GetAllRequest, GetAllResponse>
+    {
+        private readonly IPermissionLevelRepository _permissionLevelRepository;
+        private readonly ILogger<GetAllHandler> _logger;
+
+        public GetAllHandler(IPermissionLevelRepository permissionLevelRepository, ILogger<GetAllHandler> logger)
+        {
+            _permissionLevelRepository = permissionLevelRepository;
+            _logger = logger;
+        }
+
+        public async Task<GetAllResponse> Handle(GetAllRequest request, CancellationToken cancellationToken)
+        {
+            var permissionLevels = await _permissionLevelRepository.GetAllAsync(cancellationToken);
+            return new GetAllResponse(permissionLevels);
+        }
+    }
+}
Index: ChapterX.Application/PermissionLevel/Queries/GetAllRequest.cs
===================================================================
--- ChapterX.Application/PermissionLevel/Queries/GetAllRequest.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
+++ ChapterX.Application/PermissionLevel/Queries/GetAllRequest.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -0,0 +1,6 @@
+using MediatR;
+
+namespace ChapterX.Application.PermissionLevel.Queries
+{
+    public record GetAllRequest() : IRequest<GetAllResponse>;
+}
Index: ChapterX.Application/PermissionLevel/Queries/GetAllResponse.cs
===================================================================
--- ChapterX.Application/PermissionLevel/Queries/GetAllResponse.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
+++ ChapterX.Application/PermissionLevel/Queries/GetAllResponse.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -0,0 +1,8 @@
+using ChapterX.Domain.Entities;
+
+namespace ChapterX.Application.PermissionLevel.Queries
+{
+    using PermissionLevelEnum = ChapterX.Domain.Entities.PermissionLevel;
+
+    public record GetAllResponse(IEnumerable<PermissionLevelEnum> PermissionLevels);
+}
Index: ChapterX.Application/PermissionLevel/Queries/GetHandler.cs
===================================================================
--- ChapterX.Application/PermissionLevel/Queries/GetHandler.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
+++ ChapterX.Application/PermissionLevel/Queries/GetHandler.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -0,0 +1,24 @@
+using ChapterX.Domain.Repositories;
+using MediatR;
+using Microsoft.Extensions.Logging;
+
+namespace ChapterX.Application.PermissionLevel.Queries
+{
+    public class GetHandler : IRequestHandler<GetRequest, GetResponse>
+    {
+        private readonly IPermissionLevelRepository _permissionLevelRepository;
+        private readonly ILogger<GetHandler> _logger;
+
+        public GetHandler(IPermissionLevelRepository permissionLevelRepository, ILogger<GetHandler> logger)
+        {
+            _permissionLevelRepository = permissionLevelRepository;
+            _logger = logger;
+        }
+
+        public async Task<GetResponse> Handle(GetRequest request, CancellationToken cancellationToken)
+        {
+            var permissionLevel = await _permissionLevelRepository.GetByIdAsync(request.Id, cancellationToken);
+            return new GetResponse(permissionLevel);
+        }
+    }
+}
Index: ChapterX.Application/PermissionLevel/Queries/GetRequest.cs
===================================================================
--- ChapterX.Application/PermissionLevel/Queries/GetRequest.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
+++ ChapterX.Application/PermissionLevel/Queries/GetRequest.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -0,0 +1,6 @@
+using MediatR;
+
+namespace ChapterX.Application.PermissionLevel.Queries
+{
+    public record GetRequest(int Id) : IRequest<GetResponse>;
+}
Index: ChapterX.Application/PermissionLevel/Queries/GetResponse.cs
===================================================================
--- ChapterX.Application/PermissionLevel/Queries/GetResponse.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
+++ ChapterX.Application/PermissionLevel/Queries/GetResponse.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
@@ -0,0 +1,6 @@
+namespace ChapterX.Application.PermissionLevel.Queries
+{
+    using PermissionLevelEnum = ChapterX.Domain.Entities.PermissionLevel;
+
+    public record GetResponse(PermissionLevelEnum? PermissionLevel);
+}
