- Introduced a new support ticket system allowing users to submit bug reports and role requests. - Implemented endpoints for creating, updating, and managing support tickets, including file attachments. - Enhanced Telegram bot integration to handle role requests directly within the bot, enabling admins to approve or reject requests without accessing the website. - Updated database schema to include support ticket entities and their relationships. - Improved API documentation to reflect new support ticket endpoints and their usage. - Added necessary localization for support ticket features in both Russian and English.
37 lines
2.2 KiB
C#
37 lines
2.2 KiB
C#
using PnvPanel.Application.Common.Models;
|
|
|
|
namespace PnvPanel.Application.Support;
|
|
|
|
public static class SupportErrors
|
|
{
|
|
public static readonly Error NotFound = Error.NotFound("Support.NotFound", "Тикет не найден.");
|
|
public static readonly Error AttachmentNotFound = Error.NotFound("Support.AttachmentNotFound", "Вложение не найдено.");
|
|
public static readonly Error RoleNotFound = Error.NotFound("Support.RoleNotFound", "Роль не найдена.");
|
|
|
|
public static readonly Error CannotRequestAdminRole =
|
|
Error.Forbidden("Support.CannotRequestAdminRole", "Роль администратора нельзя запросить через заявку.");
|
|
|
|
public static readonly Error TicketClosed =
|
|
Error.Conflict("Support.TicketClosed", "Тикет закрыт — комментарии больше не принимаются.");
|
|
|
|
public static readonly Error NotOpen = Error.Conflict("Support.NotOpen", "Тикет уже обработан.");
|
|
public static readonly Error AlreadyClosed = Error.Conflict("Support.AlreadyClosed", "Тикет уже закрыт.");
|
|
|
|
public static readonly Error NotResolved =
|
|
Error.Conflict("Support.NotResolved", "Переоткрыть можно только решённый тикет.");
|
|
|
|
public static readonly Error RoleRequestAlreadyPending =
|
|
Error.Conflict("Support.RoleRequestAlreadyPending", "У вас уже есть необработанная заявка на роль.");
|
|
|
|
public static readonly Error NotRoleRequest = Error.Validation("Support.NotRoleRequest", "Это не заявка на роль.");
|
|
|
|
public static readonly Error TooManyAttachments =
|
|
Error.Validation("Support.TooManyAttachments", $"Слишком много вложений (максимум {TicketAttachmentValidation.MaxAttachments}).");
|
|
|
|
public static readonly Error AttachmentTooLarge =
|
|
Error.Validation("Support.AttachmentTooLarge", "Файл превышает лимит 5 МБ.");
|
|
|
|
public static readonly Error UnsupportedAttachmentType =
|
|
Error.Validation("Support.UnsupportedAttachmentType", "Поддерживаются только изображения (JPEG/PNG/WEBP/GIF).");
|
|
}
|