| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- @page "{id:int}"
- @model Admin.Pages.Store.Game.CatalogModel
- @{
- ViewData["Title"] = "SKU 정가 카탈로그";
- }
- <div class="container-fluid">
- <h3>@ViewData["Title"] @(Model.Data != null ? $"— {Model.Data.GameName}" : "")</h3>
- <hr />
- <partial name="_StatusMessage" />
- @if (Model.Data == null)
- {
- <div class="alert alert-warning">게임 정보를 불러올 수 없습니다.</div>
- }
- else
- {
- <div class="alert alert-light border">
- <div>게임 코드: <code>@(Model.Data.GameCode ?? "-")</code> / API 수수료율: <strong>@Model.Data.ApiCommissionRate%</strong></div>
- <small class="text-muted">
- 파트너가 결제 보고(/v1/purchases) 시 보낸 productID(SKU)가 이 카탈로그에 있으면 보고 금액을 정가와 대조합니다.
- 불일치 건은 등록은 되지만 <span class="badge bg-danger">불일치</span> 표시되어 결제 보고 내역에서 검토할 수 있습니다.
- 카탈로그에 없는 SKU 는 검증 없이 통과합니다.
- </small>
- </div>
- <form method="post" asp-page-handler="Add">
- <input type="hidden" asp-for="Add.GameID" />
- <div class="row g-2 align-items-end mb-3">
- <div class="col-12 col-sm-auto">
- <label asp-for="Add.ProductID" class="form-label">SKU(상품 ID)</label>
- <input asp-for="Add.ProductID" class="form-control" maxlength="100" placeholder="예) diamond_100" />
- </div>
- <div class="col-6 col-sm-auto">
- <label asp-for="Add.Price" class="form-label">정가(원)</label>
- <input asp-for="Add.Price" class="form-control" type="number" min="1" />
- </div>
- <div class="col-auto">
- <button type="submit" class="btn btn-primary">추가</button>
- </div>
- </div>
- </form>
- <div class="table-responsive">
- <table class="table table-bordered table-hover align-middle">
- <thead>
- <tr>
- <th>ID</th>
- <th>SKU</th>
- <th style="width:180px">정가(원)</th>
- <th style="width:100px">사용</th>
- <th>등록/수정일</th>
- <th style="width:160px">관리</th>
- </tr>
- </thead>
- <tbody>
- @if (Model.Data.List.Count <= 0)
- {
- <tr>
- <td colspan="6" class="text-center text-muted py-4">등록된 SKU 가 없습니다.</td>
- </tr>
- }
- else
- {
- @foreach (var row in Model.Data.List)
- {
- <tr>
- <td>@row.ID</td>
- <td><code>@row.ProductID</code></td>
- <td>
- <input type="number" name="price" value="@row.Price" min="1" class="form-control form-control-sm" form="fUpdate-@row.ID" />
- </td>
- <td>
- <input type="checkbox" name="isActive" value="true" class="form-check-input" checked="@row.IsActive" form="fUpdate-@row.ID" />
- </td>
- <td>
- @row.CreatedAt.ToString("yyyy-MM-dd")
- @if (row.UpdatedAt != null)
- {
- <small class="text-muted">(수정 @row.UpdatedAt.Value.ToString("yyyy-MM-dd"))</small>
- }
- </td>
- <td>
- <form id="fUpdate-@row.ID" method="post" asp-page-handler="Update" class="d-inline">
- <input type="hidden" name="gameID" value="@Model.Data.GameID" />
- <input type="hidden" name="id" value="@row.ID" />
- <button type="submit" class="btn btn-sm btn-outline-primary">저장</button>
- </form>
- <form method="post" asp-page-handler="Delete" class="d-inline" onsubmit="return confirm('SKU @row.ProductID 를 삭제할까요?');">
- <input type="hidden" name="gameID" value="@Model.Data.GameID" />
- <input type="hidden" name="id" value="@row.ID" />
- <button type="submit" class="btn btn-sm btn-outline-danger">삭제</button>
- </form>
- </td>
- </tr>
- }
- }
- </tbody>
- </table>
- </div>
- <hr />
- <div class="d-flex justify-content-center">
- <a href="/Store/Game/Edit/@Model.Data.GameID" class="btn btn-secondary">게임 수정으로</a>
- </div>
- }
- </div>
|