159 lines
4.7 KiB
TypeScript
159 lines
4.7 KiB
TypeScript
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 deletePlayConfigVersion(id: number): Promise<{ deleted: boolean }> {
|
|
return adminRequest.delete(`${A}/config/play-versions/${id}`);
|
|
}
|
|
|
|
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 deleteOddsVersion(id: number): Promise<{ deleted: boolean }> {
|
|
return adminRequest.delete(`${A}/config/odds-versions/${id}`);
|
|
}
|
|
|
|
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`);
|
|
}
|
|
|
|
export async function deleteRiskCapVersion(id: number): Promise<{ deleted: boolean }> {
|
|
return adminRequest.delete(`${A}/config/risk-cap-versions/${id}`);
|
|
}
|