using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace back.DataModels; [Table("Users")] public class UserModel : PersonModel { [Required] public string Email { get; set; } [Required, MinLength(8)] public string Password { get; set; } [Required] public string Salt { get; set; } [ForeignKey("RoleId")] public List Role { get; set; } public UserModel(string id, string email, string password, string name, List role, DateTime createdAt, DateTime updatedAt) : base(id, name) { Email = email; Password = password; Role = role; CreatedAt = createdAt; UpdatedAt = updatedAt; } public UserModel() { } public bool IsAdmin => Role.Exists(r => r.IsAdmin); public bool IsContentManager => Role.Exists(r => r.IsContentManager); public bool IsUser => Role.Exists(r => r.IsUser); public UserDto ToDto() { return new UserDto { Id = Id, Name = Name, Email = Email, ProfilePicture = ProfilePicture, Avatar = Avatar, SocialMedia = SocialMedia, Bio = Bio, CreatedAt = CreatedAt, UpdatedAt = UpdatedAt }; } } public class UserDto : PersonModel { public required string Email { get; set; } }