using Domain.Entities.Forum.Posts; using Domain.Entities.Members; using Microsoft.EntityFrameworkCore; using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace Domain.Entities.Forum.Logs { [Table("PostFileDownLog")] [Index(nameof(PostID))] [Index(nameof(PostFileID))] [Index(nameof(MemberID))] [Index(nameof(PostID), nameof(PostFileID))] [Index(nameof(PostID), nameof(PostFileID), nameof(MemberID))] public class PostFileDownLog { [ForeignKey(nameof(PostID))] public Post Post { get; set; } = null!; [ForeignKey(nameof(PostFileID))] public PostFile PostFile { get; set; } = null!; [ForeignKey(nameof(MemberID))] public Member Member { get; set; } = null!; [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] [DisplayName("PK")] [Comment("PK")] public int ID { get; set; } [DisplayName("게시글 ID")] [Comment("게시글 ID")] public int PostID { get; set; } [DisplayName("게시글 파일 ID")] [Comment("게시글 파일 ID")] public int PostFileID { get; set; } [DisplayName("회원 ID")] [Comment("회원 ID")] public int? MemberID { get; set; } [DisplayName("IP Address")] [Comment("IP Address")] [MaxLength(50)] public string? IpAddress { get; set; } [DisplayName("User-Agent")] [Comment("User-Agent")] [MaxLength(255)] public string? UserAgent { get; set; } [DisplayName("등록 일시")] [Comment("등록 일시")] [DataType(DataType.DateTime)] public DateTime CreatedAt { get; set; } = DateTime.UtcNow; } }