| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- using System.ComponentModel.DataAnnotations;
- using Domain.Entities.Members.ValueObject;
- using Domain.Entities.Store.ValueObject;
- namespace Domain.Entities.Members.Logs;
- /// <summary>
- /// 소모품 아이템 사용/회수 감사 로그.
- /// </summary>
- public class MemberItemUsageLog
- {
- [Key]
- public int ID { get; private set; }
- public int MemberID { get; private set; }
- /// <summary>대상 MemberItem ID (스냅샷).</summary>
- public int MemberItemID { get; private set; }
- public int ProductID { get; private set; }
- public ItemKind Kind { get; private set; }
- public MemberItemUsageAction Action { get; private set; }
- /// <summary>사용 결과 요약 (예: "밴 2건 해제", "글 34건 초기화").</summary>
- public string? Detail { get; private set; }
- public DateTime CreatedAt { get; private set; } = DateTime.UtcNow;
- private MemberItemUsageLog() { }
- public static MemberItemUsageLog Create(int memberID, int memberItemID, int productID, ItemKind kind, MemberItemUsageAction action, string? detail = null)
- {
- if (detail is not null && detail.Length > 300)
- {
- detail = detail[..300];
- }
- return new MemberItemUsageLog
- {
- MemberID = memberID,
- MemberItemID = memberItemID,
- ProductID = productID,
- Kind = kind,
- Action = action,
- Detail = detail
- };
- }
- }
|