- Node group CRUD operations with traffic-based filtering - Three grouping modes: average distribution, subscription-based, and traffic-based - Automatic and manual group recalculation with history tracking - Group assignment preview before applying changes - User subscription group locking to prevent automatic reassignment - Subscribe-to-group mapping configuration - Group calculation history and detailed reports - System configuration for group management (enabled/mode/auto_create) Database: - Add node_group table for group definitions - Add group_history and group_history_detail tables for tracking - Add node_group_ids (JSON) to nodes and subscribe tables - Add node_group_id and group_locked fields to user_subscribe table - Add migration files for schema changes
34 lines
577 B
Plaintext
34 lines
577 B
Plaintext
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)
|
|
}
|
|
|