forked from xiongyuxing/tiku-backend.net
36 lines
1.0 KiB
C#
36 lines
1.0 KiB
C#
using System.Text.Json;
|
|
using Microsoft.AspNetCore.Identity;
|
|
using Tiku.Domain.Common;
|
|
|
|
namespace Tiku.Domain.Identity;
|
|
|
|
public sealed class User : IdentityUser<Guid>, IHasTimestamps
|
|
{
|
|
public User()
|
|
{
|
|
Id = Guid.NewGuid();
|
|
SecurityStamp = Guid.NewGuid().ToString("N");
|
|
ConcurrencyStamp = Guid.NewGuid().ToString("N");
|
|
}
|
|
|
|
public string? LegacyId { get; set; }
|
|
public string? Phone { get; set; }
|
|
public string? Name { get; set; }
|
|
public string? AvatarUrl { get; set; }
|
|
public string PrimaryRole { get; set; } = "student";
|
|
public int Score { get; set; }
|
|
public DateTimeOffset? LastSeenAt { get; set; }
|
|
public UserStatus Status { get; set; } = UserStatus.Active;
|
|
public bool ForcePasswordChange { get; set; }
|
|
public JsonElement RawProfile { get; set; } = JsonDefaults.Object();
|
|
public DateTimeOffset CreatedAt { get; set; } = DateTimeOffset.UtcNow;
|
|
public DateTimeOffset UpdatedAt { get; set; } = DateTimeOffset.UtcNow;
|
|
}
|
|
|
|
public enum UserStatus
|
|
{
|
|
Active,
|
|
Disabled,
|
|
Archived
|
|
}
|