syntax = "v1" info ( title: "order API" desc: "API for ppanel" author: "Tension" email: "tension@ppanel.com" version: "0.0.1" ) import "../types.api" type ( CreateOrderRequest { UserId int64 `json:"user_id" validate:"required"` Type uint8 `json:"type" validate:"required"` Quantity int64 `json:"quantity,omitempty" validate:"omitempty,lte=1000"` Price int64 `json:"price" validate:"required,gte=0,lte=2000000000"` Amount int64 `json:"amount" validate:"required,gte=0,lte=2147483647"` Discount int64 `json:"discount,omitempty" validate:"omitempty,gte=0,lte=2000000000"` Coupon string `json:"coupon,omitempty"` CouponDiscount int64 `json:"coupon_discount,omitempty" validate:"omitempty,gte=0,lte=2000000000"` Commission int64 `json:"commission" validate:"gte=0,lte=2000000000"` FeeAmount int64 `json:"fee_amount" validate:"required,gte=0,lte=2000000000"` PaymentId int64 `json:"payment_id" validate:"required"` TradeNo string `json:"trade_no,omitempty"` Status uint8 `json:"status,omitempty"` SubscribeId int64 `json:"subscribe_id,omitempty"` } UpdateOrderStatusRequest { Id int64 `json:"id" validate:"required"` Status uint8 `json:"status" validate:"required"` PaymentId int64 `json:"payment_id,omitempty"` TradeNo string `json:"trade_no,omitempty"` } GetOrderListRequest { Page int64 `form:"page" validate:"required"` Size int64 `form:"size" validate:"required"` UserId int64 `form:"user_id,omitempty"` Status uint8 `form:"status,omitempty"` SubscribeId int64 `form:"subscribe_id,omitempty"` Search string `form:"search,omitempty"` } GetOrderListResponse { Total int64 `json:"total"` List []Order `json:"list"` } ) @server ( prefix: v1/admin/order group: admin/order middleware: AuthMiddleware ) service ppanel { @doc "Create order" @handler CreateOrder post / (CreateOrderRequest) @doc "Get order list" @handler GetOrderList get /list (GetOrderListRequest) returns (GetOrderListResponse) @doc "Update order status" @handler UpdateOrderStatus put /status (UpdateOrderStatusRequest) }