Item.cs 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. using Microsoft.AspNetCore.Mvc.ModelBinding.Validation;
  2. using Microsoft.EntityFrameworkCore;
  3. using System.ComponentModel;
  4. using System.ComponentModel.DataAnnotations;
  5. using System.ComponentModel.DataAnnotations.Schema;
  6. namespace bitforum.Models.Page.Banner
  7. {
  8. [Table("BannerItem")]
  9. [Index(nameof(Order), Name = "IX_BannerItem_Order")]
  10. [Index(nameof(IsActive), Name = "IX_BannerItem_IsActive")]
  11. public class BannerItem
  12. {
  13. [ValidateNever]
  14. public virtual BannerPosition? BannerPosition { get; set; } = null;
  15. [Key]
  16. public int ID { get; set; }
  17. [Required]
  18. [ForeignKey("BannerPosition")]
  19. [DisplayName("배너 위치ID")]
  20. public int PositionID { get; set; }
  21. [Required]
  22. [DisplayName("배너 명")]
  23. [DataType(DataType.Text)]
  24. [MaxLength(255)]
  25. public string Subject { get; set; }
  26. [DisplayName("이미지")]
  27. [RegularExpression(@"\.(jpg|jpeg|png|gif)$", ErrorMessage = "이미지 파일은 jpg, jpeg, png, gif 형식이어야 합니다.")]
  28. [MaxLength(1024)]
  29. public string? Image { get; set; } = null;
  30. [DisplayName("가로 크기")]
  31. [Range(1, int.MaxValue, ErrorMessage = "숫자는 1 이상이어야 합니다.")]
  32. public int Width { get; set; } = 0;
  33. [DisplayName("세로 크기")]
  34. [Range(1, int.MaxValue, ErrorMessage = "숫자는 1 이상이어야 합니다.")]
  35. public int Height { get; set; } = 0;
  36. [DisplayName("주소")]
  37. [DataType(DataType.Url)]
  38. [MaxLength(255)]
  39. public string? Link { get; set; } = null;
  40. [Required]
  41. [DisplayName("순서")]
  42. public int Order { get; set; } = 0;
  43. [Required]
  44. [DisplayName("사용 여부")]
  45. public bool IsActive { get; set; } = false;
  46. [DisplayName("사용 기간 - 시작")]
  47. [DataType(DataType.DateTime)]
  48. public DateTime? StartAt { get; set; } = null;
  49. [DisplayName("사용 기간 - 종료")]
  50. [DataType(DataType.DateTime)]
  51. public DateTime? EndAt { get; set; } = null;
  52. [DisplayName("조회 수")]
  53. public int Views { get; set; } = 0;
  54. [DisplayName("수정일시")]
  55. [DataType(DataType.DateTime)]
  56. public DateTime? UpdatedAt { get; set; } = null;
  57. [DisplayName("등록일시")]
  58. [DataType(DataType.DateTime)]
  59. public DateTime? CreatedAt { get; set; } = null;
  60. }
  61. }