Index.cshtml 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. @page
  2. @model Admin.Pages.Config.Reward.IndexModel
  3. @{
  4. ViewData["Title"] = "보상 설정";
  5. }
  6. <div class="container">
  7. <h3>@ViewData["Title"]</h3>
  8. <hr />
  9. <div asp-validation-summary="ModelOnly" class="text-danger"></div>
  10. <partial name="_StatusMessage" />
  11. <form name="f_admin_write" id="fAdminWrite" class="mt-2" method="post" autocomplete="off" accept-charset="UTF-8">
  12. <!-- 지급 수치 -->
  13. <details open>
  14. <summary class="fs-5 mb-3">활동 보상 (경험치 / 토큰)</summary>
  15. <div class="row mb-2">
  16. <label asp-for="Input.Reward.PostExp" class="col-sm-3 col-form-label">게시글 경험치</label>
  17. <div class="col-sm-3">
  18. <input asp-for="Input.Reward.PostExp" type="number" class="form-control" min="0" max="100000000" />
  19. <span asp-validation-for="Input.Reward.PostExp" class="text-danger"></span>
  20. </div>
  21. <label asp-for="Input.Reward.PostPoint" class="col-sm-2 col-form-label">게시글 토큰</label>
  22. <div class="col-sm-3">
  23. <input asp-for="Input.Reward.PostPoint" type="number" class="form-control" min="0" max="100000000" />
  24. <span asp-validation-for="Input.Reward.PostPoint" class="text-danger"></span>
  25. </div>
  26. </div>
  27. <div class="row mb-2">
  28. <label asp-for="Input.Reward.CommentExp" class="col-sm-3 col-form-label">댓글 경험치</label>
  29. <div class="col-sm-3">
  30. <input asp-for="Input.Reward.CommentExp" type="number" class="form-control" min="0" max="100000000" />
  31. <span asp-validation-for="Input.Reward.CommentExp" class="text-danger"></span>
  32. </div>
  33. <label asp-for="Input.Reward.CommentPoint" class="col-sm-2 col-form-label">댓글 토큰</label>
  34. <div class="col-sm-3">
  35. <input asp-for="Input.Reward.CommentPoint" type="number" class="form-control" min="0" max="100000000" />
  36. <span asp-validation-for="Input.Reward.CommentPoint" class="text-danger"></span>
  37. </div>
  38. </div>
  39. <div class="row mb-2">
  40. <label asp-for="Input.Reward.LikeGivenExp" class="col-sm-3 col-form-label">추천(누른 쪽) 경험치</label>
  41. <div class="col-sm-3">
  42. <input asp-for="Input.Reward.LikeGivenExp" type="number" class="form-control" min="0" max="100000000" />
  43. <span asp-validation-for="Input.Reward.LikeGivenExp" class="text-danger"></span>
  44. </div>
  45. <label asp-for="Input.Reward.LikeReceivedPoint" class="col-sm-2 col-form-label">추천(받은 쪽) 토큰</label>
  46. <div class="col-sm-3">
  47. <input asp-for="Input.Reward.LikeReceivedPoint" type="number" class="form-control" min="0" max="100000000" />
  48. <span asp-validation-for="Input.Reward.LikeReceivedPoint" class="text-danger"></span>
  49. </div>
  50. </div>
  51. <div class="form-text text-muted mb-3">경험치는 MemberStats·자동 승급에, 토큰은 지갑 Reward 파티션에 적립됩니다. 0이면 지급하지 않습니다.</div>
  52. </details>
  53. <hr />
  54. <!-- 지급 조건 -->
  55. <details open>
  56. <summary class="fs-5 mb-3">지급 조건 (어뷰징 방지)</summary>
  57. <div class="row mb-2">
  58. <label asp-for="Input.Reward.MinPostLength" class="col-sm-3 col-form-label">최소 게시글 길이</label>
  59. <div class="col-sm-3">
  60. <input asp-for="Input.Reward.MinPostLength" type="number" class="form-control" min="0" max="100000" />
  61. <span asp-validation-for="Input.Reward.MinPostLength" class="text-danger"></span>
  62. </div>
  63. <label asp-for="Input.Reward.MinCommentLength" class="col-sm-2 col-form-label">최소 댓글 길이</label>
  64. <div class="col-sm-3">
  65. <input asp-for="Input.Reward.MinCommentLength" type="number" class="form-control" min="0" max="100000" />
  66. <span asp-validation-for="Input.Reward.MinCommentLength" class="text-danger"></span>
  67. </div>
  68. </div>
  69. <div class="row mb-2">
  70. <label asp-for="Input.Reward.NewMemberHoldDays" class="col-sm-3 col-form-label">신규 회원 보상 유예(일)</label>
  71. <div class="col-sm-3">
  72. <input asp-for="Input.Reward.NewMemberHoldDays" type="number" class="form-control" min="0" max="3650" />
  73. <div class="form-text text-muted">가입 후 이 기간 이내 회원은 활동 보상을 받지 않습니다. 0이면 유예 없음.</div>
  74. <span asp-validation-for="Input.Reward.NewMemberHoldDays" class="text-danger"></span>
  75. </div>
  76. </div>
  77. </details>
  78. <hr />
  79. <!-- 일일 캡 -->
  80. <details open>
  81. <summary class="fs-5 mb-3">일일 캡 (0 = 무제한)</summary>
  82. <div class="row mb-2">
  83. <label asp-for="Input.Reward.PostDailyCount" class="col-sm-3 col-form-label">게시글 일일 횟수</label>
  84. <div class="col-sm-2"><input asp-for="Input.Reward.PostDailyCount" type="number" class="form-control" min="0" /></div>
  85. <label asp-for="Input.Reward.PostDailyExp" class="col-sm-2 col-form-label">게시글 일일 경험치</label>
  86. <div class="col-sm-2"><input asp-for="Input.Reward.PostDailyExp" type="number" class="form-control" min="0" /></div>
  87. <label asp-for="Input.Reward.PostDailyPoint" class="col-sm-1 col-form-label">토큰</label>
  88. <div class="col-sm-2"><input asp-for="Input.Reward.PostDailyPoint" type="number" class="form-control" min="0" /></div>
  89. </div>
  90. <div class="row mb-2">
  91. <label asp-for="Input.Reward.CommentDailyCount" class="col-sm-3 col-form-label">댓글 일일 횟수</label>
  92. <div class="col-sm-2"><input asp-for="Input.Reward.CommentDailyCount" type="number" class="form-control" min="0" /></div>
  93. <label asp-for="Input.Reward.CommentDailyExp" class="col-sm-2 col-form-label">댓글 일일 경험치</label>
  94. <div class="col-sm-2"><input asp-for="Input.Reward.CommentDailyExp" type="number" class="form-control" min="0" /></div>
  95. <label asp-for="Input.Reward.CommentDailyPoint" class="col-sm-1 col-form-label">토큰</label>
  96. <div class="col-sm-2"><input asp-for="Input.Reward.CommentDailyPoint" type="number" class="form-control" min="0" /></div>
  97. </div>
  98. <div class="row mb-2">
  99. <label asp-for="Input.Reward.LikeGivenDailyCount" class="col-sm-3 col-form-label">추천(누른 쪽) 일일 횟수</label>
  100. <div class="col-sm-2"><input asp-for="Input.Reward.LikeGivenDailyCount" type="number" class="form-control" min="0" /></div>
  101. <label asp-for="Input.Reward.LikeGivenDailyExp" class="col-sm-2 col-form-label">경험치</label>
  102. <div class="col-sm-2"><input asp-for="Input.Reward.LikeGivenDailyExp" type="number" class="form-control" min="0" /></div>
  103. </div>
  104. <div class="row mb-2">
  105. <label asp-for="Input.Reward.LikeReceivedDailyCount" class="col-sm-3 col-form-label">추천(받은 쪽) 일일 횟수</label>
  106. <div class="col-sm-2"><input asp-for="Input.Reward.LikeReceivedDailyCount" type="number" class="form-control" min="0" /></div>
  107. <label asp-for="Input.Reward.LikeReceivedDailyPoint" class="col-sm-2 col-form-label">토큰</label>
  108. <div class="col-sm-2"><input asp-for="Input.Reward.LikeReceivedDailyPoint" type="number" class="form-control" min="0" /></div>
  109. </div>
  110. <div class="row mb-2">
  111. <label asp-for="Input.Reward.ChatDailyCount" class="col-sm-3 col-form-label">채팅 일일 횟수</label>
  112. <div class="col-sm-2"><input asp-for="Input.Reward.ChatDailyCount" type="number" class="form-control" min="0" /></div>
  113. <label asp-for="Input.Reward.ChatDailyExp" class="col-sm-2 col-form-label">경험치</label>
  114. <div class="col-sm-2"><input asp-for="Input.Reward.ChatDailyExp" type="number" class="form-control" min="0" /></div>
  115. </div>
  116. </details>
  117. <hr />
  118. <div class="row">
  119. <div class="col text-center p-3">
  120. <button type="submit" class="btn btn-success">저장하기</button>
  121. </div>
  122. </div>
  123. <br />
  124. </form>
  125. </div>