ppanel-server/apis/admin/subscribe.api
2025-09-27 10:17:16 +08:00

165 lines
5.4 KiB
Plaintext

syntax = "v1"
info (
title: "Subscribe API"
desc: "API for ppanel"
author: "Tension"
email: "tension@ppanel.com"
version: "0.0.1"
)
import "../types.api"
type (
GetSubscribeDetailsRequest {
Id int64 `form:"id" validate:"required"`
}
CreateSubscribeGroupRequest {
Name string `json:"name" validate:"required"`
Description string `json:"description"`
}
UpdateSubscribeGroupRequest {
Id int64 `json:"id" validate:"required"`
Name string `json:"name" validate:"required"`
Description string `json:"description"`
}
GetSubscribeGroupListResponse {
List []SubscribeGroup `json:"list"`
Total int64 `json:"total"`
}
DeleteSubscribeGroupRequest {
Id int64 `json:"id" validate:"required"`
}
BatchDeleteSubscribeGroupRequest {
Ids []int64 `json:"ids" validate:"required"`
}
CreateSubscribeRequest {
Name string `json:"name" validate:"required"`
Description string `json:"description"`
UnitPrice int64 `json:"unit_price"`
UnitTime string `json:"unit_time"`
Discount []SubscribeDiscount `json:"discount"`
Replacement int64 `json:"replacement"`
Inventory int64 `json:"inventory"`
Traffic int64 `json:"traffic"`
SpeedLimit int64 `json:"speed_limit"`
DeviceLimit int64 `json:"device_limit"`
Quota int64 `json:"quota"`
GroupId int64 `json:"group_id"`
ServerGroup []int64 `json:"server_group"`
Server []int64 `json:"server"`
Show *bool `json:"show"`
Sell *bool `json:"sell"`
DeductionRatio int64 `json:"deduction_ratio"`
AllowDeduction *bool `json:"allow_deduction"`
ResetCycle int64 `json:"reset_cycle"`
RenewalReset *bool `json:"renewal_reset"`
}
UpdateSubscribeRequest {
Id int64 `json:"id" validate:"required"`
Name string `json:"name" validate:"required"`
Description string `json:"description"`
UnitPrice int64 `json:"unit_price"`
UnitTime string `json:"unit_time"`
Discount []SubscribeDiscount `json:"discount"`
Replacement int64 `json:"replacement"`
Inventory int64 `json:"inventory"`
Traffic int64 `json:"traffic"`
SpeedLimit int64 `json:"speed_limit"`
DeviceLimit int64 `json:"device_limit"`
Quota int64 `json:"quota"`
GroupId int64 `json:"group_id"`
ServerGroup []int64 `json:"server_group"`
Server []int64 `json:"server"`
Show *bool `json:"show"`
Sell *bool `json:"sell"`
Sort int64 `json:"sort"`
DeductionRatio int64 `json:"deduction_ratio"`
AllowDeduction *bool `json:"allow_deduction"`
ResetCycle int64 `json:"reset_cycle"`
RenewalReset *bool `json:"renewal_reset"`
}
SubscribeSortRequest {
Sort []SortItem `json:"sort"`
}
GetSubscribeListRequest {
Page int64 `form:"page" validate:"required"`
Size int64 `form:"size" validate:"required"`
GroupId int64 `form:"group_id,omitempty"`
Search string `form:"search,omitempty"`
}
SubscribeItem {
Subscribe
Sold int64 `json:"sold"`
}
GetSubscribeListResponse {
List []SubscribeItem `json:"list"`
Total int64 `json:"total"`
}
DeleteSubscribeRequest {
Id int64 `json:"id" validate:"required"`
}
BatchDeleteSubscribeRequest {
Ids []int64 `json:"ids" validate:"required"`
}
)
@server (
prefix: v1/admin/subscribe
group: admin/subscribe
middleware: AuthMiddleware
)
service ppanel {
@doc "Create subscribe group"
@handler CreateSubscribeGroup
post /group (CreateSubscribeGroupRequest)
@doc "Update subscribe group"
@handler UpdateSubscribeGroup
put /group (UpdateSubscribeGroupRequest)
@doc "Get subscribe group list"
@handler GetSubscribeGroupList
get /group/list returns (GetSubscribeGroupListResponse)
@doc "Delete subscribe group"
@handler DeleteSubscribeGroup
delete /group (DeleteSubscribeGroupRequest)
@doc "Batch delete subscribe group"
@handler BatchDeleteSubscribeGroup
delete /group/batch (BatchDeleteSubscribeGroupRequest)
@doc "Create subscribe"
@handler CreateSubscribe
post / (CreateSubscribeRequest)
@doc "Update subscribe"
@handler UpdateSubscribe
put / (UpdateSubscribeRequest)
@doc "Get subscribe list"
@handler GetSubscribeList
get /list (GetSubscribeListRequest) returns (GetSubscribeListResponse)
@doc "Delete subscribe"
@handler DeleteSubscribe
delete / (DeleteSubscribeRequest)
@doc "Batch delete subscribe"
@handler BatchDeleteSubscribe
delete /batch (BatchDeleteSubscribeRequest)
@doc "Get subscribe details"
@handler GetSubscribeDetails
get /details (GetSubscribeDetailsRequest) returns (Subscribe)
@doc "Subscribe sort"
@handler SubscribeSort
post /sort (SubscribeSortRequest)
}