using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Microsoft.EntityFrameworkCore; namespace Domain.Entities.Forum.Boards { [Table(nameof(BoardGroup))] [Index(nameof(Code), IsUnique = true)] [Index(nameof(Order))] [Index(nameof(Order), nameof(CreatedAt))] [Index(nameof(Code), nameof(Order), nameof(CreatedAt))] public class BoardGroup { public virtual List Board { get; set; } = []; [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] [DisplayName("PK")] [Comment("PK")] public int ID { get; set; } [DisplayName("게시판 분류 주소")] [Comment("게시판 분류 주소")] [Required(ErrorMessage = "{0}는 필수입니다.")] [DataType(DataType.Text)] [StringLength(30, ErrorMessage = "{0}은 {1}자 이하로 입력하세요.")] public string Code { get; set; } = null!; [DisplayName("게시판 분류 명")] [Comment("게시판 분류 명")] [Required(ErrorMessage = "{0}는 필수입니다.")] [StringLength(70, ErrorMessage = "{0}은 {1}자 이하로 입력하세요.")] public string Name { get; set; } = null!; [DisplayName("순서")] [Comment("순서")] [Required(ErrorMessage = "{0}는 필수입니다.")] [Range(short.MinValue, short.MaxValue, ErrorMessage = "{0} 허용 범위는 {2} ~ {1} 입니다.")] public short Order { get; set; } = 0; [DisplayName("게시판 수")] [Comment("게시판 수")] [Range(0, short.MaxValue, ErrorMessage = "{0} 허용 범위는 {2} ~ {1} 입니다.")] public short Boards { get; set; } = 0; [DisplayName("게시글 수")] [Comment("게시글 수")] [Range(0, int.MaxValue, ErrorMessage = "{0} 허용 범위는 {2} ~ {1} 입니다.")] public int Posts { get; set; } = 0; [DisplayName("댓글 수")] [Comment("댓글 수")] [Range(0, int.MaxValue, ErrorMessage = "{0} 허용 범위는 {2} ~ {1} 입니다.")] public int Comments { get; set; } = 0; [DisplayName("수정 일시")] [Comment("수정 일시")] [DataType(DataType.DateTime)] public DateTime? UpdatedAt { get; set; } = null; [DisplayName("등록 일시")] [Comment("등록 일시")] [DataType(DataType.DateTime)] public DateTime CreatedAt { get; set; } = DateTime.UtcNow; } }