hi-server/apis/admin/coupon.api
2025-10-10 07:13:36 -07:00

86 lines
2.4 KiB
Plaintext

syntax = "v1"
info (
title: "coupon API"
desc: "API for ppanel"
author: "Tension"
email: "tension@ppanel.com"
version: "0.0.1"
)
import "../types.api"
type (
CreateCouponRequest {
Name string `json:"name" validate:"required"`
Code string `json:"code,omitempty"`
Count int64 `json:"count,omitempty"`
Type uint8 `json:"type" validate:"required"`
Discount int64 `json:"discount" validate:"required"`
StartTime int64 `json:"start_time" validate:"required"`
ExpireTime int64 `json:"expire_time" validate:"required"`
UserLimit int64 `json:"user_limit,omitempty"`
Subscribe []int64 `json:"subscribe,omitempty"`
UsedCount int64 `json:"used_count,omitempty"`
Enable *bool `json:"enable,omitempty"`
}
UpdateCouponRequest {
Id int64 `json:"id" validate:"required"`
Name string `json:"name" validate:"required"`
Code string `json:"code,omitempty"`
Count int64 `json:"count,omitempty"`
Type uint8 `json:"type" validate:"required"`
Discount int64 `json:"discount" validate:"required"`
StartTime int64 `json:"start_time" validate:"required"`
ExpireTime int64 `json:"expire_time" validate:"required"`
UserLimit int64 `json:"user_limit,omitempty"`
Subscribe []int64 `json:"subscribe,omitempty"`
UsedCount int64 `json:"used_count,omitempty"`
Enable *bool `json:"enable,omitempty"`
}
DeleteCouponRequest {
Id int64 `json:"id" validate:"required"`
}
BatchDeleteCouponRequest {
Ids []int64 `json:"ids" validate:"required"`
}
GetCouponListRequest {
Page int64 `form:"page" validate:"required"`
Size int64 `form:"size" validate:"required"`
Subscribe int64 `form:"subscribe,omitempty"`
Search string `form:"search,omitempty"`
}
GetCouponListResponse {
Total int64 `json:"total"`
List []Coupon `json:"list"`
}
)
@server (
prefix: v1/admin/coupon
group: admin/coupon
middleware: AuthMiddleware
)
service ppanel {
@doc "Create coupon"
@handler CreateCoupon
post / (CreateCouponRequest)
@doc "Update coupon"
@handler UpdateCoupon
put / (UpdateCouponRequest)
@doc "Delete coupon"
@handler DeleteCoupon
delete / (DeleteCouponRequest)
@doc "Batch delete coupon"
@handler BatchDeleteCoupon
delete /batch (BatchDeleteCouponRequest)
@doc "Get coupon list"
@handler GetCouponList
get /list (GetCouponListRequest) returns (GetCouponListResponse)
}