EmailLog.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. using System.ComponentModel;
  2. using System.ComponentModel.DataAnnotations;
  3. using System.ComponentModel.DataAnnotations.Schema;
  4. using Microsoft.EntityFrameworkCore;
  5. using bitforum.Constants;
  6. using bitforum.Models.Account;
  7. namespace bitforum.Models.Log
  8. {
  9. /// <summary>
  10. /// 이메일 발송 내역
  11. /// </summary>
  12. [Table("EmailLog")]
  13. [Index(nameof(MemberID), Name = "IX_EmailLog_MemberID")]
  14. [Index(nameof(Status), Name = "IX_EmailLog_Status")]
  15. public class EmailLog
  16. {
  17. public virtual Member Member { get; set; } = null!;
  18. [Key]
  19. [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
  20. [DisplayName("PK")]
  21. [Comment("PK")]
  22. public int ID { get; set; }
  23. [ForeignKey("MemberID")]
  24. [DisplayName("회원 ID")]
  25. [Comment("회원 ID")]
  26. public int? MemberID { get; set; } = null;
  27. [DisplayName("처리 여부")]
  28. [Comment("처리 여부")]
  29. [Column(TypeName = "nvarchar(20)")]
  30. public MailStatus Status { get; set; } = MailStatus.Pending;
  31. [DisplayName("제목")]
  32. [Comment("제목")]
  33. [DataType(DataType.Text)]
  34. [StringLength(255)]
  35. public string Subject { get; set; } = null!;
  36. [DisplayName("내용")]
  37. [Comment("내용")]
  38. [DataType(DataType.Html)]
  39. public string? Message { get; set; } = null;
  40. [DisplayName("수신 주소")]
  41. [Comment("수신 주소")]
  42. [StringLength(120)]
  43. public string ToAddress { get; set; } = null!;
  44. [DisplayName("수신자")]
  45. [Comment("수신자")]
  46. [StringLength(60)]
  47. public string? ToName { get; set; } = null;
  48. [DisplayName("발신 주소")]
  49. [Comment("발신 주소")]
  50. [StringLength(120)]
  51. public string FromAddress { get; set; } = null!;
  52. [DisplayName("발신자")]
  53. [Comment("발신자")]
  54. [StringLength(60)]
  55. public string? FromName { get; set; }
  56. [DisplayName("처리 일시")]
  57. [Comment("처리 일시")]
  58. [DataType(DataType.DateTime)]
  59. public DateTime? ProcessedAt { get; set; } = null;
  60. [DisplayName("등록 일시")]
  61. [Comment("등록 일시")]
  62. [DataType(DataType.DateTime)]
  63. public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
  64. }
  65. }