feat: Redemption Code
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
syntax = "v1"
|
||||
|
||||
info (
|
||||
title: "redemption API"
|
||||
desc: "API for redemption code management"
|
||||
author: "Tension"
|
||||
email: "tension@ppanel.com"
|
||||
version: "0.0.1"
|
||||
)
|
||||
|
||||
import "../types.api"
|
||||
|
||||
type (
|
||||
CreateRedemptionCodeRequest {
|
||||
TotalCount int64 `json:"total_count" validate:"required"`
|
||||
SubscribePlan int64 `json:"subscribe_plan" validate:"required"`
|
||||
UnitTime string `json:"unit_time" validate:"required,oneof=day month quarter half_year year"`
|
||||
Quantity int64 `json:"quantity" validate:"required"`
|
||||
BatchCount int64 `json:"batch_count" validate:"required,min=1"`
|
||||
}
|
||||
UpdateRedemptionCodeRequest {
|
||||
Id int64 `json:"id" validate:"required"`
|
||||
TotalCount int64 `json:"total_count,omitempty"`
|
||||
SubscribePlan int64 `json:"subscribe_plan,omitempty"`
|
||||
UnitTime string `json:"unit_time,omitempty" validate:"omitempty,oneof=day month quarter half_year year"`
|
||||
Quantity int64 `json:"quantity,omitempty"`
|
||||
}
|
||||
DeleteRedemptionCodeRequest {
|
||||
Id int64 `json:"id" validate:"required"`
|
||||
}
|
||||
BatchDeleteRedemptionCodeRequest {
|
||||
Ids []int64 `json:"ids" validate:"required"`
|
||||
}
|
||||
GetRedemptionCodeListRequest {
|
||||
Page int64 `form:"page" validate:"required"`
|
||||
Size int64 `form:"size" validate:"required"`
|
||||
SubscribePlan int64 `form:"subscribe_plan,omitempty"`
|
||||
UnitTime string `form:"unit_time,omitempty"`
|
||||
Code string `form:"code,omitempty"`
|
||||
}
|
||||
GetRedemptionCodeListResponse {
|
||||
Total int64 `json:"total"`
|
||||
List []RedemptionCode `json:"list"`
|
||||
}
|
||||
GetRedemptionRecordListRequest {
|
||||
Page int64 `form:"page" validate:"required"`
|
||||
Size int64 `form:"size" validate:"required"`
|
||||
UserId int64 `form:"user_id,omitempty"`
|
||||
CodeId int64 `form:"code_id,omitempty"`
|
||||
}
|
||||
GetRedemptionRecordListResponse {
|
||||
Total int64 `json:"total"`
|
||||
List []RedemptionRecord `json:"list"`
|
||||
}
|
||||
)
|
||||
|
||||
@server (
|
||||
prefix: v1/admin/redemption
|
||||
group: admin/redemption
|
||||
middleware: AuthMiddleware
|
||||
)
|
||||
service ppanel {
|
||||
@doc "Create redemption code"
|
||||
@handler CreateRedemptionCode
|
||||
post /code (CreateRedemptionCodeRequest)
|
||||
|
||||
@doc "Update redemption code"
|
||||
@handler UpdateRedemptionCode
|
||||
put /code (UpdateRedemptionCodeRequest)
|
||||
|
||||
@doc "Delete redemption code"
|
||||
@handler DeleteRedemptionCode
|
||||
delete /code (DeleteRedemptionCodeRequest)
|
||||
|
||||
@doc "Batch delete redemption code"
|
||||
@handler BatchDeleteRedemptionCode
|
||||
delete /code/batch (BatchDeleteRedemptionCodeRequest)
|
||||
|
||||
@doc "Get redemption code list"
|
||||
@handler GetRedemptionCodeList
|
||||
get /code/list (GetRedemptionCodeListRequest) returns (GetRedemptionCodeListResponse)
|
||||
|
||||
@doc "Get redemption record list"
|
||||
@handler GetRedemptionRecordList
|
||||
get /record/list (GetRedemptionRecordListRequest) returns (GetRedemptionRecordListResponse)
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
syntax = "v1"
|
||||
|
||||
info (
|
||||
title: "redemption API"
|
||||
desc: "API for redemption"
|
||||
author: "Tension"
|
||||
email: "tension@ppanel.com"
|
||||
version: "0.0.1"
|
||||
)
|
||||
|
||||
import "../types.api"
|
||||
|
||||
type (
|
||||
RedeemCodeRequest {
|
||||
Code string `json:"code" validate:"required"`
|
||||
}
|
||||
RedeemCodeResponse {
|
||||
Message string `json:"message"`
|
||||
}
|
||||
)
|
||||
|
||||
@server (
|
||||
prefix: v1/public/redemption
|
||||
group: public/redemption
|
||||
jwt: JwtAuth
|
||||
middleware: AuthMiddleware,DeviceMiddleware
|
||||
)
|
||||
service ppanel {
|
||||
@doc "Redeem code"
|
||||
@handler RedeemCode
|
||||
post / (RedeemCodeRequest) returns (RedeemCodeResponse)
|
||||
}
|
||||
@@ -448,6 +448,27 @@ type (
|
||||
CreatedAt int64 `json:"created_at"`
|
||||
UpdatedAt int64 `json:"updated_at"`
|
||||
}
|
||||
RedemptionCode {
|
||||
Id int64 `json:"id"`
|
||||
Code string `json:"code"`
|
||||
TotalCount int64 `json:"total_count"`
|
||||
UsedCount int64 `json:"used_count"`
|
||||
SubscribePlan int64 `json:"subscribe_plan"`
|
||||
UnitTime string `json:"unit_time"`
|
||||
Quantity int64 `json:"quantity"`
|
||||
CreatedAt int64 `json:"created_at"`
|
||||
UpdatedAt int64 `json:"updated_at"`
|
||||
}
|
||||
RedemptionRecord {
|
||||
Id int64 `json:"id"`
|
||||
RedemptionCodeId int64 `json:"redemption_code_id"`
|
||||
UserId int64 `json:"user_id"`
|
||||
SubscribeId int64 `json:"subscribe_id"`
|
||||
UnitTime string `json:"unit_time"`
|
||||
Quantity int64 `json:"quantity"`
|
||||
RedeemedAt int64 `json:"redeemed_at"`
|
||||
CreatedAt int64 `json:"created_at"`
|
||||
}
|
||||
Announcement {
|
||||
Id int64 `json:"id"`
|
||||
Title string `json:"title"`
|
||||
|
||||
Reference in New Issue
Block a user