Files
hi-server/apis/admin/lottery.api
T
shanshanzhong147 58c346abec 重构(#4): 抽奖奖品改/删 id 走 URL path(RESTful)
- PUT /admin/lottery/prizes/:id、DELETE /admin/lottery/prizes/:id
- handler 从 c.Param("id") 取 id;types 用 path:"id"
- 同步 apis/admin/lottery.api 定义

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-16 19:45:23 -07:00

87 lines
2.7 KiB
Plaintext

syntax = "v1"
info (
title: "Lottery Admin API"
desc: "Admin-facing lottery endpoints for HIF-3 Stage 1"
author: "hifast"
version: "0.1.0"
)
import "../types.api"
@server (
prefix: v1/admin/lottery
group: admin/lottery
middleware: AuthMiddleware
)
service ppanel {
@doc "Create a new activity (status=draft)"
@handler CreateLotteryActivity
post /activities (CreateAdminLotteryActivityRequest) returns (AdminLotteryActivity)
@doc "Update mutable activity fields"
@handler UpdateLotteryActivity
put /activities (UpdateAdminLotteryActivityRequest) returns (AdminLotteryActivity)
@doc "List activities (paginated)"
@handler ListLotteryActivities
get /activities (ListAdminLotteryActivitiesRequest) returns (ListAdminLotteryActivitiesResponse)
@doc "Get one activity"
@handler GetLotteryActivity
get /activities/detail (AdminActivityIdRequest) returns (AdminLotteryActivity)
@doc "Publish (draft/paused → running)"
@handler PublishLotteryActivity
post /activities/publish (AdminActivityIdRequest)
@doc "Pause (running → paused)"
@handler PauseLotteryActivity
post /activities/pause (AdminActivityIdRequest)
@doc "Update eligibility/chance_sources (rule-caps enforced)"
@handler UpdateLotteryRules
put /activities/rules (UpdateAdminLotteryRulesRequest)
@doc "Create prize"
@handler CreateLotteryPrize
post /prizes (CreateAdminLotteryPrizeRequest) returns (AdminLotteryPrize)
@doc "Update prize"
@handler UpdateLotteryPrize
put /prizes/:id (UpdateAdminLotteryPrizeRequest) returns (AdminLotteryPrize)
@doc "Delete prize"
@handler DeleteLotteryPrize
delete /prizes/:id (AdminPrizeIdRequest)
@doc "List prizes on an activity"
@handler ListLotteryPrizes
get /prizes (ListAdminLotteryPrizesRequest) returns (ListAdminLotteryPrizesResponse)
@doc "Manually grant N chances to a user (idempotent by source_ref)"
@handler GrantLotteryChance
post /chances/grant (GrantAdminLotteryChanceRequest)
// Stage 2 (HIF-4): 人工奖工单接口
@doc "List manual-claim work orders (filter by type/status/activity/user/time)"
@handler ListLotteryClaims
get /claims (ListAdminLotteryClaimsRequest) returns (ListAdminLotteryClaimsResponse)
@doc "Summary counts for claims workbench"
@handler LotteryClaimsSummary
get /claims/summary returns (AdminLotteryClaimsSummary)
@doc "Approve a claim (reviewing -> paying)"
@handler ApproveLotteryClaim
post /claims/approve (AdminApproveClaimRequest)
@doc "Reject a claim (reviewing/paying -> rejected; user may resubmit)"
@handler RejectLotteryClaim
post /claims/reject (AdminRejectClaimRequest)
@doc "Mark as paid (paying -> paid, records tx_hash/delivery_ref)"
@handler MarkPaidLotteryClaim
post /claims/mark-paid (AdminMarkPaidClaimRequest)
}