PostLinkClickLog.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using Domain.Entities.Forum.Posts;
  2. using Domain.Entities.Members;
  3. using Microsoft.EntityFrameworkCore;
  4. using System.ComponentModel;
  5. using System.ComponentModel.DataAnnotations;
  6. using System.ComponentModel.DataAnnotations.Schema;
  7. namespace Domain.Entities.Forum.Logs
  8. {
  9. [Table("PostLinkClickLog")]
  10. [Index(nameof(PostID))]
  11. [Index(nameof(PostLinkID))]
  12. [Index(nameof(MemberID))]
  13. [Index(nameof(PostID), nameof(PostLinkID))]
  14. [Index(nameof(PostID), nameof(PostLinkID), nameof(MemberID))]
  15. public class PostLinkClickLog
  16. {
  17. [ForeignKey(nameof(PostID))]
  18. public Post Post { get; set; } = null!;
  19. [ForeignKey(nameof(PostLinkID))]
  20. public PostLink PostLink { get; set; } = null!;
  21. [ForeignKey(nameof(MemberID))]
  22. public Member Member { get; set; } = null!;
  23. [Key]
  24. [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
  25. [DisplayName("PK")]
  26. [Comment("PK")]
  27. public int ID { get; set; }
  28. [DisplayName("게시판 ID")]
  29. [Comment("게시판 ID")]
  30. public int PostID { get; set; }
  31. [DisplayName("게시글 파일 ID")]
  32. [Comment("게시글 파일 ID")]
  33. public int PostLinkID { get; set; }
  34. [DisplayName("회원 ID")]
  35. [Comment("회원 ID")]
  36. public int? MemberID { get; set; }
  37. [DisplayName("IP Address")]
  38. [Comment("IP Address")]
  39. [MaxLength(50)]
  40. public string? IpAddress { get; set; }
  41. [DisplayName("User-Agent")]
  42. [Comment("User-Agent")]
  43. [MaxLength(255)]
  44. public string? UserAgent { get; set; }
  45. [DisplayName("등록 일시")]
  46. [Comment("등록 일시")]
  47. [DataType(DataType.DateTime)]
  48. public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
  49. }
  50. }