MemberEmailChangeLog.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using System.ComponentModel.DataAnnotations;
  2. using System.ComponentModel.DataAnnotations.Schema;
  3. namespace Domain.Entities.Members.Logs;
  4. /// <summary>
  5. /// 사용자 이메일 변경 내역
  6. /// </summary>
  7. public class MemberEmailChangeLog
  8. {
  9. [ForeignKey(nameof(MemberID))]
  10. public virtual Member Member { get; private set; } = null!;
  11. [Key]
  12. public int ID { get; private set; }
  13. public int MemberID { get; private set; }
  14. public string? BeforeEmail { get; private set; }
  15. public string AfterEmail { get; private set; } = default!;
  16. public string? Referer { get; private set; }
  17. public string? IpAddress { get; private set; }
  18. public string? UserAgent { get; private set; }
  19. public DateTime CreatedAt { get; private set; }
  20. protected MemberEmailChangeLog() { }
  21. public MemberEmailChangeLog(
  22. int memberID,
  23. string? beforeEmail,
  24. string afterEmail,
  25. string? referer,
  26. string? ipAddress,
  27. string? userAgent
  28. ) {
  29. if (string.IsNullOrWhiteSpace(afterEmail))
  30. {
  31. throw new ArgumentException("AfterEmail is required.", nameof(afterEmail));
  32. }
  33. MemberID = memberID;
  34. BeforeEmail = beforeEmail;
  35. AfterEmail = afterEmail;
  36. Referer = referer;
  37. IpAddress = ipAddress;
  38. UserAgent = userAgent;
  39. CreatedAt = DateTime.UtcNow;
  40. }
  41. }