BoardGroup.cs 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using System.ComponentModel;
  2. using System.ComponentModel.DataAnnotations;
  3. using System.ComponentModel.DataAnnotations.Schema;
  4. using Microsoft.EntityFrameworkCore;
  5. namespace Domain.Entities.Forum.Boards
  6. {
  7. [Table(nameof(BoardGroup))]
  8. [Index(nameof(Code), IsUnique = true)]
  9. [Index(nameof(Order))]
  10. [Index(nameof(Order), nameof(CreatedAt))]
  11. [Index(nameof(Code), nameof(Order), nameof(CreatedAt))]
  12. public class BoardGroup
  13. {
  14. public virtual List<Board> Board { get; set; } = [];
  15. [Key]
  16. [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
  17. [DisplayName("PK")]
  18. [Comment("PK")]
  19. public int ID { get; set; }
  20. [DisplayName("게시판 분류 주소")]
  21. [Comment("게시판 분류 주소")]
  22. [Required(ErrorMessage = "{0}는 필수입니다.")]
  23. [DataType(DataType.Text)]
  24. [StringLength(30, ErrorMessage = "{0}은 {1}자 이하로 입력하세요.")]
  25. public string Code { get; set; } = null!;
  26. [DisplayName("게시판 분류 명")]
  27. [Comment("게시판 분류 명")]
  28. [Required(ErrorMessage = "{0}는 필수입니다.")]
  29. [StringLength(70, ErrorMessage = "{0}은 {1}자 이하로 입력하세요.")]
  30. public string Name { get; set; } = null!;
  31. [DisplayName("순서")]
  32. [Comment("순서")]
  33. [Required(ErrorMessage = "{0}는 필수입니다.")]
  34. [Range(short.MinValue, short.MaxValue, ErrorMessage = "{0} 허용 범위는 {2} ~ {1} 입니다.")]
  35. public short Order { get; set; } = 0;
  36. [DisplayName("게시판 수")]
  37. [Comment("게시판 수")]
  38. [Range(0, short.MaxValue, ErrorMessage = "{0} 허용 범위는 {2} ~ {1} 입니다.")]
  39. public short Boards { get; set; } = 0;
  40. [DisplayName("게시글 수")]
  41. [Comment("게시글 수")]
  42. [Range(0, int.MaxValue, ErrorMessage = "{0} 허용 범위는 {2} ~ {1} 입니다.")]
  43. public int Posts { get; set; } = 0;
  44. [DisplayName("댓글 수")]
  45. [Comment("댓글 수")]
  46. [Range(0, int.MaxValue, ErrorMessage = "{0} 허용 범위는 {2} ~ {1} 입니다.")]
  47. public int Comments { get; set; } = 0;
  48. [DisplayName("수정 일시")]
  49. [Comment("수정 일시")]
  50. [DataType(DataType.DateTime)]
  51. public DateTime? UpdatedAt { get; set; } = null;
  52. [DisplayName("등록 일시")]
  53. [Comment("등록 일시")]
  54. [DataType(DataType.DateTime)]
  55. public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
  56. }
  57. }