using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using Microsoft.EntityFrameworkCore; namespace Domain.Entities.Forum.Boards { [Table(nameof(BoardPrefix))] [Index(nameof(BoardID), nameof(IsActive), nameof(Order), nameof(CreatedAt))] public class BoardPrefix { [ForeignKey(nameof(BoardID))] public virtual Board Board { get; set; } = null!; [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] [DisplayName("PK")] [Comment("PK")] public int ID { get; set; } [DisplayName("게시판 ID")] [Comment("게시판 ID")] [Required(ErrorMessage = "{0}는 필수입니다.")] public int BoardID { get; set; } [DisplayName("말머리")] [Comment("말머리")] [Required(ErrorMessage = "{0}는 필수입니다.")] [StringLength(20, ErrorMessage = "{0}은 {1}자 이하로 입력하세요.")] public string Name { get; set; } = null!; [DisplayName("색상")] [Comment("색상")] [StringLength(10, ErrorMessage = "{0}은 {1}자 이하로 입력하세요.")] public string? Color { 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, int.MaxValue, ErrorMessage = "{0}은 {2}자 이상, {1}자 이하로 입력해 주세요.")] public int Posts { get; set; } = 0; [DisplayName("사용 여부")] [Comment("사용 여부")] public bool IsActive { get; set; } = false; [DisplayName("수정 일시")] [Comment("수정 일시")] [DataType(DataType.DateTime)] public DateTime? UpdatedAt { get; set; } = null; [DisplayName("등록 일시")] [Comment("등록 일시")] [DataType(DataType.DateTime)] public DateTime CreatedAt { get; set; } = DateTime.UtcNow; } }