Files
novatask/doc/api/task.api
2025-01-20 21:55:43 +08:00

159 lines
4.6 KiB
Plaintext

syntax = "v1"
@server (
prefix: /gapi/task/v1
group: task
)
service novatask {
@doc "获取任务列表"
@handler GetTaskList
get /tasks (GetTaskListReq) returns (GetTaskListResp)
@doc "获取社区列表"
@handler GetCommunityList
get /community returns (GetCommunityListResp)
}
@server (
prefix: /gapi/task/v1
group: task
jwt: Auth
)
service novatask {
@doc "校验任务结果"
@handler VerifyTaskResult
get /task (VerifyTaskResultReq) returns (VerifyTaskResultResp)
@doc "领取任务奖励"
@handler GetTaskReward
get /reward (GetTaskRewardReq) returns (GetTaskRewardResp)
@doc "拉取玩家持有的nft列表"
@handler GetNftList
get /nfts (GetNftListReq) returns (UserNftList)
@doc "质押任务详情"
@handler GetStakeTaskDetail
get /task/stake returns (StakeTaskDetail)
@doc "质押NFT"
@handler StakeNft
post /nft/stake (StakeNftList)
@doc "取消质押NFT"
@handler UnStakeNft
post /nft/unstake (UnStakeNftReq)
@doc "质押奖励发放列表"
@handler StakeRewardList
get /nft/stake_reward returns (StakeRewardList)
}
type GetTaskListReq {
CommunityId uint `form:"community_id,optional"` // 所属社区ID
}
type Task {
Id uint `json:"id"` // 任务ID
CommunityId uint `json:"community_id"` // 所属社区ID
Title string `json:"title"` // 任务标题
SubTitle string `json:"sub_title"` // 副标题
Description string `json:"description"` // 任务描述
Points int `json:"points"` // 任务积分
ButtonText string `json:"button_text"` // 按钮文字
Params string `json:"params"` // 参数
Type int8 `json:"type"` // 任务类型: 0=follow_twitter,1=bind_twitter,2=cast_twitter,3=publish_twitter,4=repost_twitter,5=watch_youtube,6=follow_youtube,7=bind_discord,8=join_telegram,9=daily_pay,10=invite_user,11=ambassador_task
Url string `json:"url"` // 跳转链接
Sort int `json:"sort"` // 排序
StartAt string `json:"start_at"` // 开始时间
EndAt string `json:"end_at"` // 结束时间
HasFinishCount int `json:"has_finish_count"` // 当前完成进度
TotalCount int `json:"total_count"` // 总进度
FinishState int8 `json:"finish_state"` // 0:未完成 1:待校验 2:已完成未领取 3:已领取 4:不可参与
}
type GetTaskListResp {
Tasks []Task `json:"tasks"`
}
type VerifyTaskResultReq {
ID uint `form:"id"` // 任务ID
Params string `form:"params,optional"` // 额外的参数
}
type GetTaskRewardReq {
ID uint `form:"id"` // 任务ID
RoleId int64 `form:"role_id,optional"` // 游戏角色ID
}
type VerifyTaskResultResp {
Finish bool `json:"finish"` // 是否完成
}
type GetTaskRewardResp {
Points int `json:"points"` // 积分
}
type Community {
Id uint `json:"id"` // 社区ID
Title string `json:"title"` // 社区标题
Logo string `json:"logo"` // 社区图标
Description string `json:"description"` // 社区描述
StartAt int64 `json:"start_at"` // 开始时间
EndAt int64 `json:"end_at"` // 结束时间
}
type GetCommunityListResp {
CommunityList []Community `json:"community_list"` // 社区列表
}
// StakeTaskDetail 质押任务详情
type StakeTaskDetail {
StartDate string `json:"start_date"` // 开始日期
EndDate string `json:"end_date"` // 结束日期
CountDown int `json:"count_down"` // 剩余结算时间
ProduceTokensToday float64 `json:"produce_token_today"` // 今日产出代币
GameBonus int `json:"game_bonus"` // 游戏加成比率
CanReceiveTokens float64 `json:"can_receive_tokens"` // 可领取代币数量
TotalIncomeTokens float64 `json:"total_income_tokens"` // 累计收益
}
// UserNft 用户NFT
type UserNft {
TokenId string `json:"token_id"` // nftID
Image string `json:"image"` // nft图片
HasStake bool `json:"has_stake"` // 是否已质押
StakeAt string `json:"stake_at"` // 质押时间
RoleId uint64 `json:"role_id"` // 角色id
}
type GetNftListReq {
WalletAddress string `form:"wallet_address"`
}
// UserNftList 用户NFT列表
type UserNftList {
NftList []UserNft `json:"nft_list"`
}
// StakeNftList 质押请求参数NFT列表
type StakeNftList {
RoleId uint64 `json:"role_id,optional"` // 角色id
TokenIds []string `json:"token_ids"` // nft列表
}
// UnStakeNftReq 取消质押请求参数
type UnStakeNftReq {
TokenId string `json:"token_id"` // nftID
}
type StakeReward {
Date string `json:"date"` // 日期
Reward float64 `json:"reward"` // 当日发放奖励
}
type StakeRewardList {
RewardList []StakeReward `json:"reward_list"`
}