Add news feature with CRUD operations and real-time notifications
- Implemented news management functionality, allowing admins to create, read, update, and delete news posts. - Introduced a new SignalR event for broadcasting news updates to all connected clients. - Updated API documentation to include new endpoints for news management. - Enhanced frontend with a dedicated news page and admin interface for managing news posts. - Added necessary localization for news-related terms in both Russian and English.
This commit is contained in:
@@ -21,6 +21,7 @@ AppUser (Identity) [+ IsActivated, IsBlocked, TelegramUserId, SubscriptionToken
|
||||
VpnConfig ─*─ TrafficSample (история трафика; пишется TrafficSyncService)
|
||||
AuditLog (append-only журнал действий; ссылается на ActorId/TargetId)
|
||||
ClientApp (каталог приложений-клиентов; группируется по OperatingSystem)
|
||||
NewsPost (лента новостей; публикуется админом, видна всем аутентифицированным пользователям)
|
||||
```
|
||||
|
||||
## Сущности
|
||||
@@ -143,6 +144,21 @@ ClientApp (каталог приложений-клиен
|
||||
Управляется админом (CRUD). Пользователю отдаётся только `IsEnabled`, сгруппировано по `OperatingSystem`.
|
||||
Стартовый набор сидируется из [`seed/client-apps.json`](../seed/client-apps.json), если таблица пуста.
|
||||
|
||||
### NewsPost — новости для пользователей
|
||||
Публикуются админом немедленно, видны всем залогиненным пользователям в хронологической ленте.
|
||||
|
||||
| Поле | Тип | Заметки |
|
||||
| ----------- | ----------------- | ------------------------------------------------------- |
|
||||
| `Id` | `Guid` | PK |
|
||||
| `Title` | `string` | Заголовок |
|
||||
| `Body` | `string` | Markdown-текст |
|
||||
| `CreatedAt` | `DateTimeOffset` | Момент публикации (= момент создания, нет черновиков) |
|
||||
| `UpdatedAt` | `DateTimeOffset?` | Момент последней правки (опц.) |
|
||||
|
||||
Нет статуса черновик/запланировано — публикация мгновенная. Нет видимости по ролям — доступно
|
||||
всем аутентифицированным пользователям. Realtime-оповещение о новом посте — `newsPublished`
|
||||
(SignalR, широковещательно всем подключенным клиентам), см. [architecture.md](architecture.md#realtime-signalr).
|
||||
|
||||
### AuditLog — журнал действий
|
||||
Аудит значимых действий (прежде всего админских) для расследований и прозрачности.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user