MemberStats.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using System.ComponentModel.DataAnnotations;
  2. using System.ComponentModel.DataAnnotations.Schema;
  3. namespace Domain.Entities.Members
  4. {
  5. public class MemberStats
  6. {
  7. [ForeignKey(nameof(MemberID))]
  8. public virtual Member Member { get; private set; } = null!;
  9. public byte[] RowVersion { get; set; } = Array.Empty<byte>();
  10. [Key]
  11. public int MemberID { get; set; }
  12. public long Exp { get; set; } = 0;
  13. public long PostCount { get; set; } = 0;
  14. public long CommentCount { get; set; } = 0;
  15. public long LikeReceivedCount { get; set; } = 0;
  16. public long LikeGivenCount { get; set; } = 0;
  17. public long ReportedCount { get; set; } = 0;
  18. public long BookmarkGivenCount { get; set; } = 0;
  19. public int WarningCount { get; set; } = 0;
  20. public int SuspensionCount { get; set; } = 0;
  21. public long LoginCount { get; set; } = 0;
  22. public long AttendanceCount { get; set; } = 0;
  23. public long FollowingCount { get; set; } = 0;
  24. public long FollowerCount { get; set; } = 0;
  25. public long PaymentCount { get; set; } = 0;
  26. public long TotalPaidAmount { get; set; } = 0;
  27. public long TotalCanceledAmount { get; set; } = 0;
  28. private MemberStats() { }
  29. private MemberStats(int memberID)
  30. {
  31. if (memberID <= 0)
  32. {
  33. throw new ArgumentOutOfRangeException(nameof(memberID));
  34. }
  35. MemberID = memberID;
  36. }
  37. public static MemberStats Create(int memberID)
  38. {
  39. return new(memberID);
  40. }
  41. }
  42. }