LoginLog.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using Microsoft.EntityFrameworkCore;
  2. using System.ComponentModel.DataAnnotations.Schema;
  3. using System.ComponentModel.DataAnnotations;
  4. using bitforum.Models.Account;
  5. namespace bitforum.Models.Log
  6. {
  7. /// <summary>
  8. /// 로그인 기록
  9. /// </summary>
  10. [Table("LoginLog")]
  11. [Comment("로그인 기록")]
  12. public class LoginLog
  13. {
  14. public virtual Member Member { get; set; } = null!;
  15. [Key]
  16. [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
  17. [Comment("PK")]
  18. public int ID { get; set; }
  19. [ForeignKey("MemberID")]
  20. [Comment("회원 ID")]
  21. public int? MemberID { get; set; } = null;
  22. [Comment("로그인 성공 여부 (0: 실패, 1: 성공)")]
  23. public bool Success { get; set; } = false;
  24. [Comment("로그인 시도한 계정")]
  25. [StringLength(120)]
  26. public string Account { get; set; } = null!;
  27. [Comment("실패 이유")]
  28. [StringLength(255)]
  29. public string? Reason { get; set; } = null;
  30. [Comment("이전 페이지 주소")]
  31. public string? Referer { get; set; } = null;
  32. [Comment("요청 주소")]
  33. [StringLength(500)]
  34. public string? Url { get; set; } = null;
  35. [Comment("IP Address")]
  36. [StringLength(15)]
  37. public string? IpAddress { get; set; } = null;
  38. [Comment("User Agent")]
  39. [StringLength(512)]
  40. public string? UserAgent { get; set; } = null;
  41. [Comment("등록 일시")]
  42. public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
  43. }
  44. }