Add instructions management functionality and update related components
CI / Backend (build + test) (push) Successful in 1m17s
CI / Frontend (lint + typecheck + build) (push) Successful in 32s

- Introduced new endpoints for managing instruction intros and tabs, allowing admins to create, update, and delete instructional content.
- Enhanced the FactoryResetCommandHandler to include the seeding of instruction data during a factory reset.
- Updated the database schema to include InstructionIntro and InstructionTab entities, with corresponding migrations.
- Improved frontend routing and components to support the new instructions section, including a dedicated page for displaying instructions and tabs.
- Enhanced API documentation to reflect the new instruction management features and their expected request/response formats.
- Added localization support for the new instructions functionality in both Russian and English.
This commit is contained in:
Leonid Pershin
2026-07-14 22:20:10 +03:00
parent 8c53fcded2
commit bef3880593
52 changed files with 2303 additions and 24 deletions
@@ -0,0 +1,26 @@
using Microsoft.EntityFrameworkCore;
using PnvPanel.Application.Common.Interfaces;
using PnvPanel.Application.Common.Messaging;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Application.Admin.Instructions;
public sealed class DeleteInstructionTabCommandHandler(IAppDbContext dbContext)
: ICommandHandler<DeleteInstructionTabCommand, Result>
{
public async Task<Result> Handle(
DeleteInstructionTabCommand command,
CancellationToken cancellationToken
)
{
var tab = await dbContext.InstructionTabs.FirstOrDefaultAsync(
t => t.Id == command.TabId,
cancellationToken
);
if (tab is null)
return Result.Failure(InstructionErrors.TabNotFound);
dbContext.InstructionTabs.Remove(tab);
return Result.Success();
}
}