zeroframework/Services/Identity/ZeroFramework.IdentityServer.API/IdentityStores/IdentityTenant.cs
2023-12-05 17:22:48 +08:00

60 lines
2.0 KiB
C#

namespace ZeroFramework.IdentityServer.API.IdentityStores
{
/// <summary>
/// Represents a tenant in the identity system
/// </summary>
/// <typeparam name="TKey">The type used for the primary key for the tenant.</typeparam>
public class IdentityTenant
{
/// <summary>
/// Initializes a new instance of <see cref="IdentityTenant{TKey}"/>.
/// </summary>
public IdentityTenant() { }
/// <summary>
/// Initializes a new instance of <see cref="IdentityTenant{TKey}"/>.
/// </summary>
/// <param name="tenantName">The tenant name.</param>
public IdentityTenant(string tenantName) : this()
{
Name = tenantName;
}
/// <summary>
/// Gets or sets the primary key for this tenant.
/// </summary>
public virtual Guid Id { get; set; }
/// <summary>
/// Gets or sets the name for this tenant.
/// </summary>
public virtual string Name { get; set; } = string.Empty;
/// <summary>
/// Gets or sets the normalized name for this tenant.
/// </summary>
public virtual string NormalizedName { get; set; } = string.Empty;
/// <summary>
/// A random value that should change whenever a tenant is persisted to the store
/// </summary>
public virtual string ConcurrencyStamp { get; set; } = Guid.NewGuid().ToString();
/// <summary>
/// Gets or sets the display name for this tenant.
/// </summary>
public string? DisplayName { get; set; }
/// <summary>
/// Gets or sets the creation time for this tenant.
/// </summary>
public DateTimeOffset CreationTime { get; set; } = DateTimeOffset.Now;
/// <summary>
/// Returns the name of the tenant.
/// </summary>
/// <returns>The name of the tenant.</returns>
public override string ToString() => Name;
}
}