feat: 添加配置模块和更新管理员导航,优化钱包控制台加载逻辑
This commit is contained in:
146
src/api/admin-config.ts
Normal file
146
src/api/admin-config.ts
Normal file
@@ -0,0 +1,146 @@
|
||||
import { adminRequest } from "@/lib/admin-http";
|
||||
|
||||
import { API_V1_PREFIX } from "./paths";
|
||||
|
||||
import type {
|
||||
AdminPlayTypeRow,
|
||||
AdminPlayTypesData,
|
||||
ConfigVersionListData,
|
||||
OddsVersionDetail,
|
||||
PlayConfigVersionDetail,
|
||||
RiskCapVersionDetail,
|
||||
} from "@/types/api/admin-config";
|
||||
|
||||
const A = `${API_V1_PREFIX}/admin`;
|
||||
|
||||
export async function getAdminPlayTypes(): Promise<AdminPlayTypesData> {
|
||||
return adminRequest.get<AdminPlayTypesData>(`${A}/play-types`);
|
||||
}
|
||||
|
||||
export async function patchAdminPlayType(
|
||||
playCode: string,
|
||||
body: Partial<{
|
||||
is_enabled: boolean;
|
||||
sort_order: number;
|
||||
display_name_zh: string | null;
|
||||
display_name_en: string | null;
|
||||
display_name_ne: string | null;
|
||||
supports_multi_number: boolean;
|
||||
reserved_rule_json: unknown;
|
||||
}>,
|
||||
): Promise<AdminPlayTypeRow> {
|
||||
return adminRequest.patch(`${A}/play-types/${encodeURIComponent(playCode)}`, body);
|
||||
}
|
||||
|
||||
export async function getPlayConfigVersions(params?: {
|
||||
status?: string;
|
||||
page?: number;
|
||||
per_page?: number;
|
||||
}): Promise<ConfigVersionListData> {
|
||||
return adminRequest.get(`${A}/config/play-versions`, { params });
|
||||
}
|
||||
|
||||
export async function getPlayConfigVersion(id: number): Promise<PlayConfigVersionDetail> {
|
||||
return adminRequest.get(`${A}/config/play-versions/${id}`);
|
||||
}
|
||||
|
||||
export async function postPlayConfigVersion(body?: {
|
||||
reason?: string | null;
|
||||
clone_from_version_id?: number | null;
|
||||
}): Promise<PlayConfigVersionDetail> {
|
||||
return adminRequest.post(`${A}/config/play-versions`, body ?? {});
|
||||
}
|
||||
|
||||
export async function putPlayConfigItems(
|
||||
id: number,
|
||||
items: Array<{
|
||||
play_code: string;
|
||||
is_enabled?: boolean;
|
||||
min_bet_amount: number;
|
||||
max_bet_amount: number;
|
||||
display_order?: number;
|
||||
rule_text_zh?: string | null;
|
||||
rule_text_en?: string | null;
|
||||
rule_text_ne?: string | null;
|
||||
extra_config_json?: unknown;
|
||||
}>,
|
||||
): Promise<PlayConfigVersionDetail> {
|
||||
return adminRequest.put(`${A}/config/play-versions/${id}/items`, { items });
|
||||
}
|
||||
|
||||
export async function publishPlayConfigVersion(id: number): Promise<PlayConfigVersionDetail> {
|
||||
return adminRequest.post(`${A}/config/play-versions/${id}/publish`);
|
||||
}
|
||||
|
||||
export async function getOddsVersions(params?: {
|
||||
status?: string;
|
||||
page?: number;
|
||||
per_page?: number;
|
||||
}): Promise<ConfigVersionListData> {
|
||||
return adminRequest.get(`${A}/config/odds-versions`, { params });
|
||||
}
|
||||
|
||||
export async function getOddsVersion(id: number): Promise<OddsVersionDetail> {
|
||||
return adminRequest.get(`${A}/config/odds-versions/${id}`);
|
||||
}
|
||||
|
||||
export async function postOddsVersion(body?: {
|
||||
reason?: string | null;
|
||||
clone_from_version_id?: number | null;
|
||||
}): Promise<OddsVersionDetail> {
|
||||
return adminRequest.post(`${A}/config/odds-versions`, body ?? {});
|
||||
}
|
||||
|
||||
export async function putOddsItems(
|
||||
id: number,
|
||||
items: Array<{
|
||||
play_code: string;
|
||||
prize_scope: string;
|
||||
odds_value: number;
|
||||
rebate_rate?: number;
|
||||
commission_rate?: number;
|
||||
currency_code: string;
|
||||
extra_config_json?: unknown;
|
||||
}>,
|
||||
): Promise<OddsVersionDetail> {
|
||||
return adminRequest.put(`${A}/config/odds-versions/${id}/items`, { items });
|
||||
}
|
||||
|
||||
export async function publishOddsVersion(id: number): Promise<OddsVersionDetail> {
|
||||
return adminRequest.post(`${A}/config/odds-versions/${id}/publish`);
|
||||
}
|
||||
|
||||
export async function getRiskCapVersions(params?: {
|
||||
status?: string;
|
||||
page?: number;
|
||||
per_page?: number;
|
||||
}): Promise<ConfigVersionListData> {
|
||||
return adminRequest.get(`${A}/config/risk-cap-versions`, { params });
|
||||
}
|
||||
|
||||
export async function getRiskCapVersion(id: number): Promise<RiskCapVersionDetail> {
|
||||
return adminRequest.get(`${A}/config/risk-cap-versions/${id}`);
|
||||
}
|
||||
|
||||
export async function postRiskCapVersion(body?: {
|
||||
reason?: string | null;
|
||||
clone_from_version_id?: number | null;
|
||||
}): Promise<RiskCapVersionDetail> {
|
||||
return adminRequest.post(`${A}/config/risk-cap-versions`, body ?? {});
|
||||
}
|
||||
|
||||
export async function putRiskCapItems(
|
||||
id: number,
|
||||
items: Array<{
|
||||
draw_id?: number | null;
|
||||
normalized_number: string;
|
||||
cap_amount: number;
|
||||
cap_type: string;
|
||||
}>,
|
||||
): Promise<RiskCapVersionDetail> {
|
||||
return adminRequest.put(`${A}/config/risk-cap-versions/${id}/items`, { items });
|
||||
}
|
||||
|
||||
export async function publishRiskCapVersion(id: number): Promise<RiskCapVersionDetail> {
|
||||
return adminRequest.post(`${A}/config/risk-cap-versions/${id}/publish`);
|
||||
}
|
||||
Reference in New Issue
Block a user