Files
emall-api/FutureMailAPI/Models/SentMail.cs
2025-10-18 16:18:20 +08:00

70 lines
2.1 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
// 创建时间
public DateTime CreatedAt { 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; }
public virtual TimeCapsule? TimeCapsule { get; set; }
}
}