MemberEmailChangeLog.cs 1.5 KB

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