BoardPrefix.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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(BoardPrefix))]
  8. [Index(nameof(BoardID), nameof(IsActive), nameof(Order), nameof(CreatedAt))]
  9. public class BoardPrefix
  10. {
  11. [ForeignKey(nameof(BoardID))]
  12. public virtual Board Board { get; set; } = null!;
  13. [Key]
  14. [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
  15. [DisplayName("PK")]
  16. [Comment("PK")]
  17. public int ID { get; set; }
  18. [DisplayName("게시판 ID")]
  19. [Comment("게시판 ID")]
  20. [Required(ErrorMessage = "{0}는 필수입니다.")]
  21. public int BoardID { get; set; }
  22. [DisplayName("말머리")]
  23. [Comment("말머리")]
  24. [Required(ErrorMessage = "{0}는 필수입니다.")]
  25. [StringLength(20, ErrorMessage = "{0}은 {1}자 이하로 입력하세요.")]
  26. public string Name { get; set; } = null!;
  27. [DisplayName("색상")]
  28. [Comment("색상")]
  29. [StringLength(10, ErrorMessage = "{0}은 {1}자 이하로 입력하세요.")]
  30. public string? Color { 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, int.MaxValue, ErrorMessage = "{0}은 {2}자 이상, {1}자 이하로 입력해 주세요.")]
  39. public int Posts { get; set; } = 0;
  40. [DisplayName("사용 여부")]
  41. [Comment("사용 여부")]
  42. public bool IsActive { get; set; } = false;
  43. [DisplayName("수정 일시")]
  44. [Comment("수정 일시")]
  45. [DataType(DataType.DateTime)]
  46. public DateTime? UpdatedAt { get; set; } = null;
  47. [DisplayName("등록 일시")]
  48. [Comment("등록 일시")]
  49. [DataType(DataType.DateTime)]
  50. public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
  51. }
  52. }