void.cat/VoidCat/Model/VoidUser.cs

40 lines
835 B
C#
Raw Normal View History

2022-02-24 12:00:28 +00:00
using Newtonsoft.Json;
2022-02-21 22:35:06 +00:00
namespace VoidCat.Model;
2022-02-24 12:00:28 +00:00
public abstract class VoidUser
{
protected VoidUser(Guid id, string email)
{
Id = id;
Email = email;
}
[JsonConverter(typeof(Base58GuidConverter))]
public Guid Id { get; }
public string Email { get; }
public HashSet<string> Roles { get; init; } = new() { Model.Roles.User };
public DateTimeOffset Created { get; init; }
public DateTimeOffset LastLogin { get; set; }
}
public sealed class PrivateVoidUser : VoidUser
2022-02-21 22:35:06 +00:00
{
2022-02-24 12:00:28 +00:00
public PrivateVoidUser(Guid id, string email, string passwordHash) : base(id, email)
{
PasswordHash = passwordHash;
}
public string PasswordHash { get; }
2022-02-21 22:35:06 +00:00
}
2022-02-24 12:00:28 +00:00
public sealed class PublicVoidUser : VoidUser
{
public PublicVoidUser(Guid id, string email) : base(id, email)
{
}
}