Files
Deal/src/core/Deal.Api/Configuration/OperatorCookieOptions.cs
T
Rustam Khalimov e8b9fab860 Убрать неиспользуемые using по код-стайлу
Прогон dotnet format (IDE0005) по 4 решениям: удалены лишние using,
оставшиеся после миграции namespace (676 файлов).
2026-09-11 13:30:57 +03:00

36 lines
2.0 KiB
C#

using Deal.Modules.Tenants.Application.Services;
namespace Deal.Api.Configuration;
/// <summary>
/// Настройки httpOnly-куки сессии оператора. Привязываются из секции "OperatorCookies" конфигурации (IOptions).
/// </summary>
/// <remarks>
/// Источник значений — конфигурация: секция <c>OperatorCookies</c> в appsettings.json и переменные
/// окружения <c>OperatorCookies__*</c> (имя, срок, Secure). Имя по умолчанию — <c>deal_operator_session</c>:
/// отдельная от тенантной <c>deal_session</c> кука (Ruling 1 этапа 7) — операторская сессия не может быть
/// подменена тенантной и наоборот (сессии разрешаются разными middleware).
/// <para>
/// Срок жизни по умолчанию — единый источник числа «12 часов»: константа модуля
/// <see cref="OperatorAuthService.SessionLifetimeHours"/>, на которую ссылается код-дефолт свойства
/// <see cref="Hours"/>. Значение из конфигурации (<c>OperatorCookies__Hours</c>) при необходимости перекрывает его.
/// </para>
/// </remarks>
public sealed class OperatorCookieOptions
{
/// <summary>
/// Имя куки (Ruling 1: <c>deal_operator_session</c>).
/// </summary>
public string Name { get; set; } = "deal_operator_session";
/// <summary>
/// Срок жизни куки в часах; совпадает со сроком жизни сессии оператора (Ruling 1: 12).
/// </summary>
public int Hours { get; set; } = OperatorAuthService.SessionLifetimeHours;
/// <summary>
/// Флаг Secure куки (dev=false; включается при HTTPS-проксировании, Ruling 1).
/// </summary>
public bool Secure { get; set; }
}