🗑️ Drop the usage of casbin ♻️ Refactor the permission service ♻️ Refactor the flow of creating an account 🧱 Email infra structure
30 lines
887 B
C#
30 lines
887 B
C#
using System.ComponentModel.DataAnnotations;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
using System.Text.Json.Serialization;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using NodaTime;
|
|
|
|
namespace DysonNetwork.Sphere.Account;
|
|
|
|
public enum MagicSpellType
|
|
{
|
|
AccountActivation,
|
|
AccountDeactivation,
|
|
AccountRemoval,
|
|
AuthFactorReset,
|
|
ContactVerification,
|
|
}
|
|
|
|
[Index(nameof(Spell), IsUnique = true)]
|
|
public class MagicSpell : ModelBase
|
|
{
|
|
public Guid Id { get; set; } = Guid.NewGuid();
|
|
[JsonIgnore] [MaxLength(1024)] public string Spell { get; set; } = null!;
|
|
public MagicSpellType Type { get; set; }
|
|
public Instant? ExpiresAt { get; set; }
|
|
public Instant? AffectedAt { get; set; }
|
|
[Column(TypeName = "jsonb")] public Dictionary<string, object> Meta { get; set; }
|
|
|
|
public long? AccountId { get; set; }
|
|
public Account? Account { get; set; }
|
|
} |