CommentReaction.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. using Domain.Entities.Forum.Boards;
  2. using Domain.Entities.Forum.Posts;
  3. using Domain.Entities.Members;
  4. using Domain.Entities.Forum.ValueObject;
  5. using Microsoft.EntityFrameworkCore;
  6. using System.ComponentModel.DataAnnotations;
  7. using System.ComponentModel.DataAnnotations.Schema;
  8. namespace Domain.Entities.Forum.Comments
  9. {
  10. [Table("CommentReaction")]
  11. [Index(nameof(BoardID))]
  12. [Index(nameof(PostID))]
  13. [Index(nameof(CommentID))]
  14. [Index(nameof(MemberID))]
  15. [Index(nameof(Reaction))]
  16. [Index(nameof(CreatedAt))]
  17. [Index(nameof(CommentID), nameof(ID))]
  18. [Index(nameof(CommentID), nameof(MemberID), IsUnique = true)]
  19. public class CommentReaction
  20. {
  21. [ForeignKey(nameof(BoardID))]
  22. public virtual Board Board { get; set; } = null!;
  23. [ForeignKey(nameof(PostID))]
  24. public virtual Post Post { get; set; } = null!;
  25. [ForeignKey(nameof(CommentID))]
  26. public virtual Comment Comment { get; set; } = null!;
  27. [ForeignKey(nameof(MemberID))]
  28. public virtual Member Member { get; set; } = null!;
  29. [Key]
  30. [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
  31. [Comment("PK")]
  32. public int ID { get; set; }
  33. [Comment("게시판 ID")]
  34. public int BoardID { get; set; }
  35. [Comment("게시글 ID")]
  36. public int PostID { get; set; }
  37. [Comment("댓글 ID")]
  38. public int CommentID { get; set; }
  39. [Comment("회원 ID")]
  40. public int MemberID { get; set; }
  41. [Comment("반응 구분")]
  42. [EnumDataType(typeof(Reaction), ErrorMessage = "{0}는 {1} 중 하나를 선택하세요.")]
  43. public Reaction Reaction { get; set; }
  44. [Comment("IP Address")]
  45. [MaxLength(50)]
  46. public string? IpAddress { get; set; }
  47. [Comment("User-agent")]
  48. [MaxLength(255)]
  49. public string? UserAgent { get; set; }
  50. [Comment("수정 일시")]
  51. public DateTime? UpdatedAt { get; set; }
  52. [Comment("등록 일시")]
  53. public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
  54. }
  55. }