using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace ImageBoardServerApp.Data;

public class UserData
{
    [Required]
    [DatabaseGenerated((DatabaseGeneratedOption.Identity))]
    [Key]
    public int UserID { get; set; }

    [Required] public long TimeBanned { get; set; }

    [Required] public string BanReason { get; set; }

    [Required] public long lastActionTimeStamp { get; set; }

    public List<PostData> Posts { get; set; }

    public List<CommentData> Comments { get; set; }

    [Required] public string Email { get; set; }

    [Required] public string ProposedEmail { get; set; }

    [Required] public string Password { get; set; }

    [Required] public string Role { get; set; }

    public List<ReportData> SubmittedReports { get; set; }

    public List<ReportData> RecivedReports { get; set; }

    public string LastUsedName { get; set; }

    public bool ConfirmedEmail { get; set; }

    public string ConfirmEmailToken { get; set; }

    public string ResetPasswordToken { get; set; }

    public long ResetPasswordExpiresAt { get; set; }
}