using Microsoft.EntityFrameworkCore; using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace bitforum.Models.Page { [Table("Document")] [Index(nameof(Code), Name = "IX_Document_Code", IsUnique = true)] [Index(nameof(IsActive), Name = "IX_Document_IsActive")] public class Document { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] [DisplayName("PK")] [Comment("PK")] public int ID { get; set; } [Required] [DisplayName("주소")] [Comment("주소")] [DataType(DataType.Text)] [StringLength(30)] [RegularExpression(@"^[a-zA-Z0-9]+$", ErrorMessage = "주소는 영문 및 숫자로만 구성되어야 합니다.")] public string Code { get; set; } = null!; [Required] [DisplayName("제목")] [Comment("제목")] [DataType(DataType.Text)] [StringLength(120)] public string Subject { get; set; } = null!; [DisplayName("내용")] [Comment("내용")] [DataType(DataType.Html)] public string? Content { get; set; } = null; [Required] [DisplayName("사용 여부")] [Comment("사용 여부")] public bool IsActive { get; set; } = false; [DisplayName("조회 수")] [Comment("조회 수")] public int Views { get; set; } = 0; [DisplayName("수정 일시")] [Comment("수정 일시")] [DataType(DataType.DateTime)] public DateTime? UpdatedAt { get; set; } = null; [DisplayName("등록 일시")] [Comment("등록 일시")] [DataType(DataType.DateTime)] public DateTime CreatedAt { get; set; } } }