94 lines
2.0 KiB
C#
94 lines
2.0 KiB
C#
using System.ComponentModel.DataAnnotations;
|
||
using System.ComponentModel.DataAnnotations.Schema;
|
||
using System.Text.Json.Serialization;
|
||
|
||
namespace Blahblah.FlowerStory.Server.Data.Model;
|
||
|
||
/// <summary>
|
||
/// 用户对象
|
||
/// </summary>
|
||
[Table("users")]
|
||
public class UserItem
|
||
{
|
||
/// <summary>
|
||
/// 自增 id,主键
|
||
/// </summary>
|
||
[Column("uid")]
|
||
[Key]
|
||
[Required]
|
||
public int Id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 用户 id
|
||
/// </summary>
|
||
[Column("id")]
|
||
[Required]
|
||
public required string UserId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 密码,值为 SHA256(password+id+salt)
|
||
/// </summary>
|
||
[Column("password")]
|
||
[Required]
|
||
[JsonIgnore]
|
||
public string? Password { get; set; }
|
||
|
||
/// <summary>
|
||
/// 用户级别
|
||
/// -1: Disabled
|
||
/// 0: Common
|
||
/// 99: Admin
|
||
/// </summary>
|
||
[Column("level")]
|
||
[Required]
|
||
public int Level { get; set; }
|
||
|
||
/// <summary>
|
||
/// 注册时间
|
||
/// </summary>
|
||
[Column("regdate")]
|
||
[Required]
|
||
[JsonPropertyName("registerDate")]
|
||
public long RegisterDateUnixTime { get; set; }
|
||
|
||
/// <summary>
|
||
/// 最后变动时间
|
||
/// </summary>
|
||
[Column("activedate")]
|
||
[JsonIgnore]
|
||
public long? ActiveDateUnixTime { get; set; }
|
||
|
||
/// <summary>
|
||
/// 用户名
|
||
/// </summary>
|
||
[Column("name")]
|
||
[Required]
|
||
public required string Name { get; set; }
|
||
|
||
/// <summary>
|
||
/// 邮箱
|
||
/// </summary>
|
||
[Column("email")]
|
||
public string? Email { get; set; }
|
||
|
||
/// <summary>
|
||
/// 联系电话
|
||
/// </summary>
|
||
[Column("mobile")]
|
||
public string? Mobile { get; set; }
|
||
|
||
/// <summary>
|
||
/// 注册时间
|
||
/// </summary>
|
||
[NotMapped]
|
||
[JsonIgnore]
|
||
public DateTimeOffset RegisterDate => DateTimeOffset.FromUnixTimeMilliseconds(RegisterDateUnixTime);
|
||
|
||
/// <summary>
|
||
/// 最后变动时间
|
||
/// </summary>
|
||
[NotMapped]
|
||
[JsonIgnore]
|
||
public DateTimeOffset? ActiveDate => ActiveDateUnixTime == null ? null : DateTimeOffset.FromUnixTimeMilliseconds(ActiveDateUnixTime.Value);
|
||
}
|