using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Microsoft.EntityFrameworkCore; namespace Server.DB.Documents; [Index(nameof(Username), IsUnique = true), Index(nameof(Id), IsUnique = true)] public class Account { public Account(string username, byte[] password, string email, byte permissionLevel, byte[] salt) { this.Username = username; this.Password = password; this.Email = email; this.PermissionLevel = permissionLevel; this.Salt = salt; } [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public Guid Id { get; set; } [Column(TypeName = "varchar(20)")] [MaxLength(20)] public string Username { get; set; } [Column(TypeName = "bytea")] public byte[] Password { get; set; } [EmailAddress] public string Email { get; set; } public byte PermissionLevel { get; set; } [Column(TypeName = "bytea")] public byte[] Salt { get; set; } public virtual ICollection Characters { get; } = new List(); }