using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace FutureMailAPI.Models { public class User { [Key] public int Id { get; set; } [Required] [MaxLength(100)] public string Username { get; set; } = string.Empty; [Required] [MaxLength(255)] public string Email { get; set; } = string.Empty; [Required] [MaxLength(255)] public string PasswordHash { get; set; } = string.Empty; [Required] [MaxLength(255)] public string Salt { get; set; } = string.Empty; [MaxLength(100)] public string? Nickname { get; set; } [MaxLength(500)] public string? Avatar { get; set; } public DateTime CreatedAt { get; set; } = DateTime.UtcNow; public DateTime? LastLoginAt { get; set; } public bool IsActive { get; set; } = true; [MaxLength(20)] public string? PreferredScene { get; set; } = "SPACE"; [MaxLength(50)] public string? PreferredBackground { get; set; } = "default"; // 导航属性 public virtual ICollection SentMails { get; set; } = new List(); public virtual ICollection ReceivedMails { get; set; } = new List(); public virtual ICollection TimeCapsules { get; set; } = new List(); } }