65 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System.ComponentModel.DataAnnotations;
 | 
						||
using System.ComponentModel.DataAnnotations.Schema;
 | 
						||
 | 
						||
namespace FutureMailAPI.Models
 | 
						||
{
 | 
						||
    public class SentMail
 | 
						||
    {
 | 
						||
        [Key]
 | 
						||
        public int Id { get; set; }
 | 
						||
        
 | 
						||
        [Required]
 | 
						||
        [MaxLength(200)]
 | 
						||
        public string Title { get; set; } = string.Empty;
 | 
						||
        
 | 
						||
        [Required]
 | 
						||
        public string Content { get; set; } = string.Empty;
 | 
						||
        
 | 
						||
        [Required]
 | 
						||
        public int SenderId { get; set; }
 | 
						||
        
 | 
						||
        // 收件人类型: 0-自己, 1-指定用户, 2-公开时间胶囊
 | 
						||
        [Required]
 | 
						||
        public int RecipientType { get; set; }
 | 
						||
        
 | 
						||
        // 如果是指定用户,存储用户ID
 | 
						||
        public int? RecipientId { get; set; }
 | 
						||
        
 | 
						||
        // 发送时间
 | 
						||
        public DateTime SentAt { get; set; } = DateTime.UtcNow;
 | 
						||
        
 | 
						||
        // 投递时间
 | 
						||
        [Required]
 | 
						||
        public DateTime DeliveryTime { get; set; }
 | 
						||
        
 | 
						||
        // 邮件状态: 0-草稿, 1-已发送(待投递), 2-投递中, 3-已送达
 | 
						||
        [Required]
 | 
						||
        public int Status { get; set; } = 0;
 | 
						||
        
 | 
						||
        // 触发条件类型: 0-时间, 1-地点, 2-事件
 | 
						||
        [Required]
 | 
						||
        public int TriggerType { get; set; } = 0;
 | 
						||
        
 | 
						||
        // 触发条件详情(JSON格式存储)
 | 
						||
        public string? TriggerDetails { get; set; }
 | 
						||
        
 | 
						||
        // 附件路径(JSON数组格式)
 | 
						||
        public string? Attachments { get; set; }
 | 
						||
        
 | 
						||
        // 是否加密
 | 
						||
        public bool IsEncrypted { get; set; } = false;
 | 
						||
        
 | 
						||
        // 加密密钥(如果使用端到端加密)
 | 
						||
        public string? EncryptionKey { get; set; }
 | 
						||
        
 | 
						||
        // 邮件主题/胶囊皮肤
 | 
						||
        [MaxLength(50)]
 | 
						||
        public string? Theme { get; set; }
 | 
						||
        
 | 
						||
        // 导航属性
 | 
						||
        [ForeignKey("SenderId")]
 | 
						||
        public virtual User Sender { get; set; } = null!;
 | 
						||
        
 | 
						||
        public virtual User? Recipient { get; set; }
 | 
						||
    }
 | 
						||
} |