using Microsoft.AspNetCore.Identity; using System.ComponentModel.DataAnnotations.Schema; namespace Entities.Contracts { public class User : IdentityUser { public string? RefreshToken { get; set; } public DateTime? RefreshTokenExpiryTime { get; set; } public string? HomeAddress { get; set; } public string? DisplayName { get; set; } public UserRoles? Role { get; set; } public Guid? TeachSubjectId { get; set; } [ForeignKey(nameof(TeachSubjectId))] public virtual Subject? TeachSubject { get; set; } [Column("deleted")] public bool IsDeleted { get; set; } [InverseProperty(nameof(ClassUser.User))] public virtual ICollection UserInjoinedClass { get; set; } //[InverseProperty(nameof(Question.Creator))] //public virtual ICollection CreatedQuestions { get; set; } [InverseProperty(nameof(Exam.Creator))] public virtual ICollection CreatedExams { get; set; } [InverseProperty(nameof(SubmissionDetail.Student))] public virtual ICollection SubmissionDetails { get; set; } [InverseProperty(nameof(Submission.Student))] public virtual ICollection StudentSubmissions { get; set; } [InverseProperty(nameof(Submission.Grader))] public virtual ICollection GradedSubmissions { get; set; } public User() { Id = Guid.NewGuid(); SecurityStamp = Guid.NewGuid().ToString(); //CreatedQuestions = new HashSet(); UserInjoinedClass = new HashSet(); CreatedExams = new HashSet(); GradedSubmissions = new HashSet(); StudentSubmissions = new HashSet(); SubmissionDetails = new HashSet(); } } }