using Abp.Domain.Entities; using Abp.Domain.Entities.Auditing; using Abp.Runtime.Security; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using VberZero.BaseSystem.Users; namespace VberZero.BaseSystem.MultiTenancy; [Table("Sys_Tenants")] [Abp.MultiTenancy.MultiTenancySide(Abp.MultiTenancy.MultiTenancySides.Host)] public class Tenant : FullAuditedEntity, IFullAudited, IPassivable { public const int MaxTenancyNameLength = 64; public const int MaxConnectionStringLength = 1024; public const string DefaultTenantName = "Vber"; public const string TenancyNameRegex = "^[a-zA-Z][a-zA-Z0-9_-]{1,}$"; public const int MaxNameLength = 128; /// /// 租户名称。 此属性是此租户的唯一名称。 /// 它可以用作Web应用程序中的子域名 /// [Required] [StringLength(MaxTenancyNameLength)] public virtual string TenancyName { get; set; } /// /// 显示名称 /// [Required] [StringLength(MaxNameLength)] public virtual string Name { get; set; } /// /// 租户数据库的 ENCRYPTED 连接字符串。 /// 如果此租户存储在主机数据库中,则可以为 null。 /// 使用 来加密/解密这个。 /// [StringLength(MaxConnectionStringLength)] public virtual string ConnectionString { get; set; } /// /// 这个租户活跃吗? /// 如果租户未处于活动状态,则此租户的任何用户都无法使用该应用程序。 /// public virtual bool IsActive { get; set; } public virtual User CreatorUser { get; set; } public virtual User LastModifierUser { get; set; } public virtual User DeleterUser { get; set; } public Tenant() { IsActive = true; } public Tenant(string tenancyName, string name) : this() { TenancyName = tenancyName; Name = name; } }