Some checks are pending
CI / POS (WPF, Windows) (push) Waiting to run
CI / Backend (.NET 8) (push) Successful in 48s
CI / Web (React + Vite) (push) Successful in 39s
Docker API / Build + push API (push) Successful in 47s
Docker Web / Build + push Web (push) Successful in 32s
Docker API / Deploy API on stage (push) Successful in 17s
Docker Web / Deploy Web on stage (push) Successful in 12s
Раньше «удалить орг навсегда» было захардкожено на 30 дней архива. Теперь — глобальная системная настройка SuperAdmin'а. Domain/DB: - SystemSettings : Entity (single-row table system_settings). Поле ArchiveRetentionDays (int, default 30). Структура расширяется именованными полями по мере необходимости — без key-value generic'а. - Migration Phase4e_SystemSettings создаёт таблицу с default 30. - DevDataSeeder: при первом старте создаёт single-row дефолт. API: - GET /api/super-admin/settings — текущие настройки. - PUT /api/super-admin/settings — обновить с валидацией [0..3650]. Audit-log запись ActionType=EditSystemSettings с before/after. - SuperAdminOrganizationsController.Delete: хардкод 30 заменён чтением SystemSettings.ArchiveRetentionDays. При retention=0 — удаление доступно сразу после архивации. UI: - /super-admin/settings — страница «Системные настройки». Select из 6 опций (0/1/3/7/14/30), warning-баннер при выборе «Немедленно». Кнопка «Сохранить» disabled пока нет изменений. - В SuperAdminLayout убрана пометка «скоро» с пункта «Системные настройки» — раздел активен. - SuperAdminOrganizationsPage: кнопка «Удалить навсегда» теперь читает retentionDays из API; tooltip показывает оставшиеся дни «Доступно через X дн. (retention N)»; при retention=0 — всегда active для архивных орг. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
34 lines
1.6 KiB
C#
34 lines
1.6 KiB
C#
using Microsoft.EntityFrameworkCore.Migrations;
|
||
|
||
#nullable disable
|
||
|
||
namespace foodmarket.Infrastructure.Persistence.Migrations
|
||
{
|
||
/// <summary>Глобальные настройки платформы (single-row): ArchiveRetentionDays
|
||
/// (по умолчанию 30) — сколько дней архивная орга должна пробыть в архиве
|
||
/// прежде чем её можно удалить навсегда. Юзер настраивает через UI
|
||
/// /super-admin/settings; раньше был хардкод 30 в SuperAdminOrganizationsController.</summary>
|
||
public partial class Phase4e_SystemSettings : Migration
|
||
{
|
||
protected override void Up(MigrationBuilder b)
|
||
{
|
||
b.CreateTable(
|
||
name: "system_settings",
|
||
schema: "public",
|
||
columns: table => new
|
||
{
|
||
Id = table.Column<System.Guid>(type: "uuid", nullable: false),
|
||
ArchiveRetentionDays = table.Column<int>(type: "integer", nullable: false, defaultValue: 30),
|
||
CreatedAt = table.Column<System.DateTime>(type: "timestamp with time zone", nullable: false),
|
||
UpdatedAt = table.Column<System.DateTime>(type: "timestamp with time zone", nullable: true),
|
||
},
|
||
constraints: table => table.PrimaryKey("PK_system_settings", x => x.Id));
|
||
}
|
||
|
||
protected override void Down(MigrationBuilder b)
|
||
{
|
||
b.DropTable(name: "system_settings", schema: "public");
|
||
}
|
||
}
|
||
}
|