♻️ refactor: Refactor server management API endpoints and typings
This commit is contained in:
@@ -2,6 +2,87 @@
|
||||
/* eslint-disable */
|
||||
import request from '@/utils/request';
|
||||
|
||||
/** Filter balance log GET /v1/admin/log/balance/list */
|
||||
export async function filterBalanceLog(
|
||||
// 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
|
||||
params: API.FilterBalanceLogParams,
|
||||
options?: { [key: string]: any },
|
||||
) {
|
||||
return request<API.Response & { data?: API.FilterBalanceLogResponse }>(
|
||||
'/v1/admin/log/balance/list',
|
||||
{
|
||||
method: 'GET',
|
||||
params: {
|
||||
...params,
|
||||
},
|
||||
...(options || {}),
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
/** Filter commission log GET /v1/admin/log/commission/list */
|
||||
export async function filterCommissionLog(
|
||||
// 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
|
||||
params: API.FilterCommissionLogParams,
|
||||
options?: { [key: string]: any },
|
||||
) {
|
||||
return request<API.Response & { data?: API.FilterCommissionLogResponse }>(
|
||||
'/v1/admin/log/commission/list',
|
||||
{
|
||||
method: 'GET',
|
||||
params: {
|
||||
...params,
|
||||
},
|
||||
...(options || {}),
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
/** Filter email log GET /v1/admin/log/email/list */
|
||||
export async function filterEmailLog(
|
||||
// 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
|
||||
params: API.FilterEmailLogParams,
|
||||
options?: { [key: string]: any },
|
||||
) {
|
||||
return request<API.Response & { data?: API.FilterEmailLogResponse }>('/v1/admin/log/email/list', {
|
||||
method: 'GET',
|
||||
params: {
|
||||
...params,
|
||||
},
|
||||
...(options || {}),
|
||||
});
|
||||
}
|
||||
|
||||
/** Filter gift log GET /v1/admin/log/gift/list */
|
||||
export async function filterGiftLog(
|
||||
// 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
|
||||
params: API.FilterGiftLogParams,
|
||||
options?: { [key: string]: any },
|
||||
) {
|
||||
return request<API.Response & { data?: API.FilterGiftLogResponse }>('/v1/admin/log/gift/list', {
|
||||
method: 'GET',
|
||||
params: {
|
||||
...params,
|
||||
},
|
||||
...(options || {}),
|
||||
});
|
||||
}
|
||||
|
||||
/** Filter login log GET /v1/admin/log/login/list */
|
||||
export async function filterLoginLog(
|
||||
// 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
|
||||
params: API.FilterLoginLogParams,
|
||||
options?: { [key: string]: any },
|
||||
) {
|
||||
return request<API.Response & { data?: API.FilterLoginLogResponse }>('/v1/admin/log/login/list', {
|
||||
method: 'GET',
|
||||
params: {
|
||||
...params,
|
||||
},
|
||||
...(options || {}),
|
||||
});
|
||||
}
|
||||
|
||||
/** Get message log list GET /v1/admin/log/message/list */
|
||||
export async function getMessageLogList(
|
||||
// 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
|
||||
@@ -19,3 +100,129 @@ export async function getMessageLogList(
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
/** Filter mobile log GET /v1/admin/log/mobile/list */
|
||||
export async function filterMobileLog(
|
||||
// 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
|
||||
params: API.FilterMobileLogParams,
|
||||
options?: { [key: string]: any },
|
||||
) {
|
||||
return request<API.Response & { data?: API.FilterMobileLogResponse }>(
|
||||
'/v1/admin/log/mobile/list',
|
||||
{
|
||||
method: 'GET',
|
||||
params: {
|
||||
...params,
|
||||
},
|
||||
...(options || {}),
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
/** Filter register log GET /v1/admin/log/register/list */
|
||||
export async function filterRegisterLog(
|
||||
// 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
|
||||
params: API.FilterRegisterLogParams,
|
||||
options?: { [key: string]: any },
|
||||
) {
|
||||
return request<API.Response & { data?: API.FilterRegisterLogResponse }>(
|
||||
'/v1/admin/log/register/list',
|
||||
{
|
||||
method: 'GET',
|
||||
params: {
|
||||
...params,
|
||||
},
|
||||
...(options || {}),
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
/** Filter server traffic log GET /v1/admin/log/server/traffic/list */
|
||||
export async function filterServerTrafficLog(
|
||||
// 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
|
||||
params: API.FilterServerTrafficLogParams,
|
||||
options?: { [key: string]: any },
|
||||
) {
|
||||
return request<API.Response & { data?: API.FilterServerTrafficLogResponse }>(
|
||||
'/v1/admin/log/server/traffic/list',
|
||||
{
|
||||
method: 'GET',
|
||||
params: {
|
||||
...params,
|
||||
},
|
||||
...(options || {}),
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
/** Filter subscribe log GET /v1/admin/log/subscribe/list */
|
||||
export async function filterSubscribeLog(
|
||||
// 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
|
||||
params: API.FilterSubscribeLogParams,
|
||||
options?: { [key: string]: any },
|
||||
) {
|
||||
return request<API.Response & { data?: API.FilterSubscribeLogResponse }>(
|
||||
'/v1/admin/log/subscribe/list',
|
||||
{
|
||||
method: 'GET',
|
||||
params: {
|
||||
...params,
|
||||
},
|
||||
...(options || {}),
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
/** Filter reset subscribe log GET /v1/admin/log/subscribe/reset/list */
|
||||
export async function filterResetSubscribeLog(
|
||||
// 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
|
||||
params: API.FilterResetSubscribeLogParams,
|
||||
options?: { [key: string]: any },
|
||||
) {
|
||||
return request<API.Response & { data?: API.FilterResetSubscribeLogResponse }>(
|
||||
'/v1/admin/log/subscribe/reset/list',
|
||||
{
|
||||
method: 'GET',
|
||||
params: {
|
||||
...params,
|
||||
},
|
||||
...(options || {}),
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
/** Filter user subscribe traffic log GET /v1/admin/log/subscribe/traffic/list */
|
||||
export async function filterUserSubscribeTrafficLog(
|
||||
// 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
|
||||
params: API.FilterUserSubscribeTrafficLogParams,
|
||||
options?: { [key: string]: any },
|
||||
) {
|
||||
return request<API.Response & { data?: API.FilterSubscribeTrafficResponse }>(
|
||||
'/v1/admin/log/subscribe/traffic/list',
|
||||
{
|
||||
method: 'GET',
|
||||
params: {
|
||||
...params,
|
||||
},
|
||||
...(options || {}),
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
/** Filter traffic log details GET /v1/admin/log/traffic/details */
|
||||
export async function filterTrafficLogDetails(
|
||||
// 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
|
||||
params: API.FilterTrafficLogDetailsParams,
|
||||
options?: { [key: string]: any },
|
||||
) {
|
||||
return request<API.Response & { data?: API.FilterTrafficLogDetailsResponse }>(
|
||||
'/v1/admin/log/traffic/details',
|
||||
{
|
||||
method: 'GET',
|
||||
params: {
|
||||
...params,
|
||||
},
|
||||
...(options || {}),
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
+100
-162
@@ -2,10 +2,13 @@
|
||||
/* eslint-disable */
|
||||
import request from '@/utils/request';
|
||||
|
||||
/** Update node PUT /v1/admin/server/ */
|
||||
export async function updateNode(body: API.UpdateNodeRequest, options?: { [key: string]: any }) {
|
||||
return request<API.Response & { data?: any }>('/v1/admin/server/', {
|
||||
method: 'PUT',
|
||||
/** Create Server POST /v1/admin/server/create */
|
||||
export async function createServer(
|
||||
body: API.CreateServerRequest,
|
||||
options?: { [key: string]: any },
|
||||
) {
|
||||
return request<API.Response & { data?: any }>('/v1/admin/server/create', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
@@ -14,9 +17,61 @@ export async function updateNode(body: API.UpdateNodeRequest, options?: { [key:
|
||||
});
|
||||
}
|
||||
|
||||
/** Create node POST /v1/admin/server/ */
|
||||
/** Delete Server POST /v1/admin/server/delete */
|
||||
export async function deleteServer(
|
||||
body: API.DeleteServerRequest,
|
||||
options?: { [key: string]: any },
|
||||
) {
|
||||
return request<API.Response & { data?: any }>('/v1/admin/server/delete', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
data: body,
|
||||
...(options || {}),
|
||||
});
|
||||
}
|
||||
|
||||
/** Filter Server List GET /v1/admin/server/list */
|
||||
export async function filterServerList(
|
||||
// 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
|
||||
params: API.FilterServerListParams,
|
||||
options?: { [key: string]: any },
|
||||
) {
|
||||
return request<API.Response & { data?: API.FilterServerListResponse }>('/v1/admin/server/list', {
|
||||
method: 'GET',
|
||||
params: {
|
||||
...params,
|
||||
},
|
||||
...(options || {}),
|
||||
});
|
||||
}
|
||||
|
||||
/** Check if there is any server or node to migrate GET /v1/admin/server/migrate/has */
|
||||
export async function hasMigrateSeverNode(options?: { [key: string]: any }) {
|
||||
return request<API.Response & { data?: API.HasMigrateSeverNodeResponse }>(
|
||||
'/v1/admin/server/migrate/has',
|
||||
{
|
||||
method: 'GET',
|
||||
...(options || {}),
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
/** Migrate server and node data to new database POST /v1/admin/server/migrate/run */
|
||||
export async function migrateServerNode(options?: { [key: string]: any }) {
|
||||
return request<API.Response & { data?: API.MigrateServerNodeResponse }>(
|
||||
'/v1/admin/server/migrate/run',
|
||||
{
|
||||
method: 'POST',
|
||||
...(options || {}),
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
/** Create Node POST /v1/admin/server/node/create */
|
||||
export async function createNode(body: API.CreateNodeRequest, options?: { [key: string]: any }) {
|
||||
return request<API.Response & { data?: any }>('/v1/admin/server/', {
|
||||
return request<API.Response & { data?: any }>('/v1/admin/server/node/create', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
@@ -26,10 +81,10 @@ export async function createNode(body: API.CreateNodeRequest, options?: { [key:
|
||||
});
|
||||
}
|
||||
|
||||
/** Delete node DELETE /v1/admin/server/ */
|
||||
/** Delete Node POST /v1/admin/server/node/delete */
|
||||
export async function deleteNode(body: API.DeleteNodeRequest, options?: { [key: string]: any }) {
|
||||
return request<API.Response & { data?: any }>('/v1/admin/server/', {
|
||||
method: 'DELETE',
|
||||
return request<API.Response & { data?: any }>('/v1/admin/server/node/delete', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
@@ -38,57 +93,30 @@ export async function deleteNode(body: API.DeleteNodeRequest, options?: { [key:
|
||||
});
|
||||
}
|
||||
|
||||
/** Batch delete node DELETE /v1/admin/server/batch */
|
||||
export async function batchDeleteNode(
|
||||
body: API.BatchDeleteNodeRequest,
|
||||
options?: { [key: string]: any },
|
||||
) {
|
||||
return request<API.Response & { data?: any }>('/v1/admin/server/batch', {
|
||||
method: 'DELETE',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
data: body,
|
||||
...(options || {}),
|
||||
});
|
||||
}
|
||||
|
||||
/** Get node detail GET /v1/admin/server/detail */
|
||||
export async function getNodeDetail(
|
||||
/** Filter Node List GET /v1/admin/server/node/list */
|
||||
export async function filterNodeList(
|
||||
// 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
|
||||
params: API.GetNodeDetailParams,
|
||||
params: API.FilterNodeListParams,
|
||||
options?: { [key: string]: any },
|
||||
) {
|
||||
return request<API.Response & { data?: API.Server }>('/v1/admin/server/detail', {
|
||||
method: 'GET',
|
||||
params: {
|
||||
...params,
|
||||
return request<API.Response & { data?: API.FilterNodeListResponse }>(
|
||||
'/v1/admin/server/node/list',
|
||||
{
|
||||
method: 'GET',
|
||||
params: {
|
||||
...params,
|
||||
},
|
||||
...(options || {}),
|
||||
},
|
||||
...(options || {}),
|
||||
});
|
||||
);
|
||||
}
|
||||
|
||||
/** Update node group PUT /v1/admin/server/group */
|
||||
export async function updateNodeGroup(
|
||||
body: API.UpdateNodeGroupRequest,
|
||||
/** Toggle Node Status POST /v1/admin/server/node/status/toggle */
|
||||
export async function toggleNodeStatus(
|
||||
body: API.ToggleNodeStatusRequest,
|
||||
options?: { [key: string]: any },
|
||||
) {
|
||||
return request<API.Response & { data?: any }>('/v1/admin/server/group', {
|
||||
method: 'PUT',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
data: body,
|
||||
...(options || {}),
|
||||
});
|
||||
}
|
||||
|
||||
/** Create node group POST /v1/admin/server/group */
|
||||
export async function createNodeGroup(
|
||||
body: API.CreateNodeGroupRequest,
|
||||
options?: { [key: string]: any },
|
||||
) {
|
||||
return request<API.Response & { data?: any }>('/v1/admin/server/group', {
|
||||
return request<API.Response & { data?: any }>('/v1/admin/server/node/status/toggle', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
@@ -98,13 +126,10 @@ export async function createNodeGroup(
|
||||
});
|
||||
}
|
||||
|
||||
/** Delete node group DELETE /v1/admin/server/group */
|
||||
export async function deleteNodeGroup(
|
||||
body: API.DeleteNodeGroupRequest,
|
||||
options?: { [key: string]: any },
|
||||
) {
|
||||
return request<API.Response & { data?: any }>('/v1/admin/server/group', {
|
||||
method: 'DELETE',
|
||||
/** Update Node POST /v1/admin/server/node/update */
|
||||
export async function updateNode(body: API.UpdateNodeRequest, options?: { [key: string]: any }) {
|
||||
return request<API.Response & { data?: any }>('/v1/admin/server/node/update', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
@@ -113,68 +138,30 @@ export async function deleteNodeGroup(
|
||||
});
|
||||
}
|
||||
|
||||
/** Batch delete node group DELETE /v1/admin/server/group/batch */
|
||||
export async function batchDeleteNodeGroup(
|
||||
body: API.BatchDeleteNodeGroupRequest,
|
||||
options?: { [key: string]: any },
|
||||
) {
|
||||
return request<API.Response & { data?: any }>('/v1/admin/server/group/batch', {
|
||||
method: 'DELETE',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
data: body,
|
||||
...(options || {}),
|
||||
});
|
||||
}
|
||||
|
||||
/** Get node group list GET /v1/admin/server/group/list */
|
||||
export async function getNodeGroupList(options?: { [key: string]: any }) {
|
||||
return request<API.Response & { data?: API.GetNodeGroupListResponse }>(
|
||||
'/v1/admin/server/group/list',
|
||||
{
|
||||
method: 'GET',
|
||||
...(options || {}),
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
/** Get node list GET /v1/admin/server/list */
|
||||
export async function getNodeList(
|
||||
/** Get Server Protocols GET /v1/admin/server/protocols */
|
||||
export async function getServerProtocols(
|
||||
// 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
|
||||
params: API.GetNodeListParams,
|
||||
params: API.GetServerProtocolsParams,
|
||||
options?: { [key: string]: any },
|
||||
) {
|
||||
return request<API.Response & { data?: API.GetNodeServerListResponse }>('/v1/admin/server/list', {
|
||||
method: 'GET',
|
||||
params: {
|
||||
...params,
|
||||
return request<API.Response & { data?: API.GetServerProtocolsResponse }>(
|
||||
'/v1/admin/server/protocols',
|
||||
{
|
||||
method: 'GET',
|
||||
params: {
|
||||
...params,
|
||||
},
|
||||
...(options || {}),
|
||||
},
|
||||
...(options || {}),
|
||||
});
|
||||
);
|
||||
}
|
||||
|
||||
/** Update rule group PUT /v1/admin/server/rule_group */
|
||||
export async function updateRuleGroup(
|
||||
body: API.UpdateRuleGroupRequest,
|
||||
/** Update Server POST /v1/admin/server/update */
|
||||
export async function updateServer(
|
||||
body: API.UpdateServerRequest,
|
||||
options?: { [key: string]: any },
|
||||
) {
|
||||
return request<API.Response & { data?: any }>('/v1/admin/server/rule_group', {
|
||||
method: 'PUT',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
data: body,
|
||||
...(options || {}),
|
||||
});
|
||||
}
|
||||
|
||||
/** Create rule group POST /v1/admin/server/rule_group */
|
||||
export async function createRuleGroup(
|
||||
body: API.CreateRuleGroupRequest,
|
||||
options?: { [key: string]: any },
|
||||
) {
|
||||
return request<API.Response & { data?: any }>('/v1/admin/server/rule_group', {
|
||||
return request<API.Response & { data?: any }>('/v1/admin/server/update', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
@@ -183,52 +170,3 @@ export async function createRuleGroup(
|
||||
...(options || {}),
|
||||
});
|
||||
}
|
||||
|
||||
/** Delete rule group DELETE /v1/admin/server/rule_group */
|
||||
export async function deleteRuleGroup(
|
||||
body: API.DeleteRuleGroupRequest,
|
||||
options?: { [key: string]: any },
|
||||
) {
|
||||
return request<API.Response & { data?: any }>('/v1/admin/server/rule_group', {
|
||||
method: 'DELETE',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
data: body,
|
||||
...(options || {}),
|
||||
});
|
||||
}
|
||||
|
||||
/** Get rule group list GET /v1/admin/server/rule_group_list */
|
||||
export async function getRuleGroupList(options?: { [key: string]: any }) {
|
||||
return request<API.Response & { data?: API.GetRuleGroupResponse }>(
|
||||
'/v1/admin/server/rule_group_list',
|
||||
{
|
||||
method: 'GET',
|
||||
...(options || {}),
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
/** Node sort POST /v1/admin/server/sort */
|
||||
export async function nodeSort(body: API.NodeSortRequest, options?: { [key: string]: any }) {
|
||||
return request<API.Response & { data?: any }>('/v1/admin/server/sort', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
data: body,
|
||||
...(options || {}),
|
||||
});
|
||||
}
|
||||
|
||||
/** Get node tag list GET /v1/admin/server/tag/list */
|
||||
export async function getNodeTagList(options?: { [key: string]: any }) {
|
||||
return request<API.Response & { data?: API.GetNodeTagListResponse }>(
|
||||
'/v1/admin/server/tag/list',
|
||||
{
|
||||
method: 'GET',
|
||||
...(options || {}),
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
+508
-151
@@ -118,6 +118,15 @@ declare namespace API {
|
||||
enabled: boolean;
|
||||
};
|
||||
|
||||
type BalanceLog = {
|
||||
type: number;
|
||||
user_id: number;
|
||||
amount: number;
|
||||
order_id?: number;
|
||||
balance: number;
|
||||
timestamp: number;
|
||||
};
|
||||
|
||||
type BatchDeleteCouponRequest = {
|
||||
ids: number[];
|
||||
};
|
||||
@@ -126,14 +135,6 @@ declare namespace API {
|
||||
ids: number[];
|
||||
};
|
||||
|
||||
type BatchDeleteNodeGroupRequest = {
|
||||
ids: number[];
|
||||
};
|
||||
|
||||
type BatchDeleteNodeRequest = {
|
||||
ids: number[];
|
||||
};
|
||||
|
||||
type BatchDeleteSubscribeGroupRequest = {
|
||||
ids: number[];
|
||||
};
|
||||
@@ -181,6 +182,14 @@ declare namespace API {
|
||||
orderNo: string;
|
||||
};
|
||||
|
||||
type CommissionLog = {
|
||||
type: number;
|
||||
user_id: number;
|
||||
amount: number;
|
||||
order_no: string;
|
||||
created_at: number;
|
||||
};
|
||||
|
||||
type Coupon = {
|
||||
id: number;
|
||||
name: string;
|
||||
@@ -247,26 +256,14 @@ declare namespace API {
|
||||
show: boolean;
|
||||
};
|
||||
|
||||
type CreateNodeGroupRequest = {
|
||||
name: string;
|
||||
description: string;
|
||||
};
|
||||
|
||||
type CreateNodeRequest = {
|
||||
name: string;
|
||||
tags: string[];
|
||||
country: string;
|
||||
city: string;
|
||||
server_addr: string;
|
||||
relay_mode: string;
|
||||
relay_node: NodeRelay[];
|
||||
speed_limit: number;
|
||||
traffic_ratio: number;
|
||||
group_id: number;
|
||||
tags?: string[];
|
||||
port: number;
|
||||
address: string;
|
||||
server_id: number;
|
||||
protocol: string;
|
||||
config: Record<string, any>;
|
||||
enable: boolean;
|
||||
sort: number;
|
||||
enabled: boolean;
|
||||
};
|
||||
|
||||
type CreateOrderRequest = {
|
||||
@@ -299,14 +296,14 @@ declare namespace API {
|
||||
enable: boolean;
|
||||
};
|
||||
|
||||
type CreateRuleGroupRequest = {
|
||||
type CreateServerRequest = {
|
||||
name: string;
|
||||
icon: string;
|
||||
type: string;
|
||||
tags: string[];
|
||||
rules: string;
|
||||
default: boolean;
|
||||
enable: boolean;
|
||||
country?: string;
|
||||
city?: string;
|
||||
ratio: number;
|
||||
address: string;
|
||||
sort?: number;
|
||||
protocols: Protocol[];
|
||||
};
|
||||
|
||||
type CreateSubscribeApplicationRequest = {
|
||||
@@ -339,8 +336,8 @@ declare namespace API {
|
||||
device_limit: number;
|
||||
quota: number;
|
||||
group_id: number;
|
||||
server_group: number[];
|
||||
server: number[];
|
||||
nodes: number[];
|
||||
node_tags: string[];
|
||||
show: boolean;
|
||||
sell: boolean;
|
||||
deduction_ratio: number;
|
||||
@@ -406,10 +403,6 @@ declare namespace API {
|
||||
id: number;
|
||||
};
|
||||
|
||||
type DeleteNodeGroupRequest = {
|
||||
id: number;
|
||||
};
|
||||
|
||||
type DeleteNodeRequest = {
|
||||
id: number;
|
||||
};
|
||||
@@ -418,7 +411,7 @@ declare namespace API {
|
||||
id: number;
|
||||
};
|
||||
|
||||
type DeleteRuleGroupRequest = {
|
||||
type DeleteServerRequest = {
|
||||
id: number;
|
||||
};
|
||||
|
||||
@@ -490,6 +483,287 @@ declare namespace API {
|
||||
sign_type: string;
|
||||
};
|
||||
|
||||
type FilterBalanceLogParams = {
|
||||
page: number;
|
||||
size: number;
|
||||
date?: string;
|
||||
search?: string;
|
||||
user_id?: number;
|
||||
};
|
||||
|
||||
type FilterBalanceLogRequest = {
|
||||
page?: number;
|
||||
size?: number;
|
||||
date?: string;
|
||||
search?: string;
|
||||
user_id?: number;
|
||||
};
|
||||
|
||||
type FilterBalanceLogResponse = {
|
||||
total: number;
|
||||
list: BalanceLog[];
|
||||
};
|
||||
|
||||
type FilterCommissionLogParams = {
|
||||
page: number;
|
||||
size: number;
|
||||
date?: string;
|
||||
search?: string;
|
||||
user_id?: number;
|
||||
};
|
||||
|
||||
type FilterCommissionLogRequest = {
|
||||
page?: number;
|
||||
size?: number;
|
||||
date?: string;
|
||||
search?: string;
|
||||
user_id?: number;
|
||||
};
|
||||
|
||||
type FilterCommissionLogResponse = {
|
||||
total: number;
|
||||
list: CommissionLog[];
|
||||
};
|
||||
|
||||
type FilterEmailLogParams = {
|
||||
page: number;
|
||||
size: number;
|
||||
date?: string;
|
||||
search?: string;
|
||||
};
|
||||
|
||||
type FilterEmailLogResponse = {
|
||||
total: number;
|
||||
list: MessageLog[];
|
||||
};
|
||||
|
||||
type FilterGiftLogParams = {
|
||||
page: number;
|
||||
size: number;
|
||||
date?: string;
|
||||
search?: string;
|
||||
user_id?: number;
|
||||
};
|
||||
|
||||
type FilterGiftLogRequest = {
|
||||
page?: number;
|
||||
size?: number;
|
||||
date?: string;
|
||||
search?: string;
|
||||
user_id?: number;
|
||||
};
|
||||
|
||||
type FilterGiftLogResponse = {
|
||||
total: number;
|
||||
list: GiftLog[];
|
||||
};
|
||||
|
||||
type FilterLoginLogParams = {
|
||||
page: number;
|
||||
size: number;
|
||||
date?: string;
|
||||
search?: string;
|
||||
user_id?: number;
|
||||
};
|
||||
|
||||
type FilterLoginLogRequest = {
|
||||
page?: number;
|
||||
size?: number;
|
||||
date?: string;
|
||||
search?: string;
|
||||
user_id?: number;
|
||||
};
|
||||
|
||||
type FilterLoginLogResponse = {
|
||||
total: number;
|
||||
list: LoginLog[];
|
||||
};
|
||||
|
||||
type FilterLogParams = {
|
||||
page: number;
|
||||
size: number;
|
||||
date?: string;
|
||||
search?: string;
|
||||
};
|
||||
|
||||
type FilterMobileLogParams = {
|
||||
page: number;
|
||||
size: number;
|
||||
date?: string;
|
||||
search?: string;
|
||||
};
|
||||
|
||||
type FilterMobileLogResponse = {
|
||||
total: number;
|
||||
list: MessageLog[];
|
||||
};
|
||||
|
||||
type FilterNodeListParams = {
|
||||
page: number;
|
||||
size: number;
|
||||
search?: string;
|
||||
};
|
||||
|
||||
type FilterNodeListRequest = {
|
||||
page: number;
|
||||
size: number;
|
||||
search?: string;
|
||||
};
|
||||
|
||||
type FilterNodeListResponse = {
|
||||
total: number;
|
||||
list: Node[];
|
||||
};
|
||||
|
||||
type FilterRegisterLogParams = {
|
||||
page: number;
|
||||
size: number;
|
||||
date?: string;
|
||||
search?: string;
|
||||
user_id?: number;
|
||||
};
|
||||
|
||||
type FilterRegisterLogRequest = {
|
||||
page?: number;
|
||||
size?: number;
|
||||
date?: string;
|
||||
search?: string;
|
||||
user_id?: number;
|
||||
};
|
||||
|
||||
type FilterRegisterLogResponse = {
|
||||
total: number;
|
||||
list: RegisterLog[];
|
||||
};
|
||||
|
||||
type FilterResetSubscribeLogParams = {
|
||||
page: number;
|
||||
size: number;
|
||||
date?: string;
|
||||
search?: string;
|
||||
user_subscribe_id?: number;
|
||||
};
|
||||
|
||||
type FilterResetSubscribeLogRequest = {
|
||||
page?: number;
|
||||
size?: number;
|
||||
date?: string;
|
||||
search?: string;
|
||||
user_subscribe_id?: number;
|
||||
};
|
||||
|
||||
type FilterResetSubscribeLogResponse = {
|
||||
total: number;
|
||||
list: ResetSubscribeLog[];
|
||||
};
|
||||
|
||||
type FilterServerListParams = {
|
||||
page: number;
|
||||
size: number;
|
||||
search?: string;
|
||||
};
|
||||
|
||||
type FilterServerListRequest = {
|
||||
page: number;
|
||||
size: number;
|
||||
search?: string;
|
||||
};
|
||||
|
||||
type FilterServerListResponse = {
|
||||
total: number;
|
||||
list: Server[];
|
||||
};
|
||||
|
||||
type FilterServerTrafficLogParams = {
|
||||
page: number;
|
||||
size: number;
|
||||
date?: string;
|
||||
search?: string;
|
||||
server_id?: number;
|
||||
};
|
||||
|
||||
type FilterServerTrafficLogRequest = {
|
||||
page?: number;
|
||||
size?: number;
|
||||
date?: string;
|
||||
search?: string;
|
||||
server_id?: number;
|
||||
};
|
||||
|
||||
type FilterServerTrafficLogResponse = {
|
||||
total: number;
|
||||
list: ServerTrafficLog[];
|
||||
};
|
||||
|
||||
type FilterSubscribeLogParams = {
|
||||
page: number;
|
||||
size: number;
|
||||
date?: string;
|
||||
search?: string;
|
||||
user_id?: number;
|
||||
};
|
||||
|
||||
type FilterSubscribeLogRequest = {
|
||||
page?: number;
|
||||
size?: number;
|
||||
date?: string;
|
||||
search?: string;
|
||||
user_id?: number;
|
||||
};
|
||||
|
||||
type FilterSubscribeLogResponse = {
|
||||
total: number;
|
||||
list: SubscribeLog[];
|
||||
};
|
||||
|
||||
type FilterSubscribeTrafficRequest = {
|
||||
page?: number;
|
||||
size?: number;
|
||||
date?: string;
|
||||
search?: string;
|
||||
user_id?: number;
|
||||
user_subscribe_id?: number;
|
||||
};
|
||||
|
||||
type FilterSubscribeTrafficResponse = {
|
||||
total: number;
|
||||
list: UserSubscribeTrafficLog[];
|
||||
};
|
||||
|
||||
type FilterTrafficLogDetailsParams = {
|
||||
page: number;
|
||||
size: number;
|
||||
date?: string;
|
||||
search?: string;
|
||||
server_id?: number;
|
||||
subscribe_id?: number;
|
||||
user_id?: number;
|
||||
};
|
||||
|
||||
type FilterTrafficLogDetailsRequest = {
|
||||
page?: number;
|
||||
size?: number;
|
||||
date?: string;
|
||||
search?: string;
|
||||
server_id?: number;
|
||||
subscribe_id?: number;
|
||||
user_id?: number;
|
||||
};
|
||||
|
||||
type FilterTrafficLogDetailsResponse = {
|
||||
total: number;
|
||||
list: TrafficLogDetails[];
|
||||
};
|
||||
|
||||
type FilterUserSubscribeTrafficLogParams = {
|
||||
page: number;
|
||||
size: number;
|
||||
date?: string;
|
||||
search?: string;
|
||||
user_id?: number;
|
||||
user_subscribe_id?: number;
|
||||
};
|
||||
|
||||
type Follow = {
|
||||
id: number;
|
||||
ticket_id: number;
|
||||
@@ -668,48 +942,10 @@ declare namespace API {
|
||||
list: MessageLog[];
|
||||
};
|
||||
|
||||
type GetNodeDetailParams = {
|
||||
id: number;
|
||||
};
|
||||
|
||||
type GetNodeDetailRequest = {
|
||||
id: number;
|
||||
};
|
||||
|
||||
type GetNodeGroupListResponse = {
|
||||
total: number;
|
||||
list: ServerGroup[];
|
||||
};
|
||||
|
||||
type GetNodeListParams = {
|
||||
page: number;
|
||||
size: number;
|
||||
tags?: string;
|
||||
group_id?: number;
|
||||
search?: string;
|
||||
};
|
||||
|
||||
type GetNodeMultiplierResponse = {
|
||||
periods: TimePeriod[];
|
||||
};
|
||||
|
||||
type GetNodeServerListRequest = {
|
||||
page: number;
|
||||
size: number;
|
||||
tags?: string;
|
||||
group_id?: number;
|
||||
search?: string;
|
||||
};
|
||||
|
||||
type GetNodeServerListResponse = {
|
||||
total: number;
|
||||
list: Server[];
|
||||
};
|
||||
|
||||
type GetNodeTagListResponse = {
|
||||
tags: string[];
|
||||
};
|
||||
|
||||
type GetOrderListParams = {
|
||||
page: number;
|
||||
size: number;
|
||||
@@ -764,9 +1000,16 @@ declare namespace API {
|
||||
count: number;
|
||||
};
|
||||
|
||||
type GetRuleGroupResponse = {
|
||||
total: number;
|
||||
list: ServerRuleGroup[];
|
||||
type GetServerProtocolsParams = {
|
||||
id: number;
|
||||
};
|
||||
|
||||
type GetServerProtocolsRequest = {
|
||||
id: number;
|
||||
};
|
||||
|
||||
type GetServerProtocolsResponse = {
|
||||
protocols: Protocol[];
|
||||
};
|
||||
|
||||
type GetSubscribeApplicationListParams = {
|
||||
@@ -1000,6 +1243,21 @@ declare namespace API {
|
||||
total: number;
|
||||
};
|
||||
|
||||
type GiftLog = {
|
||||
type: number;
|
||||
user_id: number;
|
||||
order_no: string;
|
||||
subscribe_id: number;
|
||||
amount: number;
|
||||
balance: number;
|
||||
remark?: string;
|
||||
created_at: number;
|
||||
};
|
||||
|
||||
type HasMigrateSeverNodeResponse = {
|
||||
has_migrate: boolean;
|
||||
};
|
||||
|
||||
type Hysteria2 = {
|
||||
port: number;
|
||||
hop_ports: string;
|
||||
@@ -1018,6 +1276,15 @@ declare namespace API {
|
||||
id: number;
|
||||
};
|
||||
|
||||
type LoginLog = {
|
||||
user_id: number;
|
||||
method: string;
|
||||
login_ip: string;
|
||||
user_agent: string;
|
||||
success: boolean;
|
||||
login_time: number;
|
||||
};
|
||||
|
||||
type LogResponse = {
|
||||
list: Record<string, any>;
|
||||
};
|
||||
@@ -1033,12 +1300,31 @@ declare namespace API {
|
||||
created_at: number;
|
||||
};
|
||||
|
||||
type MigrateServerNodeResponse = {
|
||||
succee: number;
|
||||
fail: number;
|
||||
message?: string;
|
||||
};
|
||||
|
||||
type MobileAuthenticateConfig = {
|
||||
enable: boolean;
|
||||
enable_whitelist: boolean;
|
||||
whitelist: string[];
|
||||
};
|
||||
|
||||
type Node = {
|
||||
id: number;
|
||||
name: string;
|
||||
tags: string[];
|
||||
port: number;
|
||||
address: string;
|
||||
server_id: number;
|
||||
protocol: string;
|
||||
enabled: boolean;
|
||||
created_at: number;
|
||||
updated_at: number;
|
||||
};
|
||||
|
||||
type NodeConfig = {
|
||||
node_secret: string;
|
||||
node_pull_interval: number;
|
||||
@@ -1051,23 +1337,6 @@ declare namespace API {
|
||||
prefix: string;
|
||||
};
|
||||
|
||||
type NodeSortRequest = {
|
||||
sort: SortItem[];
|
||||
};
|
||||
|
||||
type NodeStatus = {
|
||||
online: Record<string, any>;
|
||||
cpu: number;
|
||||
mem: number;
|
||||
disk: number;
|
||||
updated_at: number;
|
||||
};
|
||||
|
||||
type OnlineUser = {
|
||||
uid: number;
|
||||
ip: string;
|
||||
};
|
||||
|
||||
type Order = {
|
||||
id: number;
|
||||
user_id: number;
|
||||
@@ -1203,6 +1472,34 @@ declare namespace API {
|
||||
privacy_policy: string;
|
||||
};
|
||||
|
||||
type Protocol = {
|
||||
type: string;
|
||||
port: number;
|
||||
security?: string;
|
||||
sni?: string;
|
||||
allow_insecure?: boolean;
|
||||
fingerprint?: string;
|
||||
reality_server_addr?: string;
|
||||
reality_server_port?: number;
|
||||
reality_private_key?: string;
|
||||
reality_public_key?: string;
|
||||
reality_short_id?: string;
|
||||
transport?: string;
|
||||
host?: string;
|
||||
path?: string;
|
||||
service_name?: string;
|
||||
cipher?: string;
|
||||
server_key?: string;
|
||||
flow?: string;
|
||||
hop_ports?: string;
|
||||
hop_interval?: number;
|
||||
obfs_password?: string;
|
||||
disable_sni?: boolean;
|
||||
reduce_rtt?: boolean;
|
||||
udp_relay_mode?: string;
|
||||
congestion_controller?: string;
|
||||
};
|
||||
|
||||
type PubilcRegisterConfig = {
|
||||
stop_register: boolean;
|
||||
enable_ip_register_limit: boolean;
|
||||
@@ -1305,6 +1602,15 @@ declare namespace API {
|
||||
ip_register_limit_duration: number;
|
||||
};
|
||||
|
||||
type RegisterLog = {
|
||||
user_id: number;
|
||||
auth_method: string;
|
||||
identifier: string;
|
||||
register_ip: string;
|
||||
user_agent: string;
|
||||
register_time: number;
|
||||
};
|
||||
|
||||
type RenewalOrderRequest = {
|
||||
user_subscribe_id: number;
|
||||
quantity: number;
|
||||
@@ -1316,6 +1622,14 @@ declare namespace API {
|
||||
order_no: string;
|
||||
};
|
||||
|
||||
type ResetSubscribeLog = {
|
||||
type: number;
|
||||
user_id: number;
|
||||
user_subscribe_id: number;
|
||||
order_no?: string;
|
||||
reset_at: number;
|
||||
};
|
||||
|
||||
type ResetSubscribeTrafficLog = {
|
||||
id: number;
|
||||
type: number;
|
||||
@@ -1361,23 +1675,17 @@ declare namespace API {
|
||||
|
||||
type Server = {
|
||||
id: number;
|
||||
tags: string[];
|
||||
name: string;
|
||||
country: string;
|
||||
city: string;
|
||||
name: string;
|
||||
server_addr: string;
|
||||
relay_mode: string;
|
||||
relay_node: NodeRelay[];
|
||||
speed_limit: number;
|
||||
traffic_ratio: number;
|
||||
group_id: number;
|
||||
protocol: string;
|
||||
config: Record<string, any>;
|
||||
enable: boolean;
|
||||
ratio: number;
|
||||
address: string;
|
||||
sort: number;
|
||||
protocols: Protocol[];
|
||||
last_reported_at: number;
|
||||
status: ServerStatus;
|
||||
created_at: number;
|
||||
updated_at: number;
|
||||
status: NodeStatus;
|
||||
sort: number;
|
||||
};
|
||||
|
||||
type ServerGroup = {
|
||||
@@ -1388,6 +1696,15 @@ declare namespace API {
|
||||
updated_at: number;
|
||||
};
|
||||
|
||||
type ServerOnlineUser = {
|
||||
ip: string[];
|
||||
user_id: number;
|
||||
subscribe: string;
|
||||
subscribe_id: number;
|
||||
traffic: number;
|
||||
expired_at: number;
|
||||
};
|
||||
|
||||
type ServerRuleGroup = {
|
||||
id: number;
|
||||
icon: string;
|
||||
@@ -1401,6 +1718,13 @@ declare namespace API {
|
||||
updated_at: number;
|
||||
};
|
||||
|
||||
type ServerStatus = {
|
||||
online: ServerOnlineUser[];
|
||||
cpu: number;
|
||||
mem: number;
|
||||
disk: number;
|
||||
};
|
||||
|
||||
type ServerTotalDataResponse = {
|
||||
online_user_ips: number;
|
||||
online_servers: number;
|
||||
@@ -1423,6 +1747,21 @@ declare namespace API {
|
||||
download: number;
|
||||
};
|
||||
|
||||
type ServerTrafficLog = {
|
||||
/** Server ID */
|
||||
server_id: number;
|
||||
/** Upload traffic in bytes */
|
||||
upload: number;
|
||||
/** Download traffic in bytes */
|
||||
download: number;
|
||||
/** Total traffic in bytes (Upload + Download) */
|
||||
total: number;
|
||||
/** Date in YYYY-MM-DD format */
|
||||
date: string;
|
||||
/** Whether to show detailed traffic */
|
||||
details: boolean;
|
||||
};
|
||||
|
||||
type SetNodeMultiplierRequest = {
|
||||
periods: TimePeriod[];
|
||||
};
|
||||
@@ -1478,8 +1817,8 @@ declare namespace API {
|
||||
device_limit: number;
|
||||
quota: number;
|
||||
group_id: number;
|
||||
server_group: number[];
|
||||
server: number[];
|
||||
nodes: number[];
|
||||
node_tags: string[];
|
||||
show: boolean;
|
||||
sell: boolean;
|
||||
sort: number;
|
||||
@@ -1542,8 +1881,8 @@ declare namespace API {
|
||||
device_limit?: number;
|
||||
quota?: number;
|
||||
group_id?: number;
|
||||
server_group?: number[];
|
||||
server?: number[];
|
||||
nodes?: number[];
|
||||
node_tags?: string[];
|
||||
show?: boolean;
|
||||
sell?: boolean;
|
||||
sort?: number;
|
||||
@@ -1556,6 +1895,15 @@ declare namespace API {
|
||||
sold: number;
|
||||
};
|
||||
|
||||
type SubscribeLog = {
|
||||
user_id: number;
|
||||
token: string;
|
||||
user_agent: string;
|
||||
client_ip: string;
|
||||
user_subscribe_id: number;
|
||||
subscribed_at: number;
|
||||
};
|
||||
|
||||
type SubscribeSortRequest = {
|
||||
sort: SortItem[];
|
||||
};
|
||||
@@ -1601,6 +1949,11 @@ declare namespace API {
|
||||
multiplier: number;
|
||||
};
|
||||
|
||||
type ToggleNodeStatusRequest = {
|
||||
id: number;
|
||||
enable: boolean;
|
||||
};
|
||||
|
||||
type TosConfig = {
|
||||
tos_content: string;
|
||||
};
|
||||
@@ -1615,6 +1968,16 @@ declare namespace API {
|
||||
timestamp: number;
|
||||
};
|
||||
|
||||
type TrafficLogDetails = {
|
||||
id: number;
|
||||
server_id: number;
|
||||
user_id: number;
|
||||
subscribe_id: number;
|
||||
download: number;
|
||||
upload: number;
|
||||
timestamp: number;
|
||||
};
|
||||
|
||||
type TransportConfig = {
|
||||
path: string;
|
||||
host: string;
|
||||
@@ -1694,28 +2057,15 @@ declare namespace API {
|
||||
show: boolean;
|
||||
};
|
||||
|
||||
type UpdateNodeGroupRequest = {
|
||||
id: number;
|
||||
name: string;
|
||||
description: string;
|
||||
};
|
||||
|
||||
type UpdateNodeRequest = {
|
||||
id: number;
|
||||
tags: string[];
|
||||
country: string;
|
||||
city: string;
|
||||
name: string;
|
||||
server_addr: string;
|
||||
relay_mode: string;
|
||||
relay_node: NodeRelay[];
|
||||
speed_limit: number;
|
||||
traffic_ratio: number;
|
||||
group_id: number;
|
||||
tags?: string[];
|
||||
port: number;
|
||||
address: string;
|
||||
server_id: number;
|
||||
protocol: string;
|
||||
config: Record<string, any>;
|
||||
enable: boolean;
|
||||
sort: number;
|
||||
enabled: boolean;
|
||||
};
|
||||
|
||||
type UpdateOrderStatusRequest = {
|
||||
@@ -1739,15 +2089,15 @@ declare namespace API {
|
||||
enable: boolean;
|
||||
};
|
||||
|
||||
type UpdateRuleGroupRequest = {
|
||||
type UpdateServerRequest = {
|
||||
id: number;
|
||||
icon: string;
|
||||
type: string;
|
||||
name: string;
|
||||
tags: string[];
|
||||
rules: string;
|
||||
default: boolean;
|
||||
enable: boolean;
|
||||
country?: string;
|
||||
city?: string;
|
||||
ratio: number;
|
||||
address: string;
|
||||
sort?: number;
|
||||
protocols: Protocol[];
|
||||
};
|
||||
|
||||
type UpdateSubscribeApplicationRequest = {
|
||||
@@ -1783,8 +2133,8 @@ declare namespace API {
|
||||
device_limit: number;
|
||||
quota: number;
|
||||
group_id: number;
|
||||
server_group: number[];
|
||||
server: number[];
|
||||
nodes: number[];
|
||||
node_tags: string[];
|
||||
show: boolean;
|
||||
sell: boolean;
|
||||
sort: number;
|
||||
@@ -1872,16 +2222,6 @@ declare namespace API {
|
||||
verified: boolean;
|
||||
};
|
||||
|
||||
type UserBalanceLog = {
|
||||
id: number;
|
||||
user_id: number;
|
||||
amount: number;
|
||||
type: number;
|
||||
order_id: number;
|
||||
balance: number;
|
||||
created_at: number;
|
||||
};
|
||||
|
||||
type UserDevice = {
|
||||
id: number;
|
||||
ip: string;
|
||||
@@ -1964,6 +2304,23 @@ declare namespace API {
|
||||
created_at: number;
|
||||
};
|
||||
|
||||
type UserSubscribeTrafficLog = {
|
||||
/** Subscribe ID */
|
||||
subscribe_id: number;
|
||||
/** User ID */
|
||||
user_id: number;
|
||||
/** Upload traffic in bytes */
|
||||
upload: number;
|
||||
/** Download traffic in bytes */
|
||||
download: number;
|
||||
/** Total traffic in bytes (Upload + Download) */
|
||||
total: number;
|
||||
/** Date in YYYY-MM-DD format */
|
||||
date: string;
|
||||
/** Whether to show detailed traffic */
|
||||
details: boolean;
|
||||
};
|
||||
|
||||
type UserTrafficData = {
|
||||
sid: number;
|
||||
upload: number;
|
||||
|
||||
Reference in New Issue
Block a user