ci / build-test (push) Canceled after 0s
SaaS-мониторинг Telegram: ядро (модули Cards/Kanban/Pipeline/Tenants/Settings/ Discovery, Api, Infrastructure), сервисы telegram/ai/ml/storage, фронт Vue, контракты и grpc-hosting, деплой-конфиги (dev/prod/observability/CI-раннер), Gitea Actions CI, документация (ТЗ, техдок, api-map, код-стайл, планы, бэклог). Текущее состояние: все этапы роадмапа 0–12 закрыты, сборка 5 sln 0/0, тесты 1340/130/52/38/9 зелёные.
43 lines
2.1 KiB
C#
43 lines
2.1 KiB
C#
namespace Deal.Modules.Tenants.Application.Models;
|
||
|
||
/// <summary>
|
||
/// Результат операторского создания тенанта.
|
||
/// </summary>
|
||
/// <param name="Ok">true — тенант создан (и, при email, пользователь-владелец).</param>
|
||
/// <param name="Error">Код ошибки при Ok=false (см. константы); null при успехе.</param>
|
||
/// <param name="Tenant">Созданный тенант (Status active); null при Ok=false.</param>
|
||
/// <param name="OwnerUserId">Идентификатор созданного пользователя-владельца (email задан); null — не создавался.</param>
|
||
/// <param name="OwnerLogin">Логин владельца (нормализованный email); null — не создавался.</param>
|
||
/// <param name="InitialPassword">Одноразовый пароль владельца (показывается один раз); null — email не задан.</param>
|
||
public sealed record TenantCreateResultDto(
|
||
bool Ok,
|
||
string? Error,
|
||
TenantRecordDto? Tenant,
|
||
Guid? OwnerUserId = null,
|
||
string? OwnerLogin = null,
|
||
string? InitialPassword = null)
|
||
{
|
||
/// <summary>
|
||
/// Код ошибки: имя тенанта пустое/пробельное
|
||
/// </summary>
|
||
public const string ErrorNameRequired = "name_required";
|
||
|
||
/// <summary>
|
||
/// Код ошибки: email имеет некорректный формат
|
||
/// </summary>
|
||
public const string ErrorInvalidEmail = "invalid_email";
|
||
|
||
/// <summary>
|
||
/// Код ошибки: пользователь с таким email уже зарегистрирован.
|
||
/// </summary>
|
||
public const string ErrorEmailTaken = "email_taken";
|
||
|
||
/// <summary>
|
||
/// Неуспешный результат без полезной нагрузки.
|
||
/// </summary>
|
||
/// <param name="error">Код ошибки (см. константы).</param>
|
||
/// <returns>TenantCreateResultDto с Ok=false.</returns>
|
||
public static TenantCreateResultDto Failed(string error) =>
|
||
new(Ok: false, Error: error, Tenant: null);
|
||
}
|