CommentMention.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using Domain.Entities.Forum.Boards;
  2. using Domain.Entities.Forum.Posts;
  3. using Domain.Entities.Members;
  4. using Microsoft.EntityFrameworkCore;
  5. using System.ComponentModel.DataAnnotations;
  6. using System.ComponentModel.DataAnnotations.Schema;
  7. namespace Domain.Entities.Forum.Comments
  8. {
  9. [Table("CommentMention")]
  10. [Index(nameof(BoardID))]
  11. [Index(nameof(PostID))]
  12. [Index(nameof(MemberID))]
  13. [Index(nameof(CommentID))]
  14. [Index(nameof(CommentID), nameof(ID))]
  15. [Index(nameof(CommentID), nameof(MemberID), nameof(ID))]
  16. [Index(nameof(CommentID), nameof(MemberID), nameof(Start), IsUnique = true)]
  17. public class CommentMention
  18. {
  19. [ForeignKey(nameof(BoardID))]
  20. public virtual Board Board { get; set; } = null!;
  21. [ForeignKey(nameof(PostID))]
  22. public virtual Post Post { get; set; } = null!;
  23. [ForeignKey(nameof(CommentID))]
  24. public virtual Comment Comment { get; set; } = null!;
  25. [ForeignKey(nameof(MemberID))]
  26. public virtual Member Member { get; set; } = null!;
  27. [Key]
  28. [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
  29. [Comment("PK")]
  30. public int ID { get; set; }
  31. [Comment("게시판 ID")]
  32. public int BoardID { get; set; }
  33. [Comment("게시글 ID")]
  34. public int PostID { get; set; }
  35. [Comment("댓글 ID")]
  36. public int CommentID { get; set; }
  37. [Comment("언급된 회원 ID")]
  38. public int MemberID { get; set; }
  39. [Comment("원문 회원 언급값")]
  40. [MaxLength(64)]
  41. public string RawHandle { get; set; } = null!;
  42. [Comment("본문 내 시작 인덱스")]
  43. public int Start { get; set; } = -1;
  44. [Comment("길이")]
  45. public int Length { get; set; }
  46. [Comment("등록 일시")]
  47. public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
  48. }
  49. }