namespace Deal.Modules.Tenants.Application.Models; /// /// Результат операторского создания тенанта. /// /// true — тенант создан (и, при email, пользователь-владелец). /// Код ошибки при Ok=false (см. константы); null при успехе. /// Созданный тенант (Status active); null при Ok=false. /// Идентификатор созданного пользователя-владельца (email задан); null — не создавался. /// Логин владельца (нормализованный email); null — не создавался. /// Одноразовый пароль владельца (показывается один раз); null — email не задан. public sealed record TenantCreateResultDto( bool Ok, string? Error, TenantRecordDto? Tenant, Guid? OwnerUserId = null, string? OwnerLogin = null, string? InitialPassword = null) { /// /// Код ошибки: имя тенанта пустое/пробельное /// public const string ErrorNameRequired = "name_required"; /// /// Код ошибки: email имеет некорректный формат /// public const string ErrorInvalidEmail = "invalid_email"; /// /// Код ошибки: пользователь с таким email уже зарегистрирован. /// public const string ErrorEmailTaken = "email_taken"; /// /// Неуспешный результат без полезной нагрузки. /// /// Код ошибки (см. константы). /// TenantCreateResultDto с Ok=false. public static TenantCreateResultDto Failed(string error) => new(Ok: false, Error: error, Tenant: null); }