Document.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using Microsoft.EntityFrameworkCore;
  2. using System.ComponentModel;
  3. using System.ComponentModel.DataAnnotations;
  4. using System.ComponentModel.DataAnnotations.Schema;
  5. namespace bitforum.Models.Page
  6. {
  7. [Table("Document")]
  8. [Index(nameof(Code), Name = "IX_Document_Code", IsUnique = true)]
  9. [Index(nameof(IsActive), Name = "IX_Document_IsActive")]
  10. public class Document
  11. {
  12. [Key]
  13. [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
  14. [DisplayName("PK")]
  15. [Comment("PK")]
  16. public int ID { get; set; }
  17. [Required]
  18. [DisplayName("주소")]
  19. [Comment("주소")]
  20. [DataType(DataType.Text)]
  21. [StringLength(30)]
  22. [RegularExpression(@"^[a-zA-Z0-9]+$", ErrorMessage = "주소는 영문 및 숫자로만 구성되어야 합니다.")]
  23. public string Code { get; set; } = null!;
  24. [Required]
  25. [DisplayName("제목")]
  26. [Comment("제목")]
  27. [DataType(DataType.Text)]
  28. [StringLength(120)]
  29. public string Subject { get; set; } = null!;
  30. [DisplayName("내용")]
  31. [Comment("내용")]
  32. [DataType(DataType.Html)]
  33. public string? Content { get; set; } = null;
  34. [Required]
  35. [DisplayName("사용 여부")]
  36. [Comment("사용 여부")]
  37. public bool IsActive { get; set; } = false;
  38. [DisplayName("조회 수")]
  39. [Comment("조회 수")]
  40. public int Views { get; set; } = 0;
  41. [DisplayName("수정 일시")]
  42. [Comment("수정 일시")]
  43. [DataType(DataType.DateTime)]
  44. public DateTime? UpdatedAt { get; set; } = null;
  45. [DisplayName("등록 일시")]
  46. [Comment("등록 일시")]
  47. [DataType(DataType.DateTime)]
  48. public DateTime CreatedAt { get; set; }
  49. }
  50. }