diff --git a/CLAUDE.md b/CLAUDE.md
index 49b2cfc..eb0c11b 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -7,7 +7,10 @@
**PnvPanel** — self-service портал для VPN-конфигураций (VLESS/VMess/Trojan/Shadowsocks): пользователи
сами создают конфиги, админ управляет серверами и пользователями. Есть **Telegram-бот** (ссылка на
сайт, просмотр конфигов, passwordless-вход). Бэкенд оркестрирует панели **3x-ui** через
-[`ThreeXui.Net`](https://github.com/mrleo1nid/ThreeXui.Net) и хранит проекцию домена в PostgreSQL.
+[`ThreeXui.Net`](https://github.com/mrleo1nid/ThreeXui.Net), CQRS — через собственную библиотеку
+[`LiteCqrs.Net`](https://github.com/mrleo1nid/LiteCqrs.Net) (на время разработки подключена как
+`ProjectReference` из соседнего репозитория `D:\Github\LiteCqrs.Net`, ещё не опубликована в
+NuGet/GitHub), и хранит проекцию домена в PostgreSQL.
Живые обновления — SignalR. Поставка — **единый Docker-образ** (фронт+бек+бот) + PostgreSQL в compose.
> Собрано и покрыто тестами, единый образ и compose-стек проверены живьём. Есть опциональный биллинг
@@ -25,8 +28,10 @@
## Стек
-- **Backend**: C# / .NET 10, ASP.NET Core Web API, Clean Architecture, CQRS (**собственный тонкий
- диспетчер**, без MediatR), EF Core 10 + Npgsql, ASP.NET Core Identity + JWT, SignalR, FluentValidation,
+- **Backend**: C# / .NET 10, ASP.NET Core Web API, Clean Architecture, CQRS (через
+ [`LiteCqrs.Net`](https://github.com/mrleo1nid/LiteCqrs.Net) — собственная лёгкая
+ CQRS-библиотека, альтернатива MediatR с явным разделением Command/Query), EF Core 10 + Npgsql,
+ ASP.NET Core Identity + JWT, SignalR, FluentValidation,
Serilog. Маппинг DTO вручную (`FromDomain(...)`, без Mapster). OpenAPI — нативный
`Microsoft.AspNetCore.OpenApi` + Scalar UI (без Swashbuckle).
- **Frontend**: React 19 + Vite + TS, TanStack Query/Router, shadcn-стиль поверх Radix + Tailwind v4,
@@ -174,8 +179,8 @@ docker compose up -d # api + postgres (+ web)
## Ключевые решения
-См. [tech-stack.md](docs/tech-stack.md#ключевые-решения-по-домену-и-поведению): CQRS — собственный
-диспетчер (не MediatR); одна роль на пользователя; секреты нод — ASP.NET Data Protection; биллинг
+См. [tech-stack.md](docs/tech-stack.md#ключевые-решения-по-домену-и-поведению): CQRS — через
+LiteCqrs.Net (собственная библиотека, не MediatR); одна роль на пользователя; секреты нод — ASP.NET Data Protection; биллинг
опционален per-роль (недоступен для `admin`); i18n — RU+EN (react-i18next); Telegram — long polling,
только привязка (не signup); история трафика — простая таблица + TTL; логирование — Serilog.
diff --git a/backend/Directory.Packages.props b/backend/Directory.Packages.props
index fd06edf..b8743db 100644
--- a/backend/Directory.Packages.props
+++ b/backend/Directory.Packages.props
@@ -29,6 +29,7 @@
+
diff --git a/backend/src/PnvPanel.Api/Endpoints/ActivationEndpoints.cs b/backend/src/PnvPanel.Api/Endpoints/ActivationEndpoints.cs
index 01a6c80..057ad00 100644
--- a/backend/src/PnvPanel.Api/Endpoints/ActivationEndpoints.cs
+++ b/backend/src/PnvPanel.Api/Endpoints/ActivationEndpoints.cs
@@ -1,7 +1,7 @@
using PnvPanel.Api.Common;
using PnvPanel.Application.Activation;
using PnvPanel.Application.Admin.Activation;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Activation;
using PnvPanel.Infrastructure.Identity;
diff --git a/backend/src/PnvPanel.Api/Endpoints/AdminAppEndpoints.cs b/backend/src/PnvPanel.Api/Endpoints/AdminAppEndpoints.cs
index 04efb93..a0f0ef3 100644
--- a/backend/src/PnvPanel.Api/Endpoints/AdminAppEndpoints.cs
+++ b/backend/src/PnvPanel.Api/Endpoints/AdminAppEndpoints.cs
@@ -1,6 +1,6 @@
using PnvPanel.Api.Common;
using PnvPanel.Application.Admin.Apps;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Domain.Apps;
using PnvPanel.Infrastructure.Identity;
diff --git a/backend/src/PnvPanel.Api/Endpoints/AdminBillingEndpoints.cs b/backend/src/PnvPanel.Api/Endpoints/AdminBillingEndpoints.cs
index 20dc00f..7e4b019 100644
--- a/backend/src/PnvPanel.Api/Endpoints/AdminBillingEndpoints.cs
+++ b/backend/src/PnvPanel.Api/Endpoints/AdminBillingEndpoints.cs
@@ -1,6 +1,6 @@
using PnvPanel.Api.Common;
using PnvPanel.Application.Admin.Billing;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Billing;
using PnvPanel.Infrastructure.Identity;
diff --git a/backend/src/PnvPanel.Api/Endpoints/AdminInstructionEndpoints.cs b/backend/src/PnvPanel.Api/Endpoints/AdminInstructionEndpoints.cs
index 9e4ba4a..862e169 100644
--- a/backend/src/PnvPanel.Api/Endpoints/AdminInstructionEndpoints.cs
+++ b/backend/src/PnvPanel.Api/Endpoints/AdminInstructionEndpoints.cs
@@ -1,6 +1,6 @@
using PnvPanel.Api.Common;
using PnvPanel.Application.Admin.Instructions;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Instructions;
using PnvPanel.Infrastructure.Identity;
diff --git a/backend/src/PnvPanel.Api/Endpoints/AdminMaintenanceEndpoints.cs b/backend/src/PnvPanel.Api/Endpoints/AdminMaintenanceEndpoints.cs
index c9e09aa..efa67cb 100644
--- a/backend/src/PnvPanel.Api/Endpoints/AdminMaintenanceEndpoints.cs
+++ b/backend/src/PnvPanel.Api/Endpoints/AdminMaintenanceEndpoints.cs
@@ -1,6 +1,6 @@
using PnvPanel.Api.Common;
using PnvPanel.Application.Admin.Maintenance;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Infrastructure.Identity;
diff --git a/backend/src/PnvPanel.Api/Endpoints/AdminNewsEndpoints.cs b/backend/src/PnvPanel.Api/Endpoints/AdminNewsEndpoints.cs
index eb49554..420a939 100644
--- a/backend/src/PnvPanel.Api/Endpoints/AdminNewsEndpoints.cs
+++ b/backend/src/PnvPanel.Api/Endpoints/AdminNewsEndpoints.cs
@@ -1,6 +1,6 @@
using PnvPanel.Api.Common;
using PnvPanel.Application.Admin.News;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.News;
using PnvPanel.Infrastructure.Identity;
diff --git a/backend/src/PnvPanel.Api/Endpoints/AdminPlanEndpoints.cs b/backend/src/PnvPanel.Api/Endpoints/AdminPlanEndpoints.cs
index 36346e5..3c4426d 100644
--- a/backend/src/PnvPanel.Api/Endpoints/AdminPlanEndpoints.cs
+++ b/backend/src/PnvPanel.Api/Endpoints/AdminPlanEndpoints.cs
@@ -1,6 +1,6 @@
using PnvPanel.Api.Common;
using PnvPanel.Application.Admin.Plans;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Infrastructure.Identity;
namespace PnvPanel.Api.Endpoints;
diff --git a/backend/src/PnvPanel.Api/Endpoints/AdminPricingEndpoints.cs b/backend/src/PnvPanel.Api/Endpoints/AdminPricingEndpoints.cs
index 6f71523..1f252da 100644
--- a/backend/src/PnvPanel.Api/Endpoints/AdminPricingEndpoints.cs
+++ b/backend/src/PnvPanel.Api/Endpoints/AdminPricingEndpoints.cs
@@ -1,7 +1,7 @@
using PnvPanel.Api.Common;
using PnvPanel.Application.Admin.Pricing;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Infrastructure.Identity;
namespace PnvPanel.Api.Endpoints;
diff --git a/backend/src/PnvPanel.Api/Endpoints/AdminStatsEndpoints.cs b/backend/src/PnvPanel.Api/Endpoints/AdminStatsEndpoints.cs
index 3114758..21c11d5 100644
--- a/backend/src/PnvPanel.Api/Endpoints/AdminStatsEndpoints.cs
+++ b/backend/src/PnvPanel.Api/Endpoints/AdminStatsEndpoints.cs
@@ -1,7 +1,7 @@
using PnvPanel.Api.Common;
using PnvPanel.Application.Admin.Audit;
using PnvPanel.Application.Admin.Stats;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Audit;
using PnvPanel.Infrastructure.Identity;
diff --git a/backend/src/PnvPanel.Api/Endpoints/AdminSupportEndpoints.cs b/backend/src/PnvPanel.Api/Endpoints/AdminSupportEndpoints.cs
index 18d3588..66d178d 100644
--- a/backend/src/PnvPanel.Api/Endpoints/AdminSupportEndpoints.cs
+++ b/backend/src/PnvPanel.Api/Endpoints/AdminSupportEndpoints.cs
@@ -1,7 +1,7 @@
using Microsoft.AspNetCore.Mvc;
using PnvPanel.Api.Common;
using PnvPanel.Application.Admin.Support;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.Support;
using PnvPanel.Application.Support.AddComment;
diff --git a/backend/src/PnvPanel.Api/Endpoints/AdminUserEndpoints.cs b/backend/src/PnvPanel.Api/Endpoints/AdminUserEndpoints.cs
index e7eb9b5..cdb425d 100644
--- a/backend/src/PnvPanel.Api/Endpoints/AdminUserEndpoints.cs
+++ b/backend/src/PnvPanel.Api/Endpoints/AdminUserEndpoints.cs
@@ -2,7 +2,7 @@ using PnvPanel.Api.Common;
using PnvPanel.Application.Admin.Configs;
using PnvPanel.Application.Admin.Users;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.Configs;
using PnvPanel.Domain.Configs;
diff --git a/backend/src/PnvPanel.Api/Endpoints/AppEndpoints.cs b/backend/src/PnvPanel.Api/Endpoints/AppEndpoints.cs
index 8ffcaeb..38259c2 100644
--- a/backend/src/PnvPanel.Api/Endpoints/AppEndpoints.cs
+++ b/backend/src/PnvPanel.Api/Endpoints/AppEndpoints.cs
@@ -1,6 +1,6 @@
using PnvPanel.Api.Common;
using PnvPanel.Application.Apps;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Domain.Apps;
namespace PnvPanel.Api.Endpoints;
diff --git a/backend/src/PnvPanel.Api/Endpoints/AuthEndpoints.cs b/backend/src/PnvPanel.Api/Endpoints/AuthEndpoints.cs
index 2a8f053..8b2cd65 100644
--- a/backend/src/PnvPanel.Api/Endpoints/AuthEndpoints.cs
+++ b/backend/src/PnvPanel.Api/Endpoints/AuthEndpoints.cs
@@ -8,7 +8,7 @@ using PnvPanel.Application.Auth.Logout;
using PnvPanel.Application.Auth.Me;
using PnvPanel.Application.Auth.Refresh;
using PnvPanel.Application.Auth.Register;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
namespace PnvPanel.Api.Endpoints;
diff --git a/backend/src/PnvPanel.Api/Endpoints/BillingEndpoints.cs b/backend/src/PnvPanel.Api/Endpoints/BillingEndpoints.cs
index 814c6e5..b0f63f8 100644
--- a/backend/src/PnvPanel.Api/Endpoints/BillingEndpoints.cs
+++ b/backend/src/PnvPanel.Api/Endpoints/BillingEndpoints.cs
@@ -5,7 +5,7 @@ using PnvPanel.Application.Billing.CreatePaymentRequest;
using PnvPanel.Application.Billing.GetMyBillingStatus;
using PnvPanel.Application.Billing.MarkPaymentSent;
using PnvPanel.Application.Billing.SendRequisitesToTelegram;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Domain.Billing;
namespace PnvPanel.Api.Endpoints;
diff --git a/backend/src/PnvPanel.Api/Endpoints/ConfigEndpoints.cs b/backend/src/PnvPanel.Api/Endpoints/ConfigEndpoints.cs
index 89f6ebe..6eee2e6 100644
--- a/backend/src/PnvPanel.Api/Endpoints/ConfigEndpoints.cs
+++ b/backend/src/PnvPanel.Api/Endpoints/ConfigEndpoints.cs
@@ -1,5 +1,5 @@
using PnvPanel.Api.Common;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Configs;
using PnvPanel.Application.Configs.Create;
using PnvPanel.Application.Configs.Edit;
diff --git a/backend/src/PnvPanel.Api/Endpoints/InboundEndpoints.cs b/backend/src/PnvPanel.Api/Endpoints/InboundEndpoints.cs
index 108d19d..5850e1c 100644
--- a/backend/src/PnvPanel.Api/Endpoints/InboundEndpoints.cs
+++ b/backend/src/PnvPanel.Api/Endpoints/InboundEndpoints.cs
@@ -1,6 +1,6 @@
using PnvPanel.Api.Common;
using PnvPanel.Application.Admin.Inbounds;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Infrastructure.Identity;
namespace PnvPanel.Api.Endpoints;
diff --git a/backend/src/PnvPanel.Api/Endpoints/InstructionEndpoints.cs b/backend/src/PnvPanel.Api/Endpoints/InstructionEndpoints.cs
index 77c0462..41d69f7 100644
--- a/backend/src/PnvPanel.Api/Endpoints/InstructionEndpoints.cs
+++ b/backend/src/PnvPanel.Api/Endpoints/InstructionEndpoints.cs
@@ -1,5 +1,5 @@
using PnvPanel.Api.Common;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Instructions;
namespace PnvPanel.Api.Endpoints;
diff --git a/backend/src/PnvPanel.Api/Endpoints/NewsEndpoints.cs b/backend/src/PnvPanel.Api/Endpoints/NewsEndpoints.cs
index e3eaeab..15ae89c 100644
--- a/backend/src/PnvPanel.Api/Endpoints/NewsEndpoints.cs
+++ b/backend/src/PnvPanel.Api/Endpoints/NewsEndpoints.cs
@@ -1,5 +1,5 @@
using PnvPanel.Api.Common;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.News;
diff --git a/backend/src/PnvPanel.Api/Endpoints/NodeEndpoints.cs b/backend/src/PnvPanel.Api/Endpoints/NodeEndpoints.cs
index fff9c80..b2a13f4 100644
--- a/backend/src/PnvPanel.Api/Endpoints/NodeEndpoints.cs
+++ b/backend/src/PnvPanel.Api/Endpoints/NodeEndpoints.cs
@@ -1,6 +1,6 @@
using PnvPanel.Api.Common;
using PnvPanel.Application.Admin.Nodes;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Infrastructure.Identity;
namespace PnvPanel.Api.Endpoints;
diff --git a/backend/src/PnvPanel.Api/Endpoints/PlanEndpoints.cs b/backend/src/PnvPanel.Api/Endpoints/PlanEndpoints.cs
index d2e5777..173f8d9 100644
--- a/backend/src/PnvPanel.Api/Endpoints/PlanEndpoints.cs
+++ b/backend/src/PnvPanel.Api/Endpoints/PlanEndpoints.cs
@@ -1,5 +1,5 @@
using PnvPanel.Api.Common;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Plans;
namespace PnvPanel.Api.Endpoints;
diff --git a/backend/src/PnvPanel.Api/Endpoints/RoleEndpoints.cs b/backend/src/PnvPanel.Api/Endpoints/RoleEndpoints.cs
index 477339a..6a5c54a 100644
--- a/backend/src/PnvPanel.Api/Endpoints/RoleEndpoints.cs
+++ b/backend/src/PnvPanel.Api/Endpoints/RoleEndpoints.cs
@@ -2,7 +2,7 @@ using PnvPanel.Api.Common;
using PnvPanel.Application.Admin.Roles;
using PnvPanel.Application.Admin.Users;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Infrastructure.Identity;
namespace PnvPanel.Api.Endpoints;
diff --git a/backend/src/PnvPanel.Api/Endpoints/SubscriptionEndpoints.cs b/backend/src/PnvPanel.Api/Endpoints/SubscriptionEndpoints.cs
index 06c3f68..8dca91e 100644
--- a/backend/src/PnvPanel.Api/Endpoints/SubscriptionEndpoints.cs
+++ b/backend/src/PnvPanel.Api/Endpoints/SubscriptionEndpoints.cs
@@ -1,6 +1,6 @@
using System.Text;
using PnvPanel.Api.Common;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Subscriptions;
namespace PnvPanel.Api.Endpoints;
diff --git a/backend/src/PnvPanel.Api/Endpoints/SupportEndpoints.cs b/backend/src/PnvPanel.Api/Endpoints/SupportEndpoints.cs
index a1071c0..7f74254 100644
--- a/backend/src/PnvPanel.Api/Endpoints/SupportEndpoints.cs
+++ b/backend/src/PnvPanel.Api/Endpoints/SupportEndpoints.cs
@@ -1,7 +1,7 @@
using Microsoft.AspNetCore.Mvc;
using PnvPanel.Api.Common;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.Support;
using PnvPanel.Application.Support.AddComment;
diff --git a/backend/src/PnvPanel.Api/Endpoints/TelegramEndpoints.cs b/backend/src/PnvPanel.Api/Endpoints/TelegramEndpoints.cs
index b40e7b9..3b34c79 100644
--- a/backend/src/PnvPanel.Api/Endpoints/TelegramEndpoints.cs
+++ b/backend/src/PnvPanel.Api/Endpoints/TelegramEndpoints.cs
@@ -1,7 +1,7 @@
using PnvPanel.Api.Common;
using PnvPanel.Application.Auth;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Telegram;
using PnvPanel.Domain.Telegram;
diff --git a/backend/src/PnvPanel.Api/Telegram/PnvBotUpdateHandler.cs b/backend/src/PnvPanel.Api/Telegram/PnvBotUpdateHandler.cs
index 3348f9e..14ea328 100644
--- a/backend/src/PnvPanel.Api/Telegram/PnvBotUpdateHandler.cs
+++ b/backend/src/PnvPanel.Api/Telegram/PnvBotUpdateHandler.cs
@@ -5,7 +5,7 @@ using PnvPanel.Application.Admin.Support;
using PnvPanel.Application.Billing;
using PnvPanel.Application.Billing.GetMyBillingStatus;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Configs.GetConfigLink;
using PnvPanel.Application.Configs.GetMyConfigs;
using PnvPanel.Application.Telegram;
@@ -353,247 +353,247 @@ public sealed class PnvBotUpdateHandler(
switch (parts[0])
{
- case "login":
- {
- var result =
- parts[1] == "approve"
- ? await sender.Send(
- new ApproveTelegramLoginCommand(requestId, fromId),
- cancellationToken
- )
- : await sender.Send(
- new RejectTelegramLoginCommand(requestId, fromId),
- cancellationToken
- );
-
- await botClient.AnswerCallbackQuery(
- callback.Id,
- result.IsSuccess ? "Готово" : result.Error.Message,
- cancellationToken: cancellationToken
- );
- if (callback.Message is not null)
- {
- var statusText = result.IsSuccess
- ? (parts[1] == "approve" ? "✅ Вход подтверждён." : "❌ Вход отклонён.")
- : $"⚠️ {result.Error.Message}";
- var text = $"{Escape(callback.Message.Text ?? "")}\n\n{statusText}";
- await botClient.EditMessageText(
- chatId.Value,
- callback.Message.Id,
- text,
- parseMode: ParseMode.Html,
- cancellationToken: cancellationToken
- );
+ case "login":
+ {
+ var result =
+ parts[1] == "approve"
+ ? await sender.Send(
+ new ApproveTelegramLoginCommand(requestId, fromId),
+ cancellationToken
+ )
+ : await sender.Send(
+ new RejectTelegramLoginCommand(requestId, fromId),
+ cancellationToken
+ );
+
+ await botClient.AnswerCallbackQuery(
+ callback.Id,
+ result.IsSuccess ? "Готово" : result.Error.Message,
+ cancellationToken: cancellationToken
+ );
+ if (callback.Message is not null)
+ {
+ var statusText = result.IsSuccess
+ ? (parts[1] == "approve" ? "✅ Вход подтверждён." : "❌ Вход отклонён.")
+ : $"⚠️ {result.Error.Message}";
+ var text = $"{Escape(callback.Message.Text ?? "")}\n\n{statusText}";
+ await botClient.EditMessageText(
+ chatId.Value,
+ callback.Message.Id,
+ text,
+ parseMode: ParseMode.Html,
+ cancellationToken: cancellationToken
+ );
+ }
+
+ break;
}
-
- break;
- }
- case "act":
- {
- if (!await TrySetAdminCurrentUserAsync(services, fromId, cancellationToken))
- {
- await botClient.AnswerCallbackQuery(
- callback.Id,
- "Недостаточно прав.",
- cancellationToken: cancellationToken
- );
- return;
+ case "act":
+ {
+ if (!await TrySetAdminCurrentUserAsync(services, fromId, cancellationToken))
+ {
+ await botClient.AnswerCallbackQuery(
+ callback.Id,
+ "Недостаточно прав.",
+ cancellationToken: cancellationToken
+ );
+ return;
+ }
+
+ var result =
+ parts[1] == "approve"
+ ? await sender.Send(
+ new ApproveActivationCommand(requestId),
+ cancellationToken
+ )
+ : await sender.Send(
+ new RejectActivationCommand(requestId, Reason: null),
+ cancellationToken
+ );
+
+ await botClient.AnswerCallbackQuery(
+ callback.Id,
+ result.IsSuccess ? "Готово" : result.Error.Message,
+ cancellationToken: cancellationToken
+ );
+ if (callback.Message is not null)
+ {
+ // Редактируем исходное сообщение с запросом вместо отдельного — иначе кнопки
+ // «Активировать/Отклонить» остаются висеть под уже обработанным запросом (в т.ч.
+ // если его обработали в другом месте — на сайте или из другого чата).
+ var statusText = result.IsSuccess
+ ? (
+ parts[1] == "approve"
+ ? "✅ Пользователь активирован."
+ : "❌ Запрос отклонён."
+ )
+ : $"⚠️ {result.Error.Message}";
+ var text = $"{Escape(callback.Message.Text ?? "")}\n\n{statusText}";
+ await botClient.EditMessageText(
+ chatId.Value,
+ callback.Message.Id,
+ text,
+ parseMode: ParseMode.Html,
+ cancellationToken: cancellationToken
+ );
+ }
+
+ break;
}
-
- var result =
- parts[1] == "approve"
- ? await sender.Send(
- new ApproveActivationCommand(requestId),
- cancellationToken
- )
- : await sender.Send(
- new RejectActivationCommand(requestId, Reason: null),
- cancellationToken
- );
-
- await botClient.AnswerCallbackQuery(
- callback.Id,
- result.IsSuccess ? "Готово" : result.Error.Message,
- cancellationToken: cancellationToken
- );
- if (callback.Message is not null)
- {
- // Редактируем исходное сообщение с запросом вместо отдельного — иначе кнопки
- // «Активировать/Отклонить» остаются висеть под уже обработанным запросом (в т.ч.
- // если его обработали в другом месте — на сайте или из другого чата).
- var statusText = result.IsSuccess
- ? (
- parts[1] == "approve"
- ? "✅ Пользователь активирован."
- : "❌ Запрос отклонён."
- )
- : $"⚠️ {result.Error.Message}";
- var text = $"{Escape(callback.Message.Text ?? "")}\n\n{statusText}";
- await botClient.EditMessageText(
- chatId.Value,
- callback.Message.Id,
- text,
- parseMode: ParseMode.Html,
- cancellationToken: cancellationToken
- );
+ case "erq":
+ {
+ if (!await TrySetAdminCurrentUserAsync(services, fromId, cancellationToken))
+ {
+ await botClient.AnswerCallbackQuery(
+ callback.Id,
+ "Недостаточно прав.",
+ cancellationToken: cancellationToken
+ );
+ return;
+ }
+
+ var result =
+ parts[1] == "approve"
+ ? await sender.Send(
+ new ApproveExtensionRequestCommand(requestId),
+ cancellationToken
+ )
+ : await sender.Send(
+ new RejectExtensionRequestCommand(requestId, Reason: null),
+ cancellationToken
+ );
+
+ await botClient.AnswerCallbackQuery(
+ callback.Id,
+ result.IsSuccess ? "Готово" : result.Error.Message,
+ cancellationToken: cancellationToken
+ );
+ if (callback.Message is not null)
+ {
+ var statusText = result.IsSuccess
+ ? (
+ parts[1] == "approve"
+ ? "✅ Заявка на продление одобрена."
+ : "❌ Заявка отклонена."
+ )
+ : $"⚠️ {result.Error.Message}";
+ var text = $"{Escape(callback.Message.Text ?? "")}\n\n{statusText}";
+ await botClient.EditMessageText(
+ chatId.Value,
+ callback.Message.Id,
+ text,
+ parseMode: ParseMode.Html,
+ cancellationToken: cancellationToken
+ );
+ }
+
+ break;
}
-
- break;
- }
- case "erq":
- {
- if (!await TrySetAdminCurrentUserAsync(services, fromId, cancellationToken))
- {
- await botClient.AnswerCallbackQuery(
- callback.Id,
- "Недостаточно прав.",
- cancellationToken: cancellationToken
- );
- return;
+ case "pay":
+ {
+ if (!await TrySetAdminCurrentUserAsync(services, fromId, cancellationToken))
+ {
+ await botClient.AnswerCallbackQuery(
+ callback.Id,
+ "Недостаточно прав.",
+ cancellationToken: cancellationToken
+ );
+ return;
+ }
+
+ var result =
+ parts[1] == "approve"
+ ? await sender.Send(
+ new ConfirmPaymentRequestCommand(requestId),
+ cancellationToken
+ )
+ : await sender.Send(
+ new RejectPaymentRequestCommand(requestId, Reason: null),
+ cancellationToken
+ );
+
+ await botClient.AnswerCallbackQuery(
+ callback.Id,
+ result.IsSuccess ? "Готово" : result.Error.Message,
+ cancellationToken: cancellationToken
+ );
+ if (callback.Message is not null)
+ {
+ var statusText = result.IsSuccess
+ ? (
+ parts[1] == "approve"
+ ? "✅ Оплата подтверждена."
+ : "❌ Оплата отклонена."
+ )
+ : $"⚠️ {result.Error.Message}";
+ var text = $"{Escape(callback.Message.Text ?? "")}\n\n{statusText}";
+ await botClient.EditMessageText(
+ chatId.Value,
+ callback.Message.Id,
+ text,
+ parseMode: ParseMode.Html,
+ cancellationToken: cancellationToken
+ );
+ }
+
+ break;
}
-
- var result =
- parts[1] == "approve"
- ? await sender.Send(
- new ApproveExtensionRequestCommand(requestId),
- cancellationToken
- )
- : await sender.Send(
- new RejectExtensionRequestCommand(requestId, Reason: null),
- cancellationToken
- );
-
- await botClient.AnswerCallbackQuery(
- callback.Id,
- result.IsSuccess ? "Готово" : result.Error.Message,
- cancellationToken: cancellationToken
- );
- if (callback.Message is not null)
- {
- var statusText = result.IsSuccess
- ? (
- parts[1] == "approve"
- ? "✅ Заявка на продление одобрена."
- : "❌ Заявка отклонена."
- )
- : $"⚠️ {result.Error.Message}";
- var text = $"{Escape(callback.Message.Text ?? "")}\n\n{statusText}";
- await botClient.EditMessageText(
- chatId.Value,
- callback.Message.Id,
- text,
- parseMode: ParseMode.Html,
- cancellationToken: cancellationToken
- );
+ case "cfg":
+ {
+ if (!await TrySetCurrentUserAsync(services, fromId, cancellationToken))
+ {
+ await botClient.AnswerCallbackQuery(
+ callback.Id,
+ "Telegram не привязан.",
+ cancellationToken: cancellationToken
+ );
+ return;
+ }
+
+ var linkResult = await sender.Send(
+ new GetConfigLinkQuery(requestId),
+ cancellationToken
+ );
+ await botClient.AnswerCallbackQuery(
+ callback.Id,
+ cancellationToken: cancellationToken
+ );
+
+ if (!linkResult.IsSuccess)
+ {
+ await botClient.SendMessage(
+ chatId.Value,
+ $"Не удалось получить ссылку: {linkResult.Error.Message}",
+ cancellationToken: cancellationToken
+ );
+ return;
+ }
+
+ if (callback.Message is null)
+ break;
+
+ // Редактируем то же сообщение (не плодим отдельное с сырым URL) — ссылка моноширинным
+ // блоком, по нему в Telegram можно тапнуть и скопировать целиком одним движением.
+ // Убираем именно эту кнопку из клавиатуры — остальные конфиги и «В меню» остаются на месте.
+ var text =
+ $"{Escape(callback.Message.Text ?? "")}\n\n{Escape(linkResult.Value.ConnectionString)}";
+ var remainingRows = (callback.Message.ReplyMarkup?.InlineKeyboard ?? [])
+ .Where(row => row.All(b => b.CallbackData != data))
+ .ToArray();
+
+ await botClient.EditMessageText(
+ chatId.Value,
+ callback.Message.Id,
+ text,
+ parseMode: ParseMode.Html,
+ replyMarkup: remainingRows.Length > 0
+ ? new InlineKeyboardMarkup(remainingRows)
+ : null,
+ cancellationToken: cancellationToken
+ );
+
+ break;
}
-
- break;
- }
- case "pay":
- {
- if (!await TrySetAdminCurrentUserAsync(services, fromId, cancellationToken))
- {
- await botClient.AnswerCallbackQuery(
- callback.Id,
- "Недостаточно прав.",
- cancellationToken: cancellationToken
- );
- return;
- }
-
- var result =
- parts[1] == "approve"
- ? await sender.Send(
- new ConfirmPaymentRequestCommand(requestId),
- cancellationToken
- )
- : await sender.Send(
- new RejectPaymentRequestCommand(requestId, Reason: null),
- cancellationToken
- );
-
- await botClient.AnswerCallbackQuery(
- callback.Id,
- result.IsSuccess ? "Готово" : result.Error.Message,
- cancellationToken: cancellationToken
- );
- if (callback.Message is not null)
- {
- var statusText = result.IsSuccess
- ? (
- parts[1] == "approve"
- ? "✅ Оплата подтверждена."
- : "❌ Оплата отклонена."
- )
- : $"⚠️ {result.Error.Message}";
- var text = $"{Escape(callback.Message.Text ?? "")}\n\n{statusText}";
- await botClient.EditMessageText(
- chatId.Value,
- callback.Message.Id,
- text,
- parseMode: ParseMode.Html,
- cancellationToken: cancellationToken
- );
- }
-
- break;
- }
- case "cfg":
- {
- if (!await TrySetCurrentUserAsync(services, fromId, cancellationToken))
- {
- await botClient.AnswerCallbackQuery(
- callback.Id,
- "Telegram не привязан.",
- cancellationToken: cancellationToken
- );
- return;
- }
-
- var linkResult = await sender.Send(
- new GetConfigLinkQuery(requestId),
- cancellationToken
- );
- await botClient.AnswerCallbackQuery(
- callback.Id,
- cancellationToken: cancellationToken
- );
-
- if (!linkResult.IsSuccess)
- {
- await botClient.SendMessage(
- chatId.Value,
- $"Не удалось получить ссылку: {linkResult.Error.Message}",
- cancellationToken: cancellationToken
- );
- return;
- }
-
- if (callback.Message is null)
- break;
-
- // Редактируем то же сообщение (не плодим отдельное с сырым URL) — ссылка моноширинным
- // блоком, по нему в Telegram можно тапнуть и скопировать целиком одним движением.
- // Убираем именно эту кнопку из клавиатуры — остальные конфиги и «В меню» остаются на месте.
- var text =
- $"{Escape(callback.Message.Text ?? "")}\n\n{Escape(linkResult.Value.ConnectionString)}";
- var remainingRows = (callback.Message.ReplyMarkup?.InlineKeyboard ?? [])
- .Where(row => row.All(b => b.CallbackData != data))
- .ToArray();
-
- await botClient.EditMessageText(
- chatId.Value,
- callback.Message.Id,
- text,
- parseMode: ParseMode.Html,
- replyMarkup: remainingRows.Length > 0
- ? new InlineKeyboardMarkup(remainingRows)
- : null,
- cancellationToken: cancellationToken
- );
-
- break;
- }
}
}
diff --git a/backend/src/PnvPanel.Application/Activation/GetActivationStatusQuery.cs b/backend/src/PnvPanel.Application/Activation/GetActivationStatusQuery.cs
index 2e98c66..da5f51b 100644
--- a/backend/src/PnvPanel.Application/Activation/GetActivationStatusQuery.cs
+++ b/backend/src/PnvPanel.Application/Activation/GetActivationStatusQuery.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Activation;
diff --git a/backend/src/PnvPanel.Application/Activation/GetActivationStatusQueryHandler.cs b/backend/src/PnvPanel.Application/Activation/GetActivationStatusQueryHandler.cs
index 172eef6..28d0a0b 100644
--- a/backend/src/PnvPanel.Application/Activation/GetActivationStatusQueryHandler.cs
+++ b/backend/src/PnvPanel.Application/Activation/GetActivationStatusQueryHandler.cs
@@ -1,7 +1,7 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Auth;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Activation;
diff --git a/backend/src/PnvPanel.Application/Activation/RequestActivationCommand.cs b/backend/src/PnvPanel.Application/Activation/RequestActivationCommand.cs
index c4915e2..5be3bc4 100644
--- a/backend/src/PnvPanel.Application/Activation/RequestActivationCommand.cs
+++ b/backend/src/PnvPanel.Application/Activation/RequestActivationCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Activation;
diff --git a/backend/src/PnvPanel.Application/Activation/RequestActivationCommandHandler.cs b/backend/src/PnvPanel.Application/Activation/RequestActivationCommandHandler.cs
index 0103375..87a31c2 100644
--- a/backend/src/PnvPanel.Application/Activation/RequestActivationCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Activation/RequestActivationCommandHandler.cs
@@ -1,7 +1,7 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Auth;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Activation;
diff --git a/backend/src/PnvPanel.Application/Admin/Activation/ApproveActivationCommand.cs b/backend/src/PnvPanel.Application/Admin/Activation/ApproveActivationCommand.cs
index 749f7e3..f4ae0ba 100644
--- a/backend/src/PnvPanel.Application/Admin/Activation/ApproveActivationCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Activation/ApproveActivationCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Activation;
diff --git a/backend/src/PnvPanel.Application/Admin/Activation/ApproveActivationCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Activation/ApproveActivationCommandHandler.cs
index a3cfdc4..1f10f0f 100644
--- a/backend/src/PnvPanel.Application/Admin/Activation/ApproveActivationCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Activation/ApproveActivationCommandHandler.cs
@@ -2,7 +2,7 @@ using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Activation;
using PnvPanel.Application.Auth;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Activation;
using PnvPanel.Domain.Audit;
diff --git a/backend/src/PnvPanel.Application/Admin/Activation/ListActivationRequestsQuery.cs b/backend/src/PnvPanel.Application/Admin/Activation/ListActivationRequestsQuery.cs
index b92a255..806e89e 100644
--- a/backend/src/PnvPanel.Application/Admin/Activation/ListActivationRequestsQuery.cs
+++ b/backend/src/PnvPanel.Application/Admin/Activation/ListActivationRequestsQuery.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Activation;
diff --git a/backend/src/PnvPanel.Application/Admin/Activation/ListActivationRequestsQueryHandler.cs b/backend/src/PnvPanel.Application/Admin/Activation/ListActivationRequestsQueryHandler.cs
index 25a21c8..2b930ea 100644
--- a/backend/src/PnvPanel.Application/Admin/Activation/ListActivationRequestsQueryHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Activation/ListActivationRequestsQueryHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Activation;
diff --git a/backend/src/PnvPanel.Application/Admin/Activation/RejectActivationCommand.cs b/backend/src/PnvPanel.Application/Admin/Activation/RejectActivationCommand.cs
index 694c8c9..cc2b785 100644
--- a/backend/src/PnvPanel.Application/Admin/Activation/RejectActivationCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Activation/RejectActivationCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Activation;
diff --git a/backend/src/PnvPanel.Application/Admin/Activation/RejectActivationCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Activation/RejectActivationCommandHandler.cs
index 4b567c5..ca27326 100644
--- a/backend/src/PnvPanel.Application/Admin/Activation/RejectActivationCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Activation/RejectActivationCommandHandler.cs
@@ -2,7 +2,7 @@ using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Activation;
using PnvPanel.Application.Auth;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Activation;
using PnvPanel.Domain.Audit;
diff --git a/backend/src/PnvPanel.Application/Admin/Apps/CreateAppCommand.cs b/backend/src/PnvPanel.Application/Admin/Apps/CreateAppCommand.cs
index 78ab20d..f4599ef 100644
--- a/backend/src/PnvPanel.Application/Admin/Apps/CreateAppCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Apps/CreateAppCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Apps;
diff --git a/backend/src/PnvPanel.Application/Admin/Apps/CreateAppCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Apps/CreateAppCommandHandler.cs
index ae09bb5..4b40589 100644
--- a/backend/src/PnvPanel.Application/Admin/Apps/CreateAppCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Apps/CreateAppCommandHandler.cs
@@ -1,5 +1,5 @@
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Apps;
diff --git a/backend/src/PnvPanel.Application/Admin/Apps/DeleteAppCommand.cs b/backend/src/PnvPanel.Application/Admin/Apps/DeleteAppCommand.cs
index 2d68d6c..ee32b76 100644
--- a/backend/src/PnvPanel.Application/Admin/Apps/DeleteAppCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Apps/DeleteAppCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Apps;
diff --git a/backend/src/PnvPanel.Application/Admin/Apps/DeleteAppCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Apps/DeleteAppCommandHandler.cs
index 6d3de73..d70ad91 100644
--- a/backend/src/PnvPanel.Application/Admin/Apps/DeleteAppCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Apps/DeleteAppCommandHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Apps;
diff --git a/backend/src/PnvPanel.Application/Admin/Apps/ListAdminAppsQuery.cs b/backend/src/PnvPanel.Application/Admin/Apps/ListAdminAppsQuery.cs
index 19c4e83..faf8729 100644
--- a/backend/src/PnvPanel.Application/Admin/Apps/ListAdminAppsQuery.cs
+++ b/backend/src/PnvPanel.Application/Admin/Apps/ListAdminAppsQuery.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Apps;
diff --git a/backend/src/PnvPanel.Application/Admin/Apps/ListAdminAppsQueryHandler.cs b/backend/src/PnvPanel.Application/Admin/Apps/ListAdminAppsQueryHandler.cs
index 164decc..d4a60d9 100644
--- a/backend/src/PnvPanel.Application/Admin/Apps/ListAdminAppsQueryHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Apps/ListAdminAppsQueryHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Apps;
diff --git a/backend/src/PnvPanel.Application/Admin/Apps/UpdateAppCommand.cs b/backend/src/PnvPanel.Application/Admin/Apps/UpdateAppCommand.cs
index 7cd6a0a..f68f433 100644
--- a/backend/src/PnvPanel.Application/Admin/Apps/UpdateAppCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Apps/UpdateAppCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Apps;
diff --git a/backend/src/PnvPanel.Application/Admin/Apps/UpdateAppCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Apps/UpdateAppCommandHandler.cs
index 40d41e4..362a11a 100644
--- a/backend/src/PnvPanel.Application/Admin/Apps/UpdateAppCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Apps/UpdateAppCommandHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Apps;
diff --git a/backend/src/PnvPanel.Application/Admin/Audit/ListAuditLogsQuery.cs b/backend/src/PnvPanel.Application/Admin/Audit/ListAuditLogsQuery.cs
index f6c865c..6d85ce8 100644
--- a/backend/src/PnvPanel.Application/Admin/Audit/ListAuditLogsQuery.cs
+++ b/backend/src/PnvPanel.Application/Admin/Audit/ListAuditLogsQuery.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Audit;
diff --git a/backend/src/PnvPanel.Application/Admin/Audit/ListAuditLogsQueryHandler.cs b/backend/src/PnvPanel.Application/Admin/Audit/ListAuditLogsQueryHandler.cs
index 83665ee..094c2d5 100644
--- a/backend/src/PnvPanel.Application/Admin/Audit/ListAuditLogsQueryHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Audit/ListAuditLogsQueryHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Audit;
diff --git a/backend/src/PnvPanel.Application/Admin/Billing/ConfirmPaymentRequestCommand.cs b/backend/src/PnvPanel.Application/Admin/Billing/ConfirmPaymentRequestCommand.cs
index 49bc99d..6f8f309 100644
--- a/backend/src/PnvPanel.Application/Admin/Billing/ConfirmPaymentRequestCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Billing/ConfirmPaymentRequestCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Billing;
diff --git a/backend/src/PnvPanel.Application/Admin/Billing/ConfirmPaymentRequestCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Billing/ConfirmPaymentRequestCommandHandler.cs
index 91995ac..666eed0 100644
--- a/backend/src/PnvPanel.Application/Admin/Billing/ConfirmPaymentRequestCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Billing/ConfirmPaymentRequestCommandHandler.cs
@@ -4,7 +4,7 @@ using PnvPanel.Application.Auth;
using PnvPanel.Application.Billing;
using PnvPanel.Application.Common.Concurrency;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Audit;
using PnvPanel.Domain.Billing;
diff --git a/backend/src/PnvPanel.Application/Admin/Billing/GetBillingSettingsQuery.cs b/backend/src/PnvPanel.Application/Admin/Billing/GetBillingSettingsQuery.cs
index d155c2d..9e1dab0 100644
--- a/backend/src/PnvPanel.Application/Admin/Billing/GetBillingSettingsQuery.cs
+++ b/backend/src/PnvPanel.Application/Admin/Billing/GetBillingSettingsQuery.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Billing;
diff --git a/backend/src/PnvPanel.Application/Admin/Billing/GetBillingSettingsQueryHandler.cs b/backend/src/PnvPanel.Application/Admin/Billing/GetBillingSettingsQueryHandler.cs
index a675225..e5782e1 100644
--- a/backend/src/PnvPanel.Application/Admin/Billing/GetBillingSettingsQueryHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Billing/GetBillingSettingsQueryHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Billing;
diff --git a/backend/src/PnvPanel.Application/Admin/Billing/GrantBillingGiftCommand.cs b/backend/src/PnvPanel.Application/Admin/Billing/GrantBillingGiftCommand.cs
index 80e9f47..210b620 100644
--- a/backend/src/PnvPanel.Application/Admin/Billing/GrantBillingGiftCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Billing/GrantBillingGiftCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Billing;
diff --git a/backend/src/PnvPanel.Application/Admin/Billing/GrantBillingGiftCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Billing/GrantBillingGiftCommandHandler.cs
index 7beb9d6..9d8ca8d 100644
--- a/backend/src/PnvPanel.Application/Admin/Billing/GrantBillingGiftCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Billing/GrantBillingGiftCommandHandler.cs
@@ -3,7 +3,7 @@ using PnvPanel.Application.Admin.Users;
using PnvPanel.Application.Auth;
using PnvPanel.Application.Billing;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Audit;
diff --git a/backend/src/PnvPanel.Application/Admin/Billing/ListPaymentRequestsQuery.cs b/backend/src/PnvPanel.Application/Admin/Billing/ListPaymentRequestsQuery.cs
index 8f18c1c..9ef4b1c 100644
--- a/backend/src/PnvPanel.Application/Admin/Billing/ListPaymentRequestsQuery.cs
+++ b/backend/src/PnvPanel.Application/Admin/Billing/ListPaymentRequestsQuery.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Billing;
diff --git a/backend/src/PnvPanel.Application/Admin/Billing/ListPaymentRequestsQueryHandler.cs b/backend/src/PnvPanel.Application/Admin/Billing/ListPaymentRequestsQueryHandler.cs
index 71d514c..336c742 100644
--- a/backend/src/PnvPanel.Application/Admin/Billing/ListPaymentRequestsQueryHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Billing/ListPaymentRequestsQueryHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Billing;
diff --git a/backend/src/PnvPanel.Application/Admin/Billing/RejectPaymentRequestCommand.cs b/backend/src/PnvPanel.Application/Admin/Billing/RejectPaymentRequestCommand.cs
index 8c961ac..9b4719a 100644
--- a/backend/src/PnvPanel.Application/Admin/Billing/RejectPaymentRequestCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Billing/RejectPaymentRequestCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Billing;
diff --git a/backend/src/PnvPanel.Application/Admin/Billing/RejectPaymentRequestCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Billing/RejectPaymentRequestCommandHandler.cs
index ae4ab58..e6efa9e 100644
--- a/backend/src/PnvPanel.Application/Admin/Billing/RejectPaymentRequestCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Billing/RejectPaymentRequestCommandHandler.cs
@@ -4,7 +4,7 @@ using PnvPanel.Application.Auth;
using PnvPanel.Application.Billing;
using PnvPanel.Application.Common.Concurrency;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Audit;
using PnvPanel.Domain.Billing;
diff --git a/backend/src/PnvPanel.Application/Admin/Billing/UpdateBillingSettingsCommand.cs b/backend/src/PnvPanel.Application/Admin/Billing/UpdateBillingSettingsCommand.cs
index 5569ebe..e90ac36 100644
--- a/backend/src/PnvPanel.Application/Admin/Billing/UpdateBillingSettingsCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Billing/UpdateBillingSettingsCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Billing;
diff --git a/backend/src/PnvPanel.Application/Admin/Billing/UpdateBillingSettingsCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Billing/UpdateBillingSettingsCommandHandler.cs
index cab83bf..2363b0b 100644
--- a/backend/src/PnvPanel.Application/Admin/Billing/UpdateBillingSettingsCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Billing/UpdateBillingSettingsCommandHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Billing;
diff --git a/backend/src/PnvPanel.Application/Admin/Configs/ListAllConfigsQuery.cs b/backend/src/PnvPanel.Application/Admin/Configs/ListAllConfigsQuery.cs
index a1d2a3f..a9603cd 100644
--- a/backend/src/PnvPanel.Application/Admin/Configs/ListAllConfigsQuery.cs
+++ b/backend/src/PnvPanel.Application/Admin/Configs/ListAllConfigsQuery.cs
@@ -1,5 +1,5 @@
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Configs;
using PnvPanel.Domain.Inbounds;
diff --git a/backend/src/PnvPanel.Application/Admin/Configs/ListAllConfigsQueryHandler.cs b/backend/src/PnvPanel.Application/Admin/Configs/ListAllConfigsQueryHandler.cs
index 1678eda..c98c3c3 100644
--- a/backend/src/PnvPanel.Application/Admin/Configs/ListAllConfigsQueryHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Configs/ListAllConfigsQueryHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Configs;
diff --git a/backend/src/PnvPanel.Application/Admin/Inbounds/DeleteInboundCommand.cs b/backend/src/PnvPanel.Application/Admin/Inbounds/DeleteInboundCommand.cs
index e885b96..5afbec7 100644
--- a/backend/src/PnvPanel.Application/Admin/Inbounds/DeleteInboundCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Inbounds/DeleteInboundCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Inbounds;
diff --git a/backend/src/PnvPanel.Application/Admin/Inbounds/DeleteInboundCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Inbounds/DeleteInboundCommandHandler.cs
index 0188d0d..556aa2c 100644
--- a/backend/src/PnvPanel.Application/Admin/Inbounds/DeleteInboundCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Inbounds/DeleteInboundCommandHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Audit;
using PnvPanel.Domain.Configs;
diff --git a/backend/src/PnvPanel.Application/Admin/Inbounds/ListInboundsQuery.cs b/backend/src/PnvPanel.Application/Admin/Inbounds/ListInboundsQuery.cs
index 1d7cc98..2172ad4 100644
--- a/backend/src/PnvPanel.Application/Admin/Inbounds/ListInboundsQuery.cs
+++ b/backend/src/PnvPanel.Application/Admin/Inbounds/ListInboundsQuery.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Inbounds;
diff --git a/backend/src/PnvPanel.Application/Admin/Inbounds/ListInboundsQueryHandler.cs b/backend/src/PnvPanel.Application/Admin/Inbounds/ListInboundsQueryHandler.cs
index 5d61839..d39267e 100644
--- a/backend/src/PnvPanel.Application/Admin/Inbounds/ListInboundsQueryHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Inbounds/ListInboundsQueryHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Inbounds;
diff --git a/backend/src/PnvPanel.Application/Admin/Inbounds/PublishInboundCommand.cs b/backend/src/PnvPanel.Application/Admin/Inbounds/PublishInboundCommand.cs
index 69ece38..8a7f9b0 100644
--- a/backend/src/PnvPanel.Application/Admin/Inbounds/PublishInboundCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Inbounds/PublishInboundCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Inbounds;
diff --git a/backend/src/PnvPanel.Application/Admin/Inbounds/PublishInboundCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Inbounds/PublishInboundCommandHandler.cs
index 5113fdc..d2d00d4 100644
--- a/backend/src/PnvPanel.Application/Admin/Inbounds/PublishInboundCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Inbounds/PublishInboundCommandHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Audit;
diff --git a/backend/src/PnvPanel.Application/Admin/Instructions/CreateInstructionTabCommand.cs b/backend/src/PnvPanel.Application/Admin/Instructions/CreateInstructionTabCommand.cs
index 246f63b..e500a40 100644
--- a/backend/src/PnvPanel.Application/Admin/Instructions/CreateInstructionTabCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Instructions/CreateInstructionTabCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.Instructions;
diff --git a/backend/src/PnvPanel.Application/Admin/Instructions/CreateInstructionTabCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Instructions/CreateInstructionTabCommandHandler.cs
index 8fbe1be..aff93b1 100644
--- a/backend/src/PnvPanel.Application/Admin/Instructions/CreateInstructionTabCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Instructions/CreateInstructionTabCommandHandler.cs
@@ -1,5 +1,5 @@
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.Instructions;
using PnvPanel.Domain.Instructions;
diff --git a/backend/src/PnvPanel.Application/Admin/Instructions/DeleteInstructionTabCommand.cs b/backend/src/PnvPanel.Application/Admin/Instructions/DeleteInstructionTabCommand.cs
index 696a525..6437698 100644
--- a/backend/src/PnvPanel.Application/Admin/Instructions/DeleteInstructionTabCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Instructions/DeleteInstructionTabCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Instructions;
diff --git a/backend/src/PnvPanel.Application/Admin/Instructions/DeleteInstructionTabCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Instructions/DeleteInstructionTabCommandHandler.cs
index 3d2d8b9..c08f8e6 100644
--- a/backend/src/PnvPanel.Application/Admin/Instructions/DeleteInstructionTabCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Instructions/DeleteInstructionTabCommandHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Instructions;
diff --git a/backend/src/PnvPanel.Application/Admin/Instructions/UpdateInstructionIntroCommand.cs b/backend/src/PnvPanel.Application/Admin/Instructions/UpdateInstructionIntroCommand.cs
index da4c15d..1fc4535 100644
--- a/backend/src/PnvPanel.Application/Admin/Instructions/UpdateInstructionIntroCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Instructions/UpdateInstructionIntroCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.Instructions;
diff --git a/backend/src/PnvPanel.Application/Admin/Instructions/UpdateInstructionIntroCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Instructions/UpdateInstructionIntroCommandHandler.cs
index 6a86e6f..d0068f8 100644
--- a/backend/src/PnvPanel.Application/Admin/Instructions/UpdateInstructionIntroCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Instructions/UpdateInstructionIntroCommandHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.Instructions;
using PnvPanel.Domain.Instructions;
diff --git a/backend/src/PnvPanel.Application/Admin/Instructions/UpdateInstructionTabCommand.cs b/backend/src/PnvPanel.Application/Admin/Instructions/UpdateInstructionTabCommand.cs
index 2f06b09..34d3c3b 100644
--- a/backend/src/PnvPanel.Application/Admin/Instructions/UpdateInstructionTabCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Instructions/UpdateInstructionTabCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.Instructions;
diff --git a/backend/src/PnvPanel.Application/Admin/Instructions/UpdateInstructionTabCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Instructions/UpdateInstructionTabCommandHandler.cs
index 13952f2..6ac4e51 100644
--- a/backend/src/PnvPanel.Application/Admin/Instructions/UpdateInstructionTabCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Instructions/UpdateInstructionTabCommandHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.Instructions;
diff --git a/backend/src/PnvPanel.Application/Admin/Maintenance/DeleteClosedTicketsCommand.cs b/backend/src/PnvPanel.Application/Admin/Maintenance/DeleteClosedTicketsCommand.cs
index dca2f8e..205e738 100644
--- a/backend/src/PnvPanel.Application/Admin/Maintenance/DeleteClosedTicketsCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Maintenance/DeleteClosedTicketsCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Maintenance;
diff --git a/backend/src/PnvPanel.Application/Admin/Maintenance/DeleteClosedTicketsCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Maintenance/DeleteClosedTicketsCommandHandler.cs
index e81b3e6..0dfee59 100644
--- a/backend/src/PnvPanel.Application/Admin/Maintenance/DeleteClosedTicketsCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Maintenance/DeleteClosedTicketsCommandHandler.cs
@@ -1,7 +1,7 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Auth;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Audit;
using PnvPanel.Domain.Support;
diff --git a/backend/src/PnvPanel.Application/Admin/Maintenance/DeleteDisabledAppsCommand.cs b/backend/src/PnvPanel.Application/Admin/Maintenance/DeleteDisabledAppsCommand.cs
index 6c80af6..da8ff30 100644
--- a/backend/src/PnvPanel.Application/Admin/Maintenance/DeleteDisabledAppsCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Maintenance/DeleteDisabledAppsCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Maintenance;
diff --git a/backend/src/PnvPanel.Application/Admin/Maintenance/DeleteDisabledAppsCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Maintenance/DeleteDisabledAppsCommandHandler.cs
index de89476..995ce4a 100644
--- a/backend/src/PnvPanel.Application/Admin/Maintenance/DeleteDisabledAppsCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Maintenance/DeleteDisabledAppsCommandHandler.cs
@@ -1,7 +1,7 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Auth;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Audit;
diff --git a/backend/src/PnvPanel.Application/Admin/Maintenance/DeleteOldAuditLogsCommand.cs b/backend/src/PnvPanel.Application/Admin/Maintenance/DeleteOldAuditLogsCommand.cs
index 32ccc42..ad223ce 100644
--- a/backend/src/PnvPanel.Application/Admin/Maintenance/DeleteOldAuditLogsCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Maintenance/DeleteOldAuditLogsCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Maintenance;
diff --git a/backend/src/PnvPanel.Application/Admin/Maintenance/DeleteOldAuditLogsCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Maintenance/DeleteOldAuditLogsCommandHandler.cs
index 32b02da..552d8b7 100644
--- a/backend/src/PnvPanel.Application/Admin/Maintenance/DeleteOldAuditLogsCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Maintenance/DeleteOldAuditLogsCommandHandler.cs
@@ -1,7 +1,7 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Auth;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Audit;
diff --git a/backend/src/PnvPanel.Application/Admin/Maintenance/FactoryResetCommand.cs b/backend/src/PnvPanel.Application/Admin/Maintenance/FactoryResetCommand.cs
index 4e8a819..438fb80 100644
--- a/backend/src/PnvPanel.Application/Admin/Maintenance/FactoryResetCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Maintenance/FactoryResetCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Maintenance;
diff --git a/backend/src/PnvPanel.Application/Admin/Maintenance/FactoryResetCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Maintenance/FactoryResetCommandHandler.cs
index a6493ce..da84db1 100644
--- a/backend/src/PnvPanel.Application/Admin/Maintenance/FactoryResetCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Maintenance/FactoryResetCommandHandler.cs
@@ -1,7 +1,7 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Auth;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Audit;
using PnvPanel.Domain.Configs;
diff --git a/backend/src/PnvPanel.Application/Admin/News/CreatePostCommand.cs b/backend/src/PnvPanel.Application/Admin/News/CreatePostCommand.cs
index 80bdd8a..e4226c1 100644
--- a/backend/src/PnvPanel.Application/Admin/News/CreatePostCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/News/CreatePostCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.News;
diff --git a/backend/src/PnvPanel.Application/Admin/News/CreatePostCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/News/CreatePostCommandHandler.cs
index a487e03..f428d0f 100644
--- a/backend/src/PnvPanel.Application/Admin/News/CreatePostCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/News/CreatePostCommandHandler.cs
@@ -1,5 +1,5 @@
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.News;
using PnvPanel.Domain.News;
diff --git a/backend/src/PnvPanel.Application/Admin/News/DeletePostCommand.cs b/backend/src/PnvPanel.Application/Admin/News/DeletePostCommand.cs
index 837fd8a..55a16fa 100644
--- a/backend/src/PnvPanel.Application/Admin/News/DeletePostCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/News/DeletePostCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.News;
diff --git a/backend/src/PnvPanel.Application/Admin/News/DeletePostCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/News/DeletePostCommandHandler.cs
index bde163e..30b432c 100644
--- a/backend/src/PnvPanel.Application/Admin/News/DeletePostCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/News/DeletePostCommandHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.News;
diff --git a/backend/src/PnvPanel.Application/Admin/News/ListAdminNewsQuery.cs b/backend/src/PnvPanel.Application/Admin/News/ListAdminNewsQuery.cs
index b06b3a7..e6f617c 100644
--- a/backend/src/PnvPanel.Application/Admin/News/ListAdminNewsQuery.cs
+++ b/backend/src/PnvPanel.Application/Admin/News/ListAdminNewsQuery.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.News;
diff --git a/backend/src/PnvPanel.Application/Admin/News/ListAdminNewsQueryHandler.cs b/backend/src/PnvPanel.Application/Admin/News/ListAdminNewsQueryHandler.cs
index 8048ab4..7a75748 100644
--- a/backend/src/PnvPanel.Application/Admin/News/ListAdminNewsQueryHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/News/ListAdminNewsQueryHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.News;
diff --git a/backend/src/PnvPanel.Application/Admin/News/UpdatePostCommand.cs b/backend/src/PnvPanel.Application/Admin/News/UpdatePostCommand.cs
index 5084d5c..e05459f 100644
--- a/backend/src/PnvPanel.Application/Admin/News/UpdatePostCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/News/UpdatePostCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.News;
diff --git a/backend/src/PnvPanel.Application/Admin/News/UpdatePostCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/News/UpdatePostCommandHandler.cs
index 0e9db5b..2dbe809 100644
--- a/backend/src/PnvPanel.Application/Admin/News/UpdatePostCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/News/UpdatePostCommandHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.News;
diff --git a/backend/src/PnvPanel.Application/Admin/Nodes/DeleteNodeCommand.cs b/backend/src/PnvPanel.Application/Admin/Nodes/DeleteNodeCommand.cs
index f11322b..5488c15 100644
--- a/backend/src/PnvPanel.Application/Admin/Nodes/DeleteNodeCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Nodes/DeleteNodeCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Nodes;
diff --git a/backend/src/PnvPanel.Application/Admin/Nodes/DeleteNodeCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Nodes/DeleteNodeCommandHandler.cs
index c6747dd..6fe9ac1 100644
--- a/backend/src/PnvPanel.Application/Admin/Nodes/DeleteNodeCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Nodes/DeleteNodeCommandHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Audit;
diff --git a/backend/src/PnvPanel.Application/Admin/Nodes/ListNodesQuery.cs b/backend/src/PnvPanel.Application/Admin/Nodes/ListNodesQuery.cs
index e5aa661..7d93bbc 100644
--- a/backend/src/PnvPanel.Application/Admin/Nodes/ListNodesQuery.cs
+++ b/backend/src/PnvPanel.Application/Admin/Nodes/ListNodesQuery.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Nodes;
diff --git a/backend/src/PnvPanel.Application/Admin/Nodes/ListNodesQueryHandler.cs b/backend/src/PnvPanel.Application/Admin/Nodes/ListNodesQueryHandler.cs
index 7b866ff..ad00585 100644
--- a/backend/src/PnvPanel.Application/Admin/Nodes/ListNodesQueryHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Nodes/ListNodesQueryHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Nodes;
diff --git a/backend/src/PnvPanel.Application/Admin/Nodes/ProbeNodeCommand.cs b/backend/src/PnvPanel.Application/Admin/Nodes/ProbeNodeCommand.cs
index 794b5db..58b6210 100644
--- a/backend/src/PnvPanel.Application/Admin/Nodes/ProbeNodeCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Nodes/ProbeNodeCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Nodes;
diff --git a/backend/src/PnvPanel.Application/Admin/Nodes/ProbeNodeCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Nodes/ProbeNodeCommandHandler.cs
index cc17598..07332de 100644
--- a/backend/src/PnvPanel.Application/Admin/Nodes/ProbeNodeCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Nodes/ProbeNodeCommandHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Nodes;
diff --git a/backend/src/PnvPanel.Application/Admin/Nodes/RegisterNodeCommand.cs b/backend/src/PnvPanel.Application/Admin/Nodes/RegisterNodeCommand.cs
index a00b532..675fcd1 100644
--- a/backend/src/PnvPanel.Application/Admin/Nodes/RegisterNodeCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Nodes/RegisterNodeCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Nodes;
diff --git a/backend/src/PnvPanel.Application/Admin/Nodes/RegisterNodeCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Nodes/RegisterNodeCommandHandler.cs
index fd163a8..d2f8050 100644
--- a/backend/src/PnvPanel.Application/Admin/Nodes/RegisterNodeCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Nodes/RegisterNodeCommandHandler.cs
@@ -1,5 +1,5 @@
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Audit;
using PnvPanel.Domain.Nodes;
diff --git a/backend/src/PnvPanel.Application/Admin/Nodes/SyncNodeCommand.cs b/backend/src/PnvPanel.Application/Admin/Nodes/SyncNodeCommand.cs
index 6e4c02a..18e7a97 100644
--- a/backend/src/PnvPanel.Application/Admin/Nodes/SyncNodeCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Nodes/SyncNodeCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Nodes;
diff --git a/backend/src/PnvPanel.Application/Admin/Nodes/SyncNodeCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Nodes/SyncNodeCommandHandler.cs
index 08bb2ff..46b1a72 100644
--- a/backend/src/PnvPanel.Application/Admin/Nodes/SyncNodeCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Nodes/SyncNodeCommandHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Inbounds;
using PnvPanel.Domain.Nodes;
diff --git a/backend/src/PnvPanel.Application/Admin/Nodes/UpdateNodeCommand.cs b/backend/src/PnvPanel.Application/Admin/Nodes/UpdateNodeCommand.cs
index 9b92594..79be9cb 100644
--- a/backend/src/PnvPanel.Application/Admin/Nodes/UpdateNodeCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Nodes/UpdateNodeCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Nodes;
diff --git a/backend/src/PnvPanel.Application/Admin/Nodes/UpdateNodeCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Nodes/UpdateNodeCommandHandler.cs
index 897f083..a23da58 100644
--- a/backend/src/PnvPanel.Application/Admin/Nodes/UpdateNodeCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Nodes/UpdateNodeCommandHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Audit;
using PnvPanel.Domain.Nodes;
diff --git a/backend/src/PnvPanel.Application/Admin/Plans/CreatePlanCommand.cs b/backend/src/PnvPanel.Application/Admin/Plans/CreatePlanCommand.cs
index 80d004d..86d2bc1 100644
--- a/backend/src/PnvPanel.Application/Admin/Plans/CreatePlanCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Plans/CreatePlanCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Plans;
diff --git a/backend/src/PnvPanel.Application/Admin/Plans/CreatePlanCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Plans/CreatePlanCommandHandler.cs
index aebec6c..8a0c357 100644
--- a/backend/src/PnvPanel.Application/Admin/Plans/CreatePlanCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Plans/CreatePlanCommandHandler.cs
@@ -1,5 +1,5 @@
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Plans;
diff --git a/backend/src/PnvPanel.Application/Admin/Plans/DeletePlanCommand.cs b/backend/src/PnvPanel.Application/Admin/Plans/DeletePlanCommand.cs
index 88d4a0f..0a642fb 100644
--- a/backend/src/PnvPanel.Application/Admin/Plans/DeletePlanCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Plans/DeletePlanCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Plans;
diff --git a/backend/src/PnvPanel.Application/Admin/Plans/DeletePlanCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Plans/DeletePlanCommandHandler.cs
index 92c4eae..acdac38 100644
--- a/backend/src/PnvPanel.Application/Admin/Plans/DeletePlanCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Plans/DeletePlanCommandHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.Plans;
diff --git a/backend/src/PnvPanel.Application/Admin/Plans/ListAdminPlansQuery.cs b/backend/src/PnvPanel.Application/Admin/Plans/ListAdminPlansQuery.cs
index 7bf5a43..1b131dc 100644
--- a/backend/src/PnvPanel.Application/Admin/Plans/ListAdminPlansQuery.cs
+++ b/backend/src/PnvPanel.Application/Admin/Plans/ListAdminPlansQuery.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Plans;
diff --git a/backend/src/PnvPanel.Application/Admin/Plans/ListAdminPlansQueryHandler.cs b/backend/src/PnvPanel.Application/Admin/Plans/ListAdminPlansQueryHandler.cs
index d6dbae6..4872e2f 100644
--- a/backend/src/PnvPanel.Application/Admin/Plans/ListAdminPlansQueryHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Plans/ListAdminPlansQueryHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Plans;
diff --git a/backend/src/PnvPanel.Application/Admin/Plans/UpdatePlanCommand.cs b/backend/src/PnvPanel.Application/Admin/Plans/UpdatePlanCommand.cs
index 168e975..bb4e31a 100644
--- a/backend/src/PnvPanel.Application/Admin/Plans/UpdatePlanCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Plans/UpdatePlanCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Plans;
diff --git a/backend/src/PnvPanel.Application/Admin/Plans/UpdatePlanCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Plans/UpdatePlanCommandHandler.cs
index c0fba26..4681764 100644
--- a/backend/src/PnvPanel.Application/Admin/Plans/UpdatePlanCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Plans/UpdatePlanCommandHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.Plans;
diff --git a/backend/src/PnvPanel.Application/Admin/Pricing/GetPricingSettingsQuery.cs b/backend/src/PnvPanel.Application/Admin/Pricing/GetPricingSettingsQuery.cs
index 27e0709..9401895 100644
--- a/backend/src/PnvPanel.Application/Admin/Pricing/GetPricingSettingsQuery.cs
+++ b/backend/src/PnvPanel.Application/Admin/Pricing/GetPricingSettingsQuery.cs
@@ -1,5 +1,5 @@
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Pricing;
diff --git a/backend/src/PnvPanel.Application/Admin/Pricing/GetPricingSettingsQueryHandler.cs b/backend/src/PnvPanel.Application/Admin/Pricing/GetPricingSettingsQueryHandler.cs
index 877c2a6..7424054 100644
--- a/backend/src/PnvPanel.Application/Admin/Pricing/GetPricingSettingsQueryHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Pricing/GetPricingSettingsQueryHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Pricing;
diff --git a/backend/src/PnvPanel.Application/Admin/Pricing/UpdatePricingSettingsCommand.cs b/backend/src/PnvPanel.Application/Admin/Pricing/UpdatePricingSettingsCommand.cs
index 3be8123..085fba2 100644
--- a/backend/src/PnvPanel.Application/Admin/Pricing/UpdatePricingSettingsCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Pricing/UpdatePricingSettingsCommand.cs
@@ -1,5 +1,5 @@
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Pricing;
diff --git a/backend/src/PnvPanel.Application/Admin/Pricing/UpdatePricingSettingsCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Pricing/UpdatePricingSettingsCommandHandler.cs
index f083a01..7433fa2 100644
--- a/backend/src/PnvPanel.Application/Admin/Pricing/UpdatePricingSettingsCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Pricing/UpdatePricingSettingsCommandHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Pricing;
diff --git a/backend/src/PnvPanel.Application/Admin/Roles/CreateRoleCommand.cs b/backend/src/PnvPanel.Application/Admin/Roles/CreateRoleCommand.cs
index d847d8f..6b4317d 100644
--- a/backend/src/PnvPanel.Application/Admin/Roles/CreateRoleCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Roles/CreateRoleCommand.cs
@@ -1,5 +1,5 @@
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Roles;
diff --git a/backend/src/PnvPanel.Application/Admin/Roles/CreateRoleCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Roles/CreateRoleCommandHandler.cs
index c22edf9..4ad146d 100644
--- a/backend/src/PnvPanel.Application/Admin/Roles/CreateRoleCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Roles/CreateRoleCommandHandler.cs
@@ -1,5 +1,5 @@
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Roles;
diff --git a/backend/src/PnvPanel.Application/Admin/Roles/DeleteRoleCommand.cs b/backend/src/PnvPanel.Application/Admin/Roles/DeleteRoleCommand.cs
index a67395f..9c2e336 100644
--- a/backend/src/PnvPanel.Application/Admin/Roles/DeleteRoleCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Roles/DeleteRoleCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Roles;
diff --git a/backend/src/PnvPanel.Application/Admin/Roles/DeleteRoleCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Roles/DeleteRoleCommandHandler.cs
index 9b999ed..23eaf05 100644
--- a/backend/src/PnvPanel.Application/Admin/Roles/DeleteRoleCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Roles/DeleteRoleCommandHandler.cs
@@ -1,5 +1,5 @@
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Roles;
diff --git a/backend/src/PnvPanel.Application/Admin/Roles/ListRolesQuery.cs b/backend/src/PnvPanel.Application/Admin/Roles/ListRolesQuery.cs
index 80f2419..3c269fd 100644
--- a/backend/src/PnvPanel.Application/Admin/Roles/ListRolesQuery.cs
+++ b/backend/src/PnvPanel.Application/Admin/Roles/ListRolesQuery.cs
@@ -1,5 +1,5 @@
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Roles;
diff --git a/backend/src/PnvPanel.Application/Admin/Roles/ListRolesQueryHandler.cs b/backend/src/PnvPanel.Application/Admin/Roles/ListRolesQueryHandler.cs
index b33d3c7..7e0c7c1 100644
--- a/backend/src/PnvPanel.Application/Admin/Roles/ListRolesQueryHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Roles/ListRolesQueryHandler.cs
@@ -1,5 +1,5 @@
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Roles;
diff --git a/backend/src/PnvPanel.Application/Admin/Roles/UpdateRoleCommand.cs b/backend/src/PnvPanel.Application/Admin/Roles/UpdateRoleCommand.cs
index 9e9dc55..b72438f 100644
--- a/backend/src/PnvPanel.Application/Admin/Roles/UpdateRoleCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Roles/UpdateRoleCommand.cs
@@ -1,5 +1,5 @@
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Roles;
diff --git a/backend/src/PnvPanel.Application/Admin/Roles/UpdateRoleCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Roles/UpdateRoleCommandHandler.cs
index 723bd2a..da42e8e 100644
--- a/backend/src/PnvPanel.Application/Admin/Roles/UpdateRoleCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Roles/UpdateRoleCommandHandler.cs
@@ -1,5 +1,5 @@
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Roles;
diff --git a/backend/src/PnvPanel.Application/Admin/Stats/GetStatsQuery.cs b/backend/src/PnvPanel.Application/Admin/Stats/GetStatsQuery.cs
index a20e4f8..6d8d267 100644
--- a/backend/src/PnvPanel.Application/Admin/Stats/GetStatsQuery.cs
+++ b/backend/src/PnvPanel.Application/Admin/Stats/GetStatsQuery.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Stats;
diff --git a/backend/src/PnvPanel.Application/Admin/Stats/GetStatsQueryHandler.cs b/backend/src/PnvPanel.Application/Admin/Stats/GetStatsQueryHandler.cs
index 758bb85..3559229 100644
--- a/backend/src/PnvPanel.Application/Admin/Stats/GetStatsQueryHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Stats/GetStatsQueryHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Activation;
using PnvPanel.Domain.Configs;
diff --git a/backend/src/PnvPanel.Application/Admin/Support/ApproveExtensionRequestCommand.cs b/backend/src/PnvPanel.Application/Admin/Support/ApproveExtensionRequestCommand.cs
index 1f9d34c..f470a1e 100644
--- a/backend/src/PnvPanel.Application/Admin/Support/ApproveExtensionRequestCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Support/ApproveExtensionRequestCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Support;
diff --git a/backend/src/PnvPanel.Application/Admin/Support/ApproveExtensionRequestCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Support/ApproveExtensionRequestCommandHandler.cs
index 5e3d051..af67769 100644
--- a/backend/src/PnvPanel.Application/Admin/Support/ApproveExtensionRequestCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Support/ApproveExtensionRequestCommandHandler.cs
@@ -4,7 +4,7 @@ using PnvPanel.Application.Auth;
using PnvPanel.Application.Billing;
using PnvPanel.Application.Common.Concurrency;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.Support;
using PnvPanel.Domain.Audit;
diff --git a/backend/src/PnvPanel.Application/Admin/Support/CloseTicketCommand.cs b/backend/src/PnvPanel.Application/Admin/Support/CloseTicketCommand.cs
index 8f46d18..22e3f3e 100644
--- a/backend/src/PnvPanel.Application/Admin/Support/CloseTicketCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Support/CloseTicketCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Support;
diff --git a/backend/src/PnvPanel.Application/Admin/Support/CloseTicketCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Support/CloseTicketCommandHandler.cs
index a48f8c5..554c6c2 100644
--- a/backend/src/PnvPanel.Application/Admin/Support/CloseTicketCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Support/CloseTicketCommandHandler.cs
@@ -1,7 +1,7 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Auth;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.Support;
using PnvPanel.Domain.Audit;
diff --git a/backend/src/PnvPanel.Application/Admin/Support/GetTicketAdminQuery.cs b/backend/src/PnvPanel.Application/Admin/Support/GetTicketAdminQuery.cs
index 17f24d4..fc14c5c 100644
--- a/backend/src/PnvPanel.Application/Admin/Support/GetTicketAdminQuery.cs
+++ b/backend/src/PnvPanel.Application/Admin/Support/GetTicketAdminQuery.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.Support;
diff --git a/backend/src/PnvPanel.Application/Admin/Support/GetTicketAdminQueryHandler.cs b/backend/src/PnvPanel.Application/Admin/Support/GetTicketAdminQueryHandler.cs
index 91db1d5..611c7d7 100644
--- a/backend/src/PnvPanel.Application/Admin/Support/GetTicketAdminQueryHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Support/GetTicketAdminQueryHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.Support;
diff --git a/backend/src/PnvPanel.Application/Admin/Support/ListAllTicketsQuery.cs b/backend/src/PnvPanel.Application/Admin/Support/ListAllTicketsQuery.cs
index f673bdf..2b25efc 100644
--- a/backend/src/PnvPanel.Application/Admin/Support/ListAllTicketsQuery.cs
+++ b/backend/src/PnvPanel.Application/Admin/Support/ListAllTicketsQuery.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.Support;
using PnvPanel.Domain.Support;
diff --git a/backend/src/PnvPanel.Application/Admin/Support/ListAllTicketsQueryHandler.cs b/backend/src/PnvPanel.Application/Admin/Support/ListAllTicketsQueryHandler.cs
index b47e29c..cf8f615 100644
--- a/backend/src/PnvPanel.Application/Admin/Support/ListAllTicketsQueryHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Support/ListAllTicketsQueryHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.Support;
diff --git a/backend/src/PnvPanel.Application/Admin/Support/RejectExtensionRequestCommand.cs b/backend/src/PnvPanel.Application/Admin/Support/RejectExtensionRequestCommand.cs
index 3a5e662..8027f26 100644
--- a/backend/src/PnvPanel.Application/Admin/Support/RejectExtensionRequestCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Support/RejectExtensionRequestCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Support;
diff --git a/backend/src/PnvPanel.Application/Admin/Support/RejectExtensionRequestCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Support/RejectExtensionRequestCommandHandler.cs
index 9e3de92..ca19e37 100644
--- a/backend/src/PnvPanel.Application/Admin/Support/RejectExtensionRequestCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Support/RejectExtensionRequestCommandHandler.cs
@@ -2,7 +2,7 @@ using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Auth;
using PnvPanel.Application.Common.Concurrency;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.Support;
using PnvPanel.Domain.Audit;
diff --git a/backend/src/PnvPanel.Application/Admin/Support/ResolveTicketCommand.cs b/backend/src/PnvPanel.Application/Admin/Support/ResolveTicketCommand.cs
index cca33dd..80d75d8 100644
--- a/backend/src/PnvPanel.Application/Admin/Support/ResolveTicketCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Support/ResolveTicketCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Support;
diff --git a/backend/src/PnvPanel.Application/Admin/Support/ResolveTicketCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Support/ResolveTicketCommandHandler.cs
index 388deb0..8d108a4 100644
--- a/backend/src/PnvPanel.Application/Admin/Support/ResolveTicketCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Support/ResolveTicketCommandHandler.cs
@@ -1,7 +1,7 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Auth;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.Support;
using PnvPanel.Domain.Audit;
diff --git a/backend/src/PnvPanel.Application/Admin/Users/AdminSetUserPlanCommand.cs b/backend/src/PnvPanel.Application/Admin/Users/AdminSetUserPlanCommand.cs
index 3c5fb6d..210eba1 100644
--- a/backend/src/PnvPanel.Application/Admin/Users/AdminSetUserPlanCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Users/AdminSetUserPlanCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Users;
diff --git a/backend/src/PnvPanel.Application/Admin/Users/AdminSetUserPlanCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Users/AdminSetUserPlanCommandHandler.cs
index 5428e52..7f0afa3 100644
--- a/backend/src/PnvPanel.Application/Admin/Users/AdminSetUserPlanCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Users/AdminSetUserPlanCommandHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.Plans;
using PnvPanel.Domain.Audit;
diff --git a/backend/src/PnvPanel.Application/Admin/Users/BlockUserCommand.cs b/backend/src/PnvPanel.Application/Admin/Users/BlockUserCommand.cs
index 7641dc6..e25df52 100644
--- a/backend/src/PnvPanel.Application/Admin/Users/BlockUserCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Users/BlockUserCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Users;
diff --git a/backend/src/PnvPanel.Application/Admin/Users/BlockUserCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Users/BlockUserCommandHandler.cs
index 9f2980a..a24b941 100644
--- a/backend/src/PnvPanel.Application/Admin/Users/BlockUserCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Users/BlockUserCommandHandler.cs
@@ -1,7 +1,7 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Audit;
using PnvPanel.Domain.Configs;
diff --git a/backend/src/PnvPanel.Application/Admin/Users/ChangeUserRoleCommand.cs b/backend/src/PnvPanel.Application/Admin/Users/ChangeUserRoleCommand.cs
index 6cbc2cd..e6bee4e 100644
--- a/backend/src/PnvPanel.Application/Admin/Users/ChangeUserRoleCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Users/ChangeUserRoleCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Users;
diff --git a/backend/src/PnvPanel.Application/Admin/Users/ChangeUserRoleCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Users/ChangeUserRoleCommandHandler.cs
index 6d7dfdd..04c14e9 100644
--- a/backend/src/PnvPanel.Application/Admin/Users/ChangeUserRoleCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Users/ChangeUserRoleCommandHandler.cs
@@ -1,5 +1,5 @@
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Audit;
diff --git a/backend/src/PnvPanel.Application/Admin/Users/DeleteUserCommand.cs b/backend/src/PnvPanel.Application/Admin/Users/DeleteUserCommand.cs
index 38195ac..91d0a0f 100644
--- a/backend/src/PnvPanel.Application/Admin/Users/DeleteUserCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Users/DeleteUserCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Users;
diff --git a/backend/src/PnvPanel.Application/Admin/Users/DeleteUserCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Users/DeleteUserCommandHandler.cs
index 87d29f6..f51ab60 100644
--- a/backend/src/PnvPanel.Application/Admin/Users/DeleteUserCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Users/DeleteUserCommandHandler.cs
@@ -1,7 +1,7 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.Configs;
using PnvPanel.Domain.Audit;
diff --git a/backend/src/PnvPanel.Application/Admin/Users/ForceRevokeConfigCommand.cs b/backend/src/PnvPanel.Application/Admin/Users/ForceRevokeConfigCommand.cs
index bcb05f5..9b4cc5f 100644
--- a/backend/src/PnvPanel.Application/Admin/Users/ForceRevokeConfigCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Users/ForceRevokeConfigCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Users;
diff --git a/backend/src/PnvPanel.Application/Admin/Users/ForceRevokeConfigCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Users/ForceRevokeConfigCommandHandler.cs
index aca63f2..477b2ed 100644
--- a/backend/src/PnvPanel.Application/Admin/Users/ForceRevokeConfigCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Users/ForceRevokeConfigCommandHandler.cs
@@ -1,7 +1,7 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.Configs;
using PnvPanel.Domain.Audit;
diff --git a/backend/src/PnvPanel.Application/Admin/Users/GetUserConfigsQuery.cs b/backend/src/PnvPanel.Application/Admin/Users/GetUserConfigsQuery.cs
index ca8ef9d..ee9a73c 100644
--- a/backend/src/PnvPanel.Application/Admin/Users/GetUserConfigsQuery.cs
+++ b/backend/src/PnvPanel.Application/Admin/Users/GetUserConfigsQuery.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.Configs;
diff --git a/backend/src/PnvPanel.Application/Admin/Users/GetUserConfigsQueryHandler.cs b/backend/src/PnvPanel.Application/Admin/Users/GetUserConfigsQueryHandler.cs
index 8650051..19763c2 100644
--- a/backend/src/PnvPanel.Application/Admin/Users/GetUserConfigsQueryHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Users/GetUserConfigsQueryHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.Configs;
using PnvPanel.Domain.Configs;
diff --git a/backend/src/PnvPanel.Application/Admin/Users/ListUsersQuery.cs b/backend/src/PnvPanel.Application/Admin/Users/ListUsersQuery.cs
index d335463..1c28f43 100644
--- a/backend/src/PnvPanel.Application/Admin/Users/ListUsersQuery.cs
+++ b/backend/src/PnvPanel.Application/Admin/Users/ListUsersQuery.cs
@@ -1,5 +1,5 @@
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Users;
diff --git a/backend/src/PnvPanel.Application/Admin/Users/ListUsersQueryHandler.cs b/backend/src/PnvPanel.Application/Admin/Users/ListUsersQueryHandler.cs
index ae77375..dc06b93 100644
--- a/backend/src/PnvPanel.Application/Admin/Users/ListUsersQueryHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Users/ListUsersQueryHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Billing;
diff --git a/backend/src/PnvPanel.Application/Admin/Users/ResetUserPasswordCommand.cs b/backend/src/PnvPanel.Application/Admin/Users/ResetUserPasswordCommand.cs
index 48a7f69..0fdb340 100644
--- a/backend/src/PnvPanel.Application/Admin/Users/ResetUserPasswordCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Users/ResetUserPasswordCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Users;
diff --git a/backend/src/PnvPanel.Application/Admin/Users/ResetUserPasswordCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Users/ResetUserPasswordCommandHandler.cs
index 5aba190..f15fc9e 100644
--- a/backend/src/PnvPanel.Application/Admin/Users/ResetUserPasswordCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Users/ResetUserPasswordCommandHandler.cs
@@ -1,5 +1,5 @@
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Audit;
diff --git a/backend/src/PnvPanel.Application/Admin/Users/UnblockUserCommand.cs b/backend/src/PnvPanel.Application/Admin/Users/UnblockUserCommand.cs
index 9905e39..ef03879 100644
--- a/backend/src/PnvPanel.Application/Admin/Users/UnblockUserCommand.cs
+++ b/backend/src/PnvPanel.Application/Admin/Users/UnblockUserCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Users;
diff --git a/backend/src/PnvPanel.Application/Admin/Users/UnblockUserCommandHandler.cs b/backend/src/PnvPanel.Application/Admin/Users/UnblockUserCommandHandler.cs
index 18b61a1..861e503 100644
--- a/backend/src/PnvPanel.Application/Admin/Users/UnblockUserCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Admin/Users/UnblockUserCommandHandler.cs
@@ -1,7 +1,7 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Audit;
using PnvPanel.Domain.Configs;
diff --git a/backend/src/PnvPanel.Application/Apps/ListAppsQuery.cs b/backend/src/PnvPanel.Application/Apps/ListAppsQuery.cs
index 6ab079c..ccf459a 100644
--- a/backend/src/PnvPanel.Application/Apps/ListAppsQuery.cs
+++ b/backend/src/PnvPanel.Application/Apps/ListAppsQuery.cs
@@ -1,4 +1,5 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
+using PnvPanel.Application.Common.Behaviors;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Apps;
diff --git a/backend/src/PnvPanel.Application/Apps/ListAppsQueryHandler.cs b/backend/src/PnvPanel.Application/Apps/ListAppsQueryHandler.cs
index 0b76a9a..294e882 100644
--- a/backend/src/PnvPanel.Application/Apps/ListAppsQueryHandler.cs
+++ b/backend/src/PnvPanel.Application/Apps/ListAppsQueryHandler.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Apps;
diff --git a/backend/src/PnvPanel.Application/Auth/ChangePassword/ChangePasswordCommand.cs b/backend/src/PnvPanel.Application/Auth/ChangePassword/ChangePasswordCommand.cs
index f243757..a795ad6 100644
--- a/backend/src/PnvPanel.Application/Auth/ChangePassword/ChangePasswordCommand.cs
+++ b/backend/src/PnvPanel.Application/Auth/ChangePassword/ChangePasswordCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Auth.ChangePassword;
diff --git a/backend/src/PnvPanel.Application/Auth/ChangePassword/ChangePasswordCommandHandler.cs b/backend/src/PnvPanel.Application/Auth/ChangePassword/ChangePasswordCommandHandler.cs
index e58df70..98b0a38 100644
--- a/backend/src/PnvPanel.Application/Auth/ChangePassword/ChangePasswordCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Auth/ChangePassword/ChangePasswordCommandHandler.cs
@@ -1,5 +1,5 @@
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Auth.ChangePassword;
diff --git a/backend/src/PnvPanel.Application/Auth/ChangeUserName/ChangeUserNameCommand.cs b/backend/src/PnvPanel.Application/Auth/ChangeUserName/ChangeUserNameCommand.cs
index 45839b3..b95ce31 100644
--- a/backend/src/PnvPanel.Application/Auth/ChangeUserName/ChangeUserNameCommand.cs
+++ b/backend/src/PnvPanel.Application/Auth/ChangeUserName/ChangeUserNameCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Auth.ChangeUserName;
diff --git a/backend/src/PnvPanel.Application/Auth/ChangeUserName/ChangeUserNameCommandHandler.cs b/backend/src/PnvPanel.Application/Auth/ChangeUserName/ChangeUserNameCommandHandler.cs
index 6ac81a4..fed8d09 100644
--- a/backend/src/PnvPanel.Application/Auth/ChangeUserName/ChangeUserNameCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Auth/ChangeUserName/ChangeUserNameCommandHandler.cs
@@ -1,5 +1,5 @@
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Auth.ChangeUserName;
diff --git a/backend/src/PnvPanel.Application/Auth/DeleteMyAccount/DeleteMyAccountCommand.cs b/backend/src/PnvPanel.Application/Auth/DeleteMyAccount/DeleteMyAccountCommand.cs
index d76567e..fad03e8 100644
--- a/backend/src/PnvPanel.Application/Auth/DeleteMyAccount/DeleteMyAccountCommand.cs
+++ b/backend/src/PnvPanel.Application/Auth/DeleteMyAccount/DeleteMyAccountCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Auth.DeleteMyAccount;
diff --git a/backend/src/PnvPanel.Application/Auth/DeleteMyAccount/DeleteMyAccountCommandHandler.cs b/backend/src/PnvPanel.Application/Auth/DeleteMyAccount/DeleteMyAccountCommandHandler.cs
index 6e875b3..fc505b5 100644
--- a/backend/src/PnvPanel.Application/Auth/DeleteMyAccount/DeleteMyAccountCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Auth/DeleteMyAccount/DeleteMyAccountCommandHandler.cs
@@ -1,7 +1,7 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.Configs;
using PnvPanel.Domain.Configs;
diff --git a/backend/src/PnvPanel.Application/Auth/Login/LoginCommand.cs b/backend/src/PnvPanel.Application/Auth/Login/LoginCommand.cs
index 09a63a3..d1eb64f 100644
--- a/backend/src/PnvPanel.Application/Auth/Login/LoginCommand.cs
+++ b/backend/src/PnvPanel.Application/Auth/Login/LoginCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Auth.Login;
diff --git a/backend/src/PnvPanel.Application/Auth/Login/LoginCommandHandler.cs b/backend/src/PnvPanel.Application/Auth/Login/LoginCommandHandler.cs
index 90bec2a..22f9bae 100644
--- a/backend/src/PnvPanel.Application/Auth/Login/LoginCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Auth/Login/LoginCommandHandler.cs
@@ -1,5 +1,5 @@
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Auth.Login;
diff --git a/backend/src/PnvPanel.Application/Auth/Logout/LogoutCommand.cs b/backend/src/PnvPanel.Application/Auth/Logout/LogoutCommand.cs
index 7a490cb..e48a9c5 100644
--- a/backend/src/PnvPanel.Application/Auth/Logout/LogoutCommand.cs
+++ b/backend/src/PnvPanel.Application/Auth/Logout/LogoutCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Auth.Logout;
diff --git a/backend/src/PnvPanel.Application/Auth/Logout/LogoutCommandHandler.cs b/backend/src/PnvPanel.Application/Auth/Logout/LogoutCommandHandler.cs
index 64bdf7a..b78e819 100644
--- a/backend/src/PnvPanel.Application/Auth/Logout/LogoutCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Auth/Logout/LogoutCommandHandler.cs
@@ -1,5 +1,5 @@
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Auth.Logout;
diff --git a/backend/src/PnvPanel.Application/Auth/Me/GetCurrentUserQuery.cs b/backend/src/PnvPanel.Application/Auth/Me/GetCurrentUserQuery.cs
index d9f9b64..3a20848 100644
--- a/backend/src/PnvPanel.Application/Auth/Me/GetCurrentUserQuery.cs
+++ b/backend/src/PnvPanel.Application/Auth/Me/GetCurrentUserQuery.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Auth.Me;
diff --git a/backend/src/PnvPanel.Application/Auth/Me/GetCurrentUserQueryHandler.cs b/backend/src/PnvPanel.Application/Auth/Me/GetCurrentUserQueryHandler.cs
index 57573a7..aed42d1 100644
--- a/backend/src/PnvPanel.Application/Auth/Me/GetCurrentUserQueryHandler.cs
+++ b/backend/src/PnvPanel.Application/Auth/Me/GetCurrentUserQueryHandler.cs
@@ -1,5 +1,5 @@
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Auth.Me;
diff --git a/backend/src/PnvPanel.Application/Auth/Refresh/RefreshCommand.cs b/backend/src/PnvPanel.Application/Auth/Refresh/RefreshCommand.cs
index c0c6ee5..80afca6 100644
--- a/backend/src/PnvPanel.Application/Auth/Refresh/RefreshCommand.cs
+++ b/backend/src/PnvPanel.Application/Auth/Refresh/RefreshCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Auth.Refresh;
diff --git a/backend/src/PnvPanel.Application/Auth/Refresh/RefreshCommandHandler.cs b/backend/src/PnvPanel.Application/Auth/Refresh/RefreshCommandHandler.cs
index 3b0a34c..961c3f7 100644
--- a/backend/src/PnvPanel.Application/Auth/Refresh/RefreshCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Auth/Refresh/RefreshCommandHandler.cs
@@ -1,5 +1,5 @@
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Auth.Refresh;
diff --git a/backend/src/PnvPanel.Application/Auth/Register/RegisterCommand.cs b/backend/src/PnvPanel.Application/Auth/Register/RegisterCommand.cs
index 8033ecf..54a7a8e 100644
--- a/backend/src/PnvPanel.Application/Auth/Register/RegisterCommand.cs
+++ b/backend/src/PnvPanel.Application/Auth/Register/RegisterCommand.cs
@@ -1,4 +1,4 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Auth.Register;
diff --git a/backend/src/PnvPanel.Application/Auth/Register/RegisterCommandHandler.cs b/backend/src/PnvPanel.Application/Auth/Register/RegisterCommandHandler.cs
index 8b64bae..38a9f33 100644
--- a/backend/src/PnvPanel.Application/Auth/Register/RegisterCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Auth/Register/RegisterCommandHandler.cs
@@ -1,5 +1,5 @@
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Auth.Register;
diff --git a/backend/src/PnvPanel.Application/Billing/CancelPaymentRequest/CancelPaymentRequestCommand.cs b/backend/src/PnvPanel.Application/Billing/CancelPaymentRequest/CancelPaymentRequestCommand.cs
index 4ab22cc..b016643 100644
--- a/backend/src/PnvPanel.Application/Billing/CancelPaymentRequest/CancelPaymentRequestCommand.cs
+++ b/backend/src/PnvPanel.Application/Billing/CancelPaymentRequest/CancelPaymentRequestCommand.cs
@@ -1,4 +1,5 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
+using PnvPanel.Application.Common.Behaviors;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Billing.CancelPaymentRequest;
diff --git a/backend/src/PnvPanel.Application/Billing/CancelPaymentRequest/CancelPaymentRequestCommandHandler.cs b/backend/src/PnvPanel.Application/Billing/CancelPaymentRequest/CancelPaymentRequestCommandHandler.cs
index 1c8562e..8f61db5 100644
--- a/backend/src/PnvPanel.Application/Billing/CancelPaymentRequest/CancelPaymentRequestCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Billing/CancelPaymentRequest/CancelPaymentRequestCommandHandler.cs
@@ -1,7 +1,7 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Auth;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Billing;
diff --git a/backend/src/PnvPanel.Application/Billing/CreatePaymentRequest/CreatePaymentRequestCommand.cs b/backend/src/PnvPanel.Application/Billing/CreatePaymentRequest/CreatePaymentRequestCommand.cs
index 6b17499..156374f 100644
--- a/backend/src/PnvPanel.Application/Billing/CreatePaymentRequest/CreatePaymentRequestCommand.cs
+++ b/backend/src/PnvPanel.Application/Billing/CreatePaymentRequest/CreatePaymentRequestCommand.cs
@@ -1,4 +1,5 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
+using PnvPanel.Application.Common.Behaviors;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Billing;
diff --git a/backend/src/PnvPanel.Application/Billing/CreatePaymentRequest/CreatePaymentRequestCommandHandler.cs b/backend/src/PnvPanel.Application/Billing/CreatePaymentRequest/CreatePaymentRequestCommandHandler.cs
index 692c551..2bfd88f 100644
--- a/backend/src/PnvPanel.Application/Billing/CreatePaymentRequest/CreatePaymentRequestCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Billing/CreatePaymentRequest/CreatePaymentRequestCommandHandler.cs
@@ -2,7 +2,7 @@ using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Auth;
using PnvPanel.Application.Common.Concurrency;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Billing;
using PnvPanel.Domain.Pricing;
diff --git a/backend/src/PnvPanel.Application/Billing/GetMyBillingStatus/GetMyBillingStatusQuery.cs b/backend/src/PnvPanel.Application/Billing/GetMyBillingStatus/GetMyBillingStatusQuery.cs
index 5966417..15d4ee7 100644
--- a/backend/src/PnvPanel.Application/Billing/GetMyBillingStatus/GetMyBillingStatusQuery.cs
+++ b/backend/src/PnvPanel.Application/Billing/GetMyBillingStatus/GetMyBillingStatusQuery.cs
@@ -1,4 +1,5 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
+using PnvPanel.Application.Common.Behaviors;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Billing.GetMyBillingStatus;
diff --git a/backend/src/PnvPanel.Application/Billing/GetMyBillingStatus/GetMyBillingStatusQueryHandler.cs b/backend/src/PnvPanel.Application/Billing/GetMyBillingStatus/GetMyBillingStatusQueryHandler.cs
index 13f25ca..e6c17bf 100644
--- a/backend/src/PnvPanel.Application/Billing/GetMyBillingStatus/GetMyBillingStatusQueryHandler.cs
+++ b/backend/src/PnvPanel.Application/Billing/GetMyBillingStatus/GetMyBillingStatusQueryHandler.cs
@@ -1,7 +1,7 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Auth;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Billing;
diff --git a/backend/src/PnvPanel.Application/Billing/MarkPaymentSent/MarkPaymentSentCommand.cs b/backend/src/PnvPanel.Application/Billing/MarkPaymentSent/MarkPaymentSentCommand.cs
index 58afc2a..c3d9b32 100644
--- a/backend/src/PnvPanel.Application/Billing/MarkPaymentSent/MarkPaymentSentCommand.cs
+++ b/backend/src/PnvPanel.Application/Billing/MarkPaymentSent/MarkPaymentSentCommand.cs
@@ -1,4 +1,5 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
+using PnvPanel.Application.Common.Behaviors;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Billing.MarkPaymentSent;
diff --git a/backend/src/PnvPanel.Application/Billing/MarkPaymentSent/MarkPaymentSentCommandHandler.cs b/backend/src/PnvPanel.Application/Billing/MarkPaymentSent/MarkPaymentSentCommandHandler.cs
index d966865..5af026b 100644
--- a/backend/src/PnvPanel.Application/Billing/MarkPaymentSent/MarkPaymentSentCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Billing/MarkPaymentSent/MarkPaymentSentCommandHandler.cs
@@ -2,7 +2,7 @@ using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using PnvPanel.Application.Auth;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Domain.Billing;
diff --git a/backend/src/PnvPanel.Application/Billing/SendRequisitesToTelegram/SendRequisitesToTelegramCommand.cs b/backend/src/PnvPanel.Application/Billing/SendRequisitesToTelegram/SendRequisitesToTelegramCommand.cs
index a3dc5b3..583571e 100644
--- a/backend/src/PnvPanel.Application/Billing/SendRequisitesToTelegram/SendRequisitesToTelegramCommand.cs
+++ b/backend/src/PnvPanel.Application/Billing/SendRequisitesToTelegram/SendRequisitesToTelegramCommand.cs
@@ -1,4 +1,5 @@
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
+using PnvPanel.Application.Common.Behaviors;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Billing.SendRequisitesToTelegram;
diff --git a/backend/src/PnvPanel.Application/Billing/SendRequisitesToTelegram/SendRequisitesToTelegramCommandHandler.cs b/backend/src/PnvPanel.Application/Billing/SendRequisitesToTelegram/SendRequisitesToTelegramCommandHandler.cs
index c44b574..0f0ffc8 100644
--- a/backend/src/PnvPanel.Application/Billing/SendRequisitesToTelegram/SendRequisitesToTelegramCommandHandler.cs
+++ b/backend/src/PnvPanel.Application/Billing/SendRequisitesToTelegram/SendRequisitesToTelegramCommandHandler.cs
@@ -1,7 +1,7 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Auth;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
using PnvPanel.Application.Telegram;
using PnvPanel.Domain.Billing;
diff --git a/backend/src/PnvPanel.Application/Common/Messaging/IRequiresActivation.cs b/backend/src/PnvPanel.Application/Common/Behaviors/IRequiresActivation.cs
similarity index 82%
rename from backend/src/PnvPanel.Application/Common/Messaging/IRequiresActivation.cs
rename to backend/src/PnvPanel.Application/Common/Behaviors/IRequiresActivation.cs
index fe66012..c641d3a 100644
--- a/backend/src/PnvPanel.Application/Common/Messaging/IRequiresActivation.cs
+++ b/backend/src/PnvPanel.Application/Common/Behaviors/IRequiresActivation.cs
@@ -1,4 +1,4 @@
-namespace PnvPanel.Application.Common.Messaging;
+namespace PnvPanel.Application.Common.Behaviors;
/// Маркер: запрос доступен только активированным пользователям — проверяется RequireActivationBehavior.
public interface IRequiresActivation;
diff --git a/backend/src/PnvPanel.Application/Common/Behaviors/LoggingBehavior.cs b/backend/src/PnvPanel.Application/Common/Behaviors/LoggingBehavior.cs
deleted file mode 100644
index 5858deb..0000000
--- a/backend/src/PnvPanel.Application/Common/Behaviors/LoggingBehavior.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using Microsoft.Extensions.Logging;
-using PnvPanel.Application.Common.Messaging;
-
-namespace PnvPanel.Application.Common.Behaviors;
-
-public sealed class LoggingBehavior(
- ILogger> logger
-) : IPipelineBehavior
- where TRequest : notnull
-{
- public async Task Handle(
- TRequest request,
- RequestHandlerDelegate next,
- CancellationToken cancellationToken
- )
- {
- var requestName = typeof(TRequest).Name;
- logger.LogInformation("Handling {RequestName}", requestName);
-
- var response = await next();
-
- logger.LogInformation("Handled {RequestName}", requestName);
- return response;
- }
-}
diff --git a/backend/src/PnvPanel.Application/Common/Behaviors/RequireActivationBehavior.cs b/backend/src/PnvPanel.Application/Common/Behaviors/RequireActivationBehavior.cs
index d9c5c9b..6c49a85 100644
--- a/backend/src/PnvPanel.Application/Common/Behaviors/RequireActivationBehavior.cs
+++ b/backend/src/PnvPanel.Application/Common/Behaviors/RequireActivationBehavior.cs
@@ -1,6 +1,6 @@
using PnvPanel.Application.Auth;
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Common.Behaviors;
diff --git a/backend/src/PnvPanel.Application/Common/Behaviors/UnitOfWorkBehavior.cs b/backend/src/PnvPanel.Application/Common/Behaviors/UnitOfWorkBehavior.cs
index 8988476..2afb435 100644
--- a/backend/src/PnvPanel.Application/Common/Behaviors/UnitOfWorkBehavior.cs
+++ b/backend/src/PnvPanel.Application/Common/Behaviors/UnitOfWorkBehavior.cs
@@ -1,5 +1,5 @@
using PnvPanel.Application.Common.Interfaces;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Common.Behaviors;
diff --git a/backend/src/PnvPanel.Application/Common/Behaviors/ValidationBehavior.cs b/backend/src/PnvPanel.Application/Common/Behaviors/ValidationBehavior.cs
index 4dd6d04..774f455 100644
--- a/backend/src/PnvPanel.Application/Common/Behaviors/ValidationBehavior.cs
+++ b/backend/src/PnvPanel.Application/Common/Behaviors/ValidationBehavior.cs
@@ -1,5 +1,5 @@
using FluentValidation;
-using PnvPanel.Application.Common.Messaging;
+using LiteCqrs;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Common.Behaviors;
diff --git a/backend/src/PnvPanel.Application/Common/Interfaces/IIdentityService.cs b/backend/src/PnvPanel.Application/Common/Interfaces/IIdentityService.cs
index 845401d..60437ff 100644
--- a/backend/src/PnvPanel.Application/Common/Interfaces/IIdentityService.cs
+++ b/backend/src/PnvPanel.Application/Common/Interfaces/IIdentityService.cs
@@ -37,7 +37,7 @@ public sealed record UserSummaryDto(
bool IsBlocked,
DateTimeOffset? ActivatedAt,
bool BillingEnabled,
- DateTimeOffset? BillingPaidUntil,
+ DateTimeOffset? BillingPaidUntil,
/// Есть Subscription-заявка на оплату в AwaitingConfirmation — конфиги не гасятся, пока
/// админ не решит (см. BillingService). Заполняется в ListUsersQueryHandler (не здесь — Identity
/// не должен знать про PaymentRequests), false по умолчанию для мест, не подгружающих это поле.
diff --git a/backend/src/PnvPanel.Application/Common/Messaging/ICommand.cs b/backend/src/PnvPanel.Application/Common/Messaging/ICommand.cs
deleted file mode 100644
index ae73398..0000000
--- a/backend/src/PnvPanel.Application/Common/Messaging/ICommand.cs
+++ /dev/null
@@ -1,4 +0,0 @@
-namespace PnvPanel.Application.Common.Messaging;
-
-/// Маркер команды CQRS. Команды меняют состояние и идут в транзакции (см. UnitOfWorkBehavior).
-public interface ICommand;
diff --git a/backend/src/PnvPanel.Application/Common/Messaging/ICommandHandler.cs b/backend/src/PnvPanel.Application/Common/Messaging/ICommandHandler.cs
deleted file mode 100644
index 8e85271..0000000
--- a/backend/src/PnvPanel.Application/Common/Messaging/ICommandHandler.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace PnvPanel.Application.Common.Messaging;
-
-public interface ICommandHandler
- where TCommand : ICommand
-{
- Task Handle(TCommand command, CancellationToken cancellationToken);
-}
diff --git a/backend/src/PnvPanel.Application/Common/Messaging/IPipelineBehavior.cs b/backend/src/PnvPanel.Application/Common/Messaging/IPipelineBehavior.cs
deleted file mode 100644
index 1445dc2..0000000
--- a/backend/src/PnvPanel.Application/Common/Messaging/IPipelineBehavior.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-namespace PnvPanel.Application.Common.Messaging;
-
-public delegate Task RequestHandlerDelegate();
-
-public interface IPipelineBehavior
-{
- Task Handle(
- TRequest request,
- RequestHandlerDelegate next,
- CancellationToken cancellationToken
- );
-}
diff --git a/backend/src/PnvPanel.Application/Common/Messaging/IQuery.cs b/backend/src/PnvPanel.Application/Common/Messaging/IQuery.cs
deleted file mode 100644
index b273f98..0000000
--- a/backend/src/PnvPanel.Application/Common/Messaging/IQuery.cs
+++ /dev/null
@@ -1,4 +0,0 @@
-namespace PnvPanel.Application.Common.Messaging;
-
-/// Маркер запроса CQRS. Запросы только читают, без побочных эффектов.
-public interface IQuery;
diff --git a/backend/src/PnvPanel.Application/Common/Messaging/IQueryHandler.cs b/backend/src/PnvPanel.Application/Common/Messaging/IQueryHandler.cs
deleted file mode 100644
index 24ba3ca..0000000
--- a/backend/src/PnvPanel.Application/Common/Messaging/IQueryHandler.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace PnvPanel.Application.Common.Messaging;
-
-public interface IQueryHandler
- where TQuery : IQuery
-{
- Task Handle(TQuery query, CancellationToken cancellationToken);
-}
diff --git a/backend/src/PnvPanel.Application/Common/Messaging/ISender.cs b/backend/src/PnvPanel.Application/Common/Messaging/ISender.cs
deleted file mode 100644
index 56782d6..0000000
--- a/backend/src/PnvPanel.Application/Common/Messaging/ISender.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-namespace PnvPanel.Application.Common.Messaging;
-
-/// Собственный тонкий CQRS-диспетчер (без MediatR).
-public interface ISender
-{
- Task Send(
- ICommand command,
- CancellationToken cancellationToken = default
- );
- Task Send(
- IQuery query,
- CancellationToken cancellationToken = default
- );
-}
diff --git a/backend/src/PnvPanel.Application/Common/Messaging/Sender.cs b/backend/src/PnvPanel.Application/Common/Messaging/Sender.cs
deleted file mode 100644
index 252214d..0000000
--- a/backend/src/PnvPanel.Application/Common/Messaging/Sender.cs
+++ /dev/null
@@ -1,44 +0,0 @@
-using Microsoft.Extensions.DependencyInjection;
-
-namespace PnvPanel.Application.Common.Messaging;
-
-internal sealed class Sender(IServiceProvider serviceProvider) : ISender
-{
- public Task Send(
- ICommand command,
- CancellationToken cancellationToken = default
- ) => Dispatch(command, typeof(ICommandHandler<,>), cancellationToken);
-
- public Task Send(
- IQuery query,
- CancellationToken cancellationToken = default
- ) => Dispatch(query, typeof(IQueryHandler<,>), cancellationToken);
-
- private Task Dispatch(
- object request,
- Type handlerOpenType,
- CancellationToken cancellationToken
- )
- {
- var requestType = request.GetType();
- var handlerType = handlerOpenType.MakeGenericType(requestType, typeof(TResponse));
- var behaviorType = typeof(IPipelineBehavior<,>).MakeGenericType(
- requestType,
- typeof(TResponse)
- );
-
- dynamic handler = serviceProvider.GetRequiredService(handlerType);
- var behaviors = ((IEnumerable