Tenant.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. using Abp.Domain.Entities;
  2. using Abp.Domain.Entities.Auditing;
  3. using Abp.Runtime.Security;
  4. using System.ComponentModel.DataAnnotations;
  5. using System.ComponentModel.DataAnnotations.Schema;
  6. using VberZero.BaseSystem.Users;
  7. namespace VberZero.BaseSystem.MultiTenancy;
  8. [Table("Sys_Tenants")]
  9. [Abp.MultiTenancy.MultiTenancySide(Abp.MultiTenancy.MultiTenancySides.Host)]
  10. public class Tenant : FullAuditedEntity<int>, IFullAudited<User>, IPassivable
  11. {
  12. public const int MaxTenancyNameLength = 64;
  13. public const int MaxConnectionStringLength = 1024;
  14. public const string DefaultTenantName = "Vber";
  15. public const string TenancyNameRegex = "^[a-zA-Z][a-zA-Z0-9_-]{1,}$";
  16. public const int MaxNameLength = 128;
  17. /// <summary>
  18. /// 租户名称。 此属性是此租户的唯一名称。
  19. /// 它可以用作Web应用程序中的子域名
  20. /// </summary>
  21. [Required]
  22. [StringLength(MaxTenancyNameLength)]
  23. public virtual string TenancyName { get; set; }
  24. /// <summary>
  25. /// 显示名称
  26. /// </summary>
  27. [Required]
  28. [StringLength(MaxNameLength)]
  29. public virtual string Name { get; set; }
  30. /// <summary>
  31. /// 租户数据库的 ENCRYPTED 连接字符串。
  32. /// 如果此租户存储在主机数据库中,则可以为 null。
  33. /// 使用 <see cref="SimpleStringCipher"/> 来加密/解密这个。
  34. /// </summary>
  35. [StringLength(MaxConnectionStringLength)]
  36. public virtual string ConnectionString { get; set; }
  37. /// <summary>
  38. /// 这个租户活跃吗?
  39. /// 如果租户未处于活动状态,则此租户的任何用户都无法使用该应用程序。
  40. /// </summary>
  41. public virtual bool IsActive { get; set; }
  42. public virtual User CreatorUser { get; set; }
  43. public virtual User LastModifierUser { get; set; }
  44. public virtual User DeleterUser { get; set; }
  45. public Tenant()
  46. {
  47. IsActive = true;
  48. }
  49. public Tenant(string tenancyName, string name)
  50. : this()
  51. {
  52. TenancyName = tenancyName;
  53. Name = name;
  54. }
  55. }