diff --git a/contracts/admin-openapi.json b/contracts/admin-openapi.json index b04bf4c..a75a035 100644 --- a/contracts/admin-openapi.json +++ b/contracts/admin-openapi.json @@ -622,6 +622,55 @@ "x-permissions": ["seven-day-checkin:update"] } }, + "/admin/managers": { + "get": { + "operationId": "listManagers", + "parameters": [ + { + "$ref": "#/components/parameters/Page" + }, + { + "$ref": "#/components/parameters/PageSize" + }, + { + "$ref": "#/components/parameters/Keyword" + }, + { + "$ref": "#/components/parameters/Status" + }, + { + "$ref": "#/components/parameters/RegionId" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ManagerPageResponse" + } + }, + "x-permission": "bd:view", + "x-permissions": ["bd:view"] + }, + "post": { + "operationId": "createManager", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateManagerPayload" + } + } + } + }, + "responses": { + "201": { + "$ref": "#/components/responses/ManagerResponse" + } + }, + "x-permission": "bd:create", + "x-permissions": ["bd:create"] + } + }, "/admin/agencies": { "get": { "operationId": "listAgencies", @@ -2477,6 +2526,18 @@ "x-permissions": ["payment-third-party:update"] } }, + "/admin/payment/third-party-rates/sync": { + "post": { + "operationId": "syncThirdPartyPaymentRates", + "responses": { + "200": { + "$ref": "#/components/responses/EmptyResponse" + } + }, + "x-permission": "payment-third-party:update", + "x-permissions": ["payment-third-party:update"] + } + }, "/admin/regions": { "get": { "operationId": "listRegions", @@ -4283,6 +4344,26 @@ } } }, + "ManagerPageResponse": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiResponseManagerPage" + } + } + } + }, + "ManagerResponse": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiResponseManager" + } + } + } + }, "BDProfilePageResponse": { "description": "OK", "content": { @@ -4476,6 +4557,27 @@ } } }, + "ApiPageManager": { + "type": "object", + "required": ["items", "page", "pageSize", "total"], + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Manager" + } + }, + "page": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + }, + "total": { + "type": "integer" + } + } + }, "ApiPageBDProfile": { "type": "object", "required": ["items", "page", "pageSize", "total"], @@ -4590,6 +4692,36 @@ } ] }, + "ApiResponseManagerPage": { + "allOf": [ + { + "$ref": "#/components/schemas/Envelope" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/ApiPageManager" + } + } + } + ] + }, + "ApiResponseManager": { + "allOf": [ + { + "$ref": "#/components/schemas/Envelope" + }, + { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/Manager" + } + } + } + ] + }, "ApiResponseBDProfilePage": { "allOf": [ { @@ -4908,6 +5040,62 @@ } } }, + "Manager": { + "type": "object", + "required": ["userId"], + "properties": { + "avatar": { + "type": "string" + }, + "bdLeaderCount": { + "type": "integer" + }, + "createdAtMs": { + "type": "integer" + }, + "contact": { + "type": "string" + }, + "displayUserId": { + "type": "string" + }, + "lastInvitedAtMs": { + "type": "integer" + }, + "regionId": { + "type": "integer" + }, + "regionName": { + "type": "string" + }, + "status": { + "type": "string", + "enum": ["active", "disabled"] + }, + "updatedAtMs": { + "type": "integer" + }, + "userId": { + "type": "string" + }, + "username": { + "type": "string" + } + } + }, + "CreateManagerPayload": { + "type": "object", + "required": ["targetUserId"], + "properties": { + "contact": { + "type": "string", + "maxLength": 128 + }, + "targetUserId": { + "type": "string" + } + } + }, "BDProfile": { "type": "object", "required": ["userId"], diff --git a/src/app/navigation/menu.test.jsx b/src/app/navigation/menu.test.jsx index 6fb759b..ac0af6e 100644 --- a/src/app/navigation/menu.test.jsx +++ b/src/app/navigation/menu.test.jsx @@ -34,7 +34,7 @@ describe("navigation menu helpers", () => { test("keeps only fallback menu items allowed by permissions", () => { const items = filterNavigationByPermission( fallbackNavigation, - (code) => code === "agency:view" || code === "host:view", + (code) => code === "agency:view" || code === "bd:view" || code === "host:view", ); expect(flattenCodes(items)).not.toContain("geo"); @@ -42,7 +42,8 @@ describe("navigation menu helpers", () => { expect(flattenCodes(items)).toContain("host-org-managers"); expect(flattenCodes(items)).toContain("host-org-agencies"); expect(flattenCodes(items)).toContain("host-org-hosts"); - expect(flattenCodes(items)).not.toContain("host-org-bds"); + expect(flattenCodes(items)).toContain("host-org-bd-leaders"); + expect(flattenCodes(items)).toContain("host-org-bds"); }); test("places country and region pages under geo menu", () => { @@ -77,7 +78,10 @@ describe("navigation menu helpers", () => { label: "团队管理", }, ]; - const fallbackMenus = filterNavigationByPermission(fallbackNavigation, (code) => code === "agency:view"); + const fallbackMenus = filterNavigationByPermission( + fallbackNavigation, + (code) => code === "agency:view" || code === "bd:view", + ); const merged = mergeNavigationItems(backendMenus, fallbackMenus); expect(flattenCodes(merged)).toContain("host-org-agencies"); diff --git a/src/features/host-org/api.test.ts b/src/features/host-org/api.test.ts index 755e83e..6d9a6ba 100644 --- a/src/features/host-org/api.test.ts +++ b/src/features/host-org/api.test.ts @@ -4,6 +4,7 @@ import { createBDLeader, createCountry, createCoinSeller, + createManager, createRegion, creditCoinSellerStock, debitCoinSellerStock, @@ -14,6 +15,7 @@ import { listCoinSellers, listCountries, listHosts, + listManagers, listRegions, replaceRegionCountries, setCoinSellerStatus, @@ -51,6 +53,14 @@ test("host org list APIs use generated admin paths and filters", async () => { sort_by: "salary_wallet", sort_direction: "desc", }); + await listManagers({ + keyword: "manager", + page: 1, + page_size: 10, + region_id: 7, + status: "active", + }); + await createManager({ contact: "+63", targetUserId: "1003" }); await listHosts({ agency_id: 41, page: 1, page_size: 10, sort_by: "diamond", sort_direction: "desc" }); await listCoinSellers({ page: 1, @@ -86,15 +96,17 @@ test("host org list APIs use generated admin paths and filters", async () => { const [bdUrl, bdInit] = vi.mocked(fetch).mock.calls[0]; const [agencyUrl] = vi.mocked(fetch).mock.calls[1]; - const [hostUrl] = vi.mocked(fetch).mock.calls[2]; - const [coinSellerUrl, coinSellerInit] = vi.mocked(fetch).mock.calls[3]; - const [bdLeaderCreateUrl, bdLeaderCreateInit] = vi.mocked(fetch).mock.calls[4]; - const [bdLeaderAliasUrl, bdLeaderAliasInit] = vi.mocked(fetch).mock.calls[5]; - const [coinSellerCreateUrl, coinSellerCreateInit] = vi.mocked(fetch).mock.calls[6]; - const [coinSellerStatusUrl, coinSellerStatusInit] = vi.mocked(fetch).mock.calls[7]; - const [coinSellerStockUrl, coinSellerStockInit] = vi.mocked(fetch).mock.calls[8]; - const [coinSellerStockDebitUrl, coinSellerStockDebitInit] = vi.mocked(fetch).mock.calls[9]; - const [agencyDeleteUrl, agencyDeleteInit] = vi.mocked(fetch).mock.calls[10]; + const [managerUrl, managerInit] = vi.mocked(fetch).mock.calls[2]; + const [managerCreateUrl, managerCreateInit] = vi.mocked(fetch).mock.calls[3]; + const [hostUrl] = vi.mocked(fetch).mock.calls[4]; + const [coinSellerUrl, coinSellerInit] = vi.mocked(fetch).mock.calls[5]; + const [bdLeaderCreateUrl, bdLeaderCreateInit] = vi.mocked(fetch).mock.calls[6]; + const [bdLeaderAliasUrl, bdLeaderAliasInit] = vi.mocked(fetch).mock.calls[7]; + const [coinSellerCreateUrl, coinSellerCreateInit] = vi.mocked(fetch).mock.calls[8]; + const [coinSellerStatusUrl, coinSellerStatusInit] = vi.mocked(fetch).mock.calls[9]; + const [coinSellerStockUrl, coinSellerStockInit] = vi.mocked(fetch).mock.calls[10]; + const [coinSellerStockDebitUrl, coinSellerStockDebitInit] = vi.mocked(fetch).mock.calls[11]; + const [agencyDeleteUrl, agencyDeleteInit] = vi.mocked(fetch).mock.calls[12]; expect(String(bdUrl)).toContain("/api/v1/admin/bds?"); expect(String(bdUrl)).toContain("parent_leader_user_id=21"); @@ -107,6 +119,15 @@ test("host org list APIs use generated admin paths and filters", async () => { expect(String(agencyUrl)).toContain("parent_bd_user_id=31"); expect(String(agencyUrl)).toContain("sort_by=salary_wallet"); expect(String(agencyUrl)).toContain("sort_direction=desc"); + expect(String(managerUrl)).toContain("/api/v1/admin/managers?"); + expect(String(managerUrl)).toContain("keyword=manager"); + expect(String(managerUrl)).toContain("region_id=7"); + expect(String(managerUrl)).toContain("status=active"); + expect(String(managerUrl)).not.toContain("parent_bd_user_id"); + expect(managerInit?.method).toBe("GET"); + expect(String(managerCreateUrl)).toContain("/api/v1/admin/managers"); + expect(managerCreateInit?.method).toBe("POST"); + expect(JSON.parse(String(managerCreateInit?.body))).toEqual({ contact: "+63", targetUserId: "1003" }); expect(String(hostUrl)).toContain("/api/v1/admin/hosts?"); expect(String(hostUrl)).toContain("agency_id=41"); expect(String(hostUrl)).toContain("sort_by=diamond"); diff --git a/src/features/host-org/api.ts b/src/features/host-org/api.ts index 4a95e79..f3b92d9 100644 --- a/src/features/host-org/api.ts +++ b/src/features/host-org/api.ts @@ -25,9 +25,11 @@ import type { CreateBDLeaderPayload, CreateBDPayload, CreateCoinSellerPayload, + CreateManagerPayload, EntityId, HostCommandPayload, HostProfileDto, + ManagerDto, PageQuery, RegionCountriesPayload, RegionDto, @@ -168,6 +170,22 @@ export function listAgencies(query: PageQuery = {}): Promise> }); } +export function listManagers(query: PageQuery = {}): Promise> { + const endpoint = API_ENDPOINTS.listManagers; + return apiRequest>(apiEndpointPath(API_OPERATIONS.listManagers), { + method: endpoint.method, + query, + }); +} + +export function createManager(payload: CreateManagerPayload): Promise { + const endpoint = API_ENDPOINTS.createManager; + return apiRequest(apiEndpointPath(API_OPERATIONS.createManager), { + body: payload, + method: endpoint.method, + }); +} + export function listHosts(query: PageQuery = {}): Promise> { const endpoint = API_ENDPOINTS.listHosts; return apiRequest>(apiEndpointPath(API_OPERATIONS.listHosts), { diff --git a/src/features/host-org/constants.js b/src/features/host-org/constants.js index 4599bde..5898127 100644 --- a/src/features/host-org/constants.js +++ b/src/features/host-org/constants.js @@ -22,6 +22,12 @@ export const bdStatusFilters = [ ["disabled", "停用"] ]; +export const managerStatusFilters = [ + ["", "全部"], + ["active", "启用"], + ["disabled", "停用"] +]; + export const hostStatusFilters = [ ["", "全部"], ["active", "启用"], diff --git a/src/features/host-org/hooks/useHostManagersPage.js b/src/features/host-org/hooks/useHostManagersPage.js index a2ecd2d..954696c 100644 --- a/src/features/host-org/hooks/useHostManagersPage.js +++ b/src/features/host-org/hooks/useHostManagersPage.js @@ -1,31 +1,34 @@ import { useMemo, useState } from "react"; +import { parseForm } from "@/shared/forms/validation"; import { usePaginatedQuery } from "@/shared/hooks/usePaginatedQuery.js"; import { useRegionOptions } from "@/shared/hooks/useRegionOptions.js"; +import { createManager, listManagers } from "@/features/host-org/api"; +import { useBDAbilities } from "@/features/host-org/permissions.js"; +import { createManagerSchema } from "@/features/host-org/schema"; import { useToast } from "@/shared/ui/ToastProvider.jsx"; -import { closeAgency, listAgencies } from "@/features/host-org/api"; -import { useAgencyAbilities } from "@/features/host-org/permissions.js"; const pageSize = 50; const emptyData = { items: [], page: 1, pageSize, total: 0 }; +const emptyManagerForm = () => ({ contact: "", targetUserId: "" }); export function useHostManagersPage() { - const abilities = useAgencyAbilities(); + const abilities = useBDAbilities(); const { showToast } = useToast(); const { loadingRegions, regionOptions } = useRegionOptions(); + const [activeAction, setActiveAction] = useState(""); + const [loadingAction, setLoadingAction] = useState(""); + const [managerForm, setManagerForm] = useState(emptyManagerForm); const [query, setQuery] = useState(""); const [status, setStatus] = useState(""); const [regionId, setRegionId] = useState(""); - const [parentBdUserId, setParentBdUserId] = useState(""); const [page, setPage] = useState(1); - const [loadingAction, setLoadingAction] = useState(""); const filters = useMemo( () => ({ keyword: query, - parent_bd_user_id: parentBdUserId, region_id: regionId, status, }), - [parentBdUserId, query, regionId, status], + [query, regionId, status], ); const { data = emptyData, @@ -34,7 +37,7 @@ export function useHostManagersPage() { reload, } = usePaginatedQuery({ errorMessage: "加载经理列表失败", - fetcher: listAgencies, + fetcher: listManagers, filters, page, pageSize, @@ -56,68 +59,58 @@ export function useHostManagersPage() { setPage(1); }; - const changeParentBdUserId = (value) => { - setParentBdUserId(value); - setPage(1); - }; - const resetFilters = () => { setQuery(""); setStatus(""); setRegionId(""); - setParentBdUserId(""); setPage(1); }; - const closeManagerAgency = async (agency) => { - if (!abilities.canStatus || !agency?.agencyId || agency.status !== "active") { - return; - } - await runAction(`manager-status-${agency.agencyId}`, "经理已停用", async () => { - await closeAgency(agency.agencyId, { - commandId: makeCommandId("manager-close"), - reason: "close manager agency from list switch", - }); - await reload(); - }); - }; - - const runAction = async (action, successMessage, submitter) => { - setLoadingAction(action); + const submitManager = async (event) => { + event.preventDefault(); + setLoadingAction("manager-create"); try { - await submitter(); - showToast(successMessage, "success"); + const payload = parseForm(createManagerSchema, managerForm); + await createManager(payload); + setManagerForm(emptyManagerForm()); + setActiveAction(""); + showToast("经理已添加", "success"); + await reload(); } catch (err) { - showToast(err.message || "操作失败", "error"); + showToast(err.message || "添加经理失败", "error"); } finally { setLoadingAction(""); } }; + const closeAction = () => { + setActiveAction(""); + setManagerForm(emptyManagerForm()); + }; + return { abilities, - changeParentBdUserId, + activeAction, changeQuery, changeRegionId, changeStatus, - closeManagerAgency, + closeAction, data, error, - loading, loadingAction, + loading, loadingRegions, + managerForm, + openManagerForm: () => setActiveAction("manager"), page, - parentBdUserId, query, regionId, regionOptions, reload, resetFilters, + setManagerForm, setPage, status, + submitManager, }; } - -function makeCommandId(prefix) { - return `${prefix}-${Date.now()}`; -} diff --git a/src/features/host-org/pages/HostManagersPage.jsx b/src/features/host-org/pages/HostManagersPage.jsx index d7cc8da..f46eb3e 100644 --- a/src/features/host-org/pages/HostManagersPage.jsx +++ b/src/features/host-org/pages/HostManagersPage.jsx @@ -1,55 +1,53 @@ +import Add from "@mui/icons-material/Add"; +import TextField from "@mui/material/TextField"; import { formatMillis } from "@/shared/utils/time.js"; -import { AdminSwitch } from "@/shared/ui/AdminSwitch.jsx"; import { DataState } from "@/shared/ui/DataState.jsx"; -import { agencyStatusFilters } from "@/features/host-org/constants.js"; -import { HostOrgEntity, HostOrgPerson, hostOrgRegionName } from "@/features/host-org/components/HostOrgIdentity.jsx"; +import { managerStatusFilters, statusLabels } from "@/features/host-org/constants.js"; +import { HostOrgActionModal } from "@/features/host-org/components/HostOrgActionModal.jsx"; +import { HostOrgPerson, hostOrgRegionName } from "@/features/host-org/components/HostOrgIdentity.jsx"; import { HostOrgTable } from "@/features/host-org/components/HostOrgTable.jsx"; +import { HostOrgToolbar } from "@/features/host-org/components/HostOrgToolbar.jsx"; import { useHostManagersPage } from "@/features/host-org/hooks/useHostManagersPage.js"; import { createOptionsColumnFilter, createTextColumnFilter } from "@/shared/ui/tableFilters.js"; import styles from "@/features/host-org/host-org.module.css"; const managerColumns = [ { - key: "ownerUserId", + key: "userId", label: "经理", render: (item) => , width: "minmax(220px, 1.25fr)", }, - { - key: "agency", - label: "Agency", - render: (item) => , - width: "minmax(190px, 1fr)", - }, - { - key: "parentBdUserId", - label: "上级 BD", - render: (item) => , - width: "minmax(220px, 1.2fr)", - }, { key: "regionId", label: "区域", render: (item, _index, context) => hostOrgRegionName(item, context?.regionOptions), width: "minmax(130px, 0.75fr)", }, + { + key: "contact", + label: "联系方式", + render: (item) => item.contact || "-", + width: "minmax(150px, 0.85fr)", + }, { key: "status", label: "状态", - render: (item, _index, context) => , + render: (item) => , width: "minmax(90px, 0.7fr)", }, { - key: "joinEnabled", - label: "入会", - render: (item) => ( - - {item.joinEnabled ? "允许" : "禁止"} - - ), - width: "minmax(80px, 0.6fr)", + key: "bdLeaderCount", + label: "BD Leader/Admin", + render: (item) => item.bdLeaderCount || 0, + width: "minmax(140px, 0.8fr)", + }, + { + key: "lastInvitedAtMs", + label: "最近邀请", + render: (item) => formatMillis(item.lastInvitedAtMs), + width: "minmax(170px, 1fr)", }, - { key: "maxHosts", label: "最大主播数", width: "minmax(100px, 0.7fr)" }, { key: "updatedAtMs", label: "更新时间", @@ -60,34 +58,30 @@ const managerColumns = [ export function HostManagersPage() { const page = useHostManagersPage(); + const createDisabled = !page.abilities.canCreate; const items = page.data.items || []; const total = page.data.total || 0; + const toolbarActions = [ + page.abilities.canCreate + ? { icon: , label: "添加经理", onClick: page.openManagerForm, variant: "primary" } + : null, + ].filter(Boolean); const columns = managerColumns.map((column) => { - if (column.key === "ownerUserId") { + if (column.key === "userId") { return { ...column, filter: createTextColumnFilter({ - placeholder: "搜索经理、Agency、用户", + placeholder: "搜索经理", value: page.query, onChange: page.changeQuery, }), }; } - if (column.key === "parentBdUserId") { - return { - ...column, - filter: createTextColumnFilter({ - placeholder: "搜索上级 BD 用户 ID", - value: page.parentBdUserId, - onChange: page.changeParentBdUserId, - }), - }; - } if (column.key === "status") { return { ...column, filter: createOptionsColumnFilter({ - options: agencyStatusFilters, + options: managerStatusFilters, placeholder: "搜索状态", value: page.status, onChange: page.changeStatus, @@ -100,13 +94,14 @@ export function HostManagersPage() { return (
+
0 ? { @@ -117,11 +112,35 @@ export function HostManagersPage() { } : undefined } - rowKey={(item) => `manager-${item.ownerUserId || item.agencyId}`} + rowKey={(item) => `manager-${item.userId}`} />
+ + page.setManagerForm({ ...page.managerForm, targetUserId: event.target.value })} + /> + page.setManagerForm({ ...page.managerForm, contact: event.target.value })} + /> +
); } @@ -129,40 +148,19 @@ export function HostManagersPage() { function ManagerUser({ item }) { return ( ); } -function ParentBD({ item }) { - if (!item.parentBdUserId) { - return "-"; - } - return ( - - ); -} - -function ManagerStatusSwitch({ item, page }) { +function ManagerStatus({ item }) { const active = item.status === "active"; return ( - { - if (!event.target.checked) { - page.closeManagerAgency(item); - } - }} - /> + + {statusLabels[item.status] || item.status || "-"} + ); } diff --git a/src/features/host-org/routes.js b/src/features/host-org/routes.js index 762d9f2..5c2da67 100644 --- a/src/features/host-org/routes.js +++ b/src/features/host-org/routes.js @@ -18,12 +18,12 @@ export const hostOrgRoutes = [ permission: PERMISSIONS.regionView, }, { - label: "Manager列表", + label: "经理列表", loader: () => import("./pages/HostManagersPage.jsx").then((module) => module.HostManagersPage), menuCode: MENU_CODES.hostOrgManagers, pageKey: "host-org-managers", path: "/host/managers", - permission: PERMISSIONS.agencyView, + permission: PERMISSIONS.bdView, }, { label: "Agency 列表", diff --git a/src/features/host-org/schema.ts b/src/features/host-org/schema.ts index 4728162..382288f 100644 --- a/src/features/host-org/schema.ts +++ b/src/features/host-org/schema.ts @@ -105,6 +105,11 @@ export const createCoinSellerSchema = commandContactSchema.extend({ targetUserId: userIdSchema, }); +export const createManagerSchema = z.object({ + contact: z.string().trim().max(128, "联系方式不能超过 128 个字符").optional().default(""), + targetUserId: userIdSchema, +}); + export const coinSellerStatusSchema = commandContactSchema.extend({ status: z.enum(["active", "disabled"]), targetUserId: entityIdSchema, diff --git a/src/features/payment/api.ts b/src/features/payment/api.ts index 5f504ac..8b2fb29 100644 --- a/src/features/payment/api.ts +++ b/src/features/payment/api.ts @@ -10,6 +10,7 @@ import type { RechargeProductPayload, ThirdPartyPaymentChannelDto, ThirdPartyPaymentMethodDto, + ThirdPartyPaymentRateSyncDto, } from "@/shared/api/types"; export function listRechargeBills(query: PageQuery = {}): Promise> { @@ -97,3 +98,10 @@ export function updateThirdPartyPaymentRate( }, ); } + +export function syncThirdPartyPaymentRates(): Promise { + const endpoint = API_ENDPOINTS.syncThirdPartyPaymentRates; + return apiRequest(apiEndpointPath(API_OPERATIONS.syncThirdPartyPaymentRates), { + method: endpoint.method, + }); +} diff --git a/src/features/payment/hooks/useThirdPartyPaymentPage.js b/src/features/payment/hooks/useThirdPartyPaymentPage.js index 30cdc94..fe07b2c 100644 --- a/src/features/payment/hooks/useThirdPartyPaymentPage.js +++ b/src/features/payment/hooks/useThirdPartyPaymentPage.js @@ -2,6 +2,7 @@ import { useEffect, useMemo, useState } from "react"; import { listThirdPartyPaymentChannels, setThirdPartyPaymentMethodStatus, + syncThirdPartyPaymentRates, updateThirdPartyPaymentRate, } from "@/features/payment/api"; import { usePaymentAbilities } from "@/features/payment/permissions.js"; @@ -106,6 +107,25 @@ export function useThirdPartyPaymentPage() { } }; + const syncRates = async () => { + // 汇率同步只触发服务端动作;汇率源、失败切换和写库都在 admin-server 完成,前端不接收可篡改的汇率输入。 + if (!abilities.canUpdateThirdParty) { + return; + } + setLoadingAction("sync-rates"); + try { + const summary = await syncThirdPartyPaymentRates(); + const fresh = await result.reload(); + setRateDrafts(rateDraftsFromChannels(fresh?.items || [])); + const suffix = summary?.sourceNames?.length ? `(${summary.sourceNames.join("、")})` : ""; + showToast(`汇率已同步 ${summary?.updatedCount || 0} 个支付方式${suffix}`, "success"); + } catch (err) { + showToast(err.message || "汇率同步失败", "error"); + } finally { + setLoadingAction(""); + } + }; + return { abilities, activeChannel, @@ -118,7 +138,17 @@ export function useThirdPartyPaymentPage() { reload: result.reload, saveRate, setRateDraft, + syncRates, toggleChannel, toggleMethod, }; } + +function rateDraftsFromChannels(channels) { + return channels.reduce((drafts, channel) => { + (channel.methods || []).forEach((method) => { + drafts[String(method.methodId)] = method.usdToCurrencyRate || ""; + }); + return drafts; + }, {}); +} diff --git a/src/features/payment/pages/RechargeProductConfigPage.jsx b/src/features/payment/pages/RechargeProductConfigPage.jsx index 2ea5c59..e5bde54 100644 --- a/src/features/payment/pages/RechargeProductConfigPage.jsx +++ b/src/features/payment/pages/RechargeProductConfigPage.jsx @@ -2,9 +2,13 @@ import AddOutlined from "@mui/icons-material/AddOutlined"; import DeleteOutlineOutlined from "@mui/icons-material/DeleteOutlineOutlined"; import EditOutlined from "@mui/icons-material/EditOutlined"; import MenuItem from "@mui/material/MenuItem"; +import Tab from "@mui/material/Tab"; +import Tabs from "@mui/material/Tabs"; import TextField from "@mui/material/TextField"; -import { useMemo } from "react"; +import { useEffect, useMemo, useState } from "react"; import { useRechargeProductsPage } from "@/features/payment/hooks/useRechargeProductsPage.js"; +import { ThirdPartyPaymentContent } from "@/features/payment/pages/ThirdPartyPaymentPage.jsx"; +import styles from "@/features/payment/payment.module.css"; import { Button } from "@/shared/ui/Button.jsx"; import { AdminFormAmountField, @@ -49,146 +53,173 @@ const audienceOptions = [ export function RechargeProductConfigPage() { const page = useRechargeProductsPage(); + const [activeProductTab, setActiveProductTab] = useState("google"); + const googleProductPlatform = "android"; + const { platform, setPlatform } = page; const items = page.data?.items || []; const regionLabels = useMemo(() => regionLabelMap(page.regionOptions), [page.regionOptions]); const regionValues = useMemo(() => page.regionOptions.map((option) => option.value), [page.regionOptions]); - const columns = useMemo(() => productColumns(page, regionLabels), [page, regionLabels]); + const columns = useMemo(() => productColumns(page, regionLabels, true), [page, regionLabels]); const saving = page.loadingAction === "create" || page.loadingAction === "edit"; const canSubmit = page.editingItem ? page.abilities.canUpdateProduct : page.abilities.canCreateProduct; + const openCreate = () => { + page.openCreate(); + page.setForm({ platform: googleProductPlatform }); + }; + + useEffect(() => { + if (activeProductTab === "google" && platform !== googleProductPlatform) { + setPlatform(googleProductPlatform); + } + }, [activeProductTab, googleProductPlatform, platform, setPlatform]); return ( - } - variant="primary" - onClick={page.openCreate} - > - 新增内购 - - ) : null - } - /> - - - item.productId} +
+ setActiveProductTab(value)}> + + + +
+ {activeProductTab === "google" ? ( + <> + } + variant="primary" + onClick={openCreate} + > + 新增 Google 商品 + + ) : null + } /> -
-
+ + + item.productId} + /> + + + + ) : ( + + )} - - - - + + + page.setForm({ productName: event.target.value })} + /> + page.setForm({ platform: event.target.value })} + > + Web + Android + iOS + + page.setForm({ audienceType: event.target.value })} + > + 普通用户 + 币商 + + + + + + page.setForm({ amountUsdt: event.target.value })} + /> + page.setForm({ coinAmount: event.target.value })} + /> + + + + page.setForm({ productName: event.target.value })} + value={page.form.regionIds} + onChange={(regionIds) => page.setForm({ regionIds })} /> - page.setForm({ platform: event.target.value })} - > - Web - Android - iOS - - page.setForm({ audienceType: event.target.value })} - > - 普通用户 - 币商 - - - - - - page.setForm({ amountUsdt: event.target.value })} + label="是否上架" + uncheckedLabel="下架" + onChange={(checked) => page.setForm({ enabled: checked })} /> + + page.setForm({ coinAmount: event.target.value })} + label="描述" + multiline + minRows={2} + value={page.form.description} + onChange={(event) => page.setForm({ description: event.target.value })} /> - - - - page.setForm({ regionIds })} - /> - page.setForm({ enabled: checked })} - /> - - - page.setForm({ description: event.target.value })} - /> - - + + + ) : null}
); } -function productColumns(page, regionLabels) { +function productColumns(page, regionLabels, lockedPlatform = false) { const columns = [ { key: "product", @@ -216,12 +247,14 @@ function productColumns(page, regionLabels) { key: "platform", label: "平台", render: (item) => platformLabel(item.platform), - filter: createOptionsColumnFilter({ - options: platformOptions, - placeholder: "搜索平台", - value: page.platform, - onChange: page.setPlatform, - }), + filter: lockedPlatform + ? undefined + : createOptionsColumnFilter({ + options: platformOptions, + placeholder: "搜索平台", + value: page.platform, + onChange: page.setPlatform, + }), width: "minmax(120px, 0.55fr)", }, { diff --git a/src/features/payment/pages/ThirdPartyPaymentPage.jsx b/src/features/payment/pages/ThirdPartyPaymentPage.jsx index 5123b5e..f3e0b46 100644 --- a/src/features/payment/pages/ThirdPartyPaymentPage.jsx +++ b/src/features/payment/pages/ThirdPartyPaymentPage.jsx @@ -1,6 +1,7 @@ import KeyboardArrowDownOutlined from "@mui/icons-material/KeyboardArrowDownOutlined"; import KeyboardArrowRightOutlined from "@mui/icons-material/KeyboardArrowRightOutlined"; import SettingsOutlined from "@mui/icons-material/SettingsOutlined"; +import SyncOutlined from "@mui/icons-material/SyncOutlined"; import TextField from "@mui/material/TextField"; import { useMemo } from "react"; import { useNavigate } from "react-router-dom"; @@ -12,22 +13,37 @@ import { DataState } from "@/shared/ui/DataState.jsx"; import styles from "@/features/payment/payment.module.css"; export function ThirdPartyPaymentPage() { + return ; +} + +export function ThirdPartyPaymentContent({ embedded = false, showProductButton = false }) { const page = useThirdPartyPaymentPage(); const navigate = useNavigate(); // 国家分组只影响展示密度,不改变后端返回的可开关粒度;每个 method 仍独立保存状态和汇率。 const groupedMethods = useMemo(() => groupMethods(page.activeChannel?.methods || []), [page.activeChannel]); - return ( - + const content = ( + <> } - variant="primary" - onClick={() => navigate("/payment/recharge-products")} - > - 三方支付内购配置 - +
+ + {showProductButton ? ( + + ) : null} +
} /> @@ -82,9 +98,12 @@ export function ThirdPartyPaymentPage() { {group.methods.map((method) => (
- - {method.methodName || method.payWay || "-"} - {method.payWay || "-"} + + + + {method.methodName || method.payWay || "-"} + {method.payWay || "-"} + {method.payType || "-"} {method.currencyCode || "-"} @@ -117,9 +136,10 @@ export function ThirdPartyPaymentPage() { page.loadingAction === `status:${method.methodId}` } inputProps={{ - "aria-label": method.status === "active" - ? "关闭支付方式" - : "打开支付方式", + "aria-label": + method.status === "active" + ? "关闭支付方式" + : "打开支付方式", }} uncheckedLabel="关" onChange={(event) => @@ -139,14 +159,28 @@ export function ThirdPartyPaymentPage() {
-
+ ); + + if (embedded) { + return
{content}
; + } + + return {content}; } function StatusPill({ active }) { return {active ? "已启用" : "已停用"}; } +function MethodLogo({ method }) { + const label = String(method.methodName || method.payType || method.payWay || "Pay").slice(0, 2).toUpperCase(); + if (method.logoUrl) { + return ; + } + return {label}; +} + function groupMethods(methods) { // GLOBAL 是三方支付的跨国家方式,放在最前面,国家方式再按标题排序,方便运营先处理全局支付。 const groups = new Map(); diff --git a/src/features/payment/payment.module.css b/src/features/payment/payment.module.css index 39c7a0b..1884f0c 100644 --- a/src/features/payment/payment.module.css +++ b/src/features/payment/payment.module.css @@ -55,6 +55,29 @@ font-size: var(--admin-font-size); } +.toolbarActions { + display: flex; + min-width: 0; + align-items: center; + justify-content: flex-end; + gap: var(--space-2); + flex-wrap: wrap; +} + +.paymentTabsBar { + flex: 0 0 auto; + padding: 0 var(--space-4); + border-bottom: 1px solid var(--border); + background: var(--bg-card); +} + +.paymentEmbedded { + display: flex; + min-height: 0; + flex: 1; + flex-direction: column; +} + .thirdPartyLayout { display: grid; flex: 1; @@ -207,6 +230,37 @@ gap: 2px; } +.methodIdentity { + display: grid; + min-width: 0; + align-items: center; + gap: var(--space-3); + grid-template-columns: 56px minmax(0, 1fr); +} + +.methodLogo, +.methodLogoFallback { + width: 56px; + height: 32px; + border: 1px solid var(--border); + border-radius: var(--radius-sm); + background: var(--bg-card-strong); +} + +.methodLogo { + display: block; + object-fit: contain; +} + +.methodLogoFallback { + display: inline-flex; + align-items: center; + justify-content: center; + color: var(--text-tertiary); + font-size: 12px; + font-weight: 800; +} + .methodName strong, .methodName small { overflow: hidden; diff --git a/src/features/payment/routes.js b/src/features/payment/routes.js index 9f90c87..e38478c 100644 --- a/src/features/payment/routes.js +++ b/src/features/payment/routes.js @@ -18,7 +18,7 @@ export const paymentRoutes = [ permission: PERMISSIONS.paymentThirdPartyView, }, { - label: "三方支付内购配置", + label: "支付内购商品", loader: () => import("./pages/RechargeProductConfigPage.jsx").then((module) => module.RechargeProductConfigPage), menuCode: MENU_CODES.paymentRechargeProducts, diff --git a/src/shared/api/generated/endpoints.ts b/src/shared/api/generated/endpoints.ts index 3b2da2f..2db6b5f 100644 --- a/src/shared/api/generated/endpoints.ts +++ b/src/shared/api/generated/endpoints.ts @@ -5,2047 +5,2079 @@ import type { PermissionCode } from "@/app/permissions"; export type ApiHttpMethod = "DELETE" | "GET" | "PATCH" | "POST" | "PUT"; export interface ApiEndpoint { - method: ApiHttpMethod; - operationId: string; - path: string; - permission?: PermissionCode; - permissions?: PermissionCode[]; + method: ApiHttpMethod; + operationId: string; + path: string; + permission?: PermissionCode; + permissions?: PermissionCode[]; } export const API_OPERATIONS = { - appBanUser: "appBanUser", - appGetUser: "appGetUser", - appListBannedUsers: "appListBannedUsers", - appListLoginLogs: "appListLoginLogs", - appListUserLoginLogs: "appListUserLoginLogs", - appListUsers: "appListUsers", - appSetPassword: "appSetPassword", - appUnbanUser: "appUnbanUser", - appUpdateUser: "appUpdateUser", - batchUpdateUserStatus: "batchUpdateUserStatus", - cancelRoomPin: "cancelRoomPin", - changePassword: "changePassword", - closeAgency: "closeAgency", - createAchievementDefinition: "createAchievementDefinition", - createAgency: "createAgency", - createAppVersion: "createAppVersion", - createBanner: "createBanner", - createBD: "createBD", - createBDLeader: "createBDLeader", - createCatalog: "createCatalog", - createCoinAdjustment: "createCoinAdjustment", - createCoinSeller: "createCoinSeller", - createCountry: "createCountry", - createEmojiPack: "createEmojiPack", - createExploreTab: "createExploreTab", - createGift: "createGift", - createH5Link: "createH5Link", - createHostAgencyPolicy: "createHostAgencyPolicy", - createMenu: "createMenu", - createPermission: "createPermission", - createPlatform: "createPlatform", - createPopup: "createPopup", - createPrettyIdPool: "createPrettyIdPool", - createRechargeProduct: "createRechargeProduct", - createRegion: "createRegion", - createResource: "createResource", - createResourceGroup: "createResourceGroup", - createRole: "createRole", - createRoomPin: "createRoomPin", - createSplashScreen: "createSplashScreen", - createTaskDefinition: "createTaskDefinition", - createTeamSalaryPolicy: "createTeamSalaryPolicy", - createTier: "createTier", - createUser: "createUser", - createWeeklyStarCycle: "createWeeklyStarCycle", - creditCoinSellerStock: "creditCoinSellerStock", - dashboardOverview: "dashboardOverview", - deleteAgency: "deleteAgency", - deleteAppVersion: "deleteAppVersion", - deleteBanner: "deleteBanner", - deleteBDLeader: "deleteBDLeader", - deleteCatalog: "deleteCatalog", - deleteCountry: "deleteCountry", - deleteDiceRobot: "deleteDiceRobot", - deleteExploreTab: "deleteExploreTab", - deleteGift: "deleteGift", - deleteH5Link: "deleteH5Link", - deleteHostAgencyPolicy: "deleteHostAgencyPolicy", - deleteMenu: "deleteMenu", - deletePermission: "deletePermission", - deletePopup: "deletePopup", - deleteRechargeProduct: "deleteRechargeProduct", - deleteRole: "deleteRole", - deleteRoom: "deleteRoom", - deleteSplashScreen: "deleteSplashScreen", - deleteTeamSalaryPolicy: "deleteTeamSalaryPolicy", - disableCountry: "disableCountry", - disableGift: "disableGift", - disableRegion: "disableRegion", - disableResource: "disableResource", - disableResourceGroup: "disableResourceGroup", - disableResourceShopItem: "disableResourceShopItem", - enableCountry: "enableCountry", - enableGift: "enableGift", - enableRegion: "enableRegion", - enableResource: "enableResource", - enableResourceGroup: "enableResourceGroup", - enableResourceShopItem: "enableResourceShopItem", - expireRoomRpsChallenge: "expireRoomRpsChallenge", - exportLoginLogs: "exportLoginLogs", - exportOperationLogs: "exportOperationLogs", - exportUsers: "exportUsers", - generateDiceRobots: "generateDiceRobots", - generatePrettyIds: "generatePrettyIds", - getCoinSellerSalaryRates: "getCoinSellerSalaryRates", - getCountry: "getCountry", - getCumulativeRechargeRewardConfig: "getCumulativeRechargeRewardConfig", - getFirstRechargeRewardConfig: "getFirstRechargeRewardConfig", - getInviteActivityRewardConfig: "getInviteActivityRewardConfig", - getLuckyGiftConfig: "getLuckyGiftConfig", - getLuckyGiftDrawSummary: "getLuckyGiftDrawSummary", - getRedPacket: "getRedPacket", - getRedPacketConfig: "getRedPacketConfig", - getRegion: "getRegion", - getRegistrationRewardConfig: "getRegistrationRewardConfig", - getResource: "getResource", - getResourceGroup: "getResourceGroup", - getRoleDataScopes: "getRoleDataScopes", - getRoomConfig: "getRoomConfig", - getRoomRocketConfig: "getRoomRocketConfig", - getRoomRpsChallenge: "getRoomRpsChallenge", - getRoomRpsConfig: "getRoomRpsConfig", - getRoomTurnoverRewardConfig: "getRoomTurnoverRewardConfig", - getSevenDayCheckInConfig: "getSevenDayCheckInConfig", - getUser: "getUser", - getWeeklyStarCycle: "getWeeklyStarCycle", - grantPrettyId: "grantPrettyId", - grantResource: "grantResource", - grantResourceGroup: "grantResourceGroup", - listAchievementDefinitions: "listAchievementDefinitions", - listAgencies: "listAgencies", - listApps: "listApps", - listAppVersions: "listAppVersions", - listBanners: "listBanners", - listBDLeaders: "listBDLeaders", - listBDs: "listBDs", - listCatalog: "listCatalog", - listCoinAdjustments: "listCoinAdjustments", - listCoinLedger: "listCoinLedger", - listCoinSellerLedger: "listCoinSellerLedger", - listCoinSellers: "listCoinSellers", - listCountries: "listCountries", - listCumulativeRechargeRewardGrants: "listCumulativeRechargeRewardGrants", - listDiceRobots: "listDiceRobots", - listEmojiPackCategories: "listEmojiPackCategories", - listEmojiPacks: "listEmojiPacks", - listExploreTabs: "listExploreTabs", - listFirstRechargeRewardClaims: "listFirstRechargeRewardClaims", - listGifts: "listGifts", - listGiftTypes: "listGiftTypes", - listH5Links: "listH5Links", - listHostAgencyPolicies: "listHostAgencyPolicies", - listHosts: "listHosts", - listHostSalarySettlements: "listHostSalarySettlements", - listInviteActivityRewardClaims: "listInviteActivityRewardClaims", - listLevelConfig: "listLevelConfig", - listLoginLogs: "listLoginLogs", - listLuckyGiftConfigs: "listLuckyGiftConfigs", - listLuckyGiftDraws: "listLuckyGiftDraws", - listOperationLogs: "listOperationLogs", - listPermissions: "listPermissions", - listPlatforms: "listPlatforms", - listPopups: "listPopups", - listPrettyIdPools: "listPrettyIdPools", - listPrettyIds: "listPrettyIds", - listRechargeBills: "listRechargeBills", - listRechargeProducts: "listRechargeProducts", - listRedPackets: "listRedPackets", - listRegionBlocks: "listRegionBlocks", - listRegions: "listRegions", - listRegistrationRewardClaims: "listRegistrationRewardClaims", - listReports: "listReports", - listResourceGrants: "listResourceGrants", - listResourceGroups: "listResourceGroups", - listResources: "listResources", - listResourceShopItems: "listResourceShopItems", - listRoles: "listRoles", - listRoomPins: "listRoomPins", - listRoomRpsChallenges: "listRoomRpsChallenges", - listRooms: "listRooms", - listRoomTurnoverRewardSettlements: "listRoomTurnoverRewardSettlements", - listSelfGames: "listSelfGames", - listSevenDayCheckInClaims: "listSevenDayCheckInClaims", - listSplashScreens: "listSplashScreens", - listSystemMenus: "listSystemMenus", - listTaskDefinitions: "listTaskDefinitions", - listTeamSalaryPolicies: "listTeamSalaryPolicies", - listThirdPartyPaymentChannels: "listThirdPartyPaymentChannels", - listUserLeaderboards: "listUserLeaderboards", - listUsers: "listUsers", - listWeeklyStarCycles: "listWeeklyStarCycles", - listWeeklyStarLeaderboard: "listWeeklyStarLeaderboard", - listWeeklyStarSettlements: "listWeeklyStarSettlements", - login: "login", - logout: "logout", - lookupCoinAdjustmentTarget: "lookupCoinAdjustmentTarget", - lookupResourceGrantTarget: "lookupResourceGrantTarget", - me: "me", - navigationMenus: "navigationMenus", - publishHostAgencyPolicy: "publishHostAgencyPolicy", - refresh: "refresh", - replaceCoinSellerSalaryRates: "replaceCoinSellerSalaryRates", - replaceRegionBlocks: "replaceRegionBlocks", - replaceRegionCountries: "replaceRegionCountries", - replaceRoleDataScopes: "replaceRoleDataScopes", - replaceRolePermissions: "replaceRolePermissions", - resetUserPassword: "resetUserPassword", - retryRedPacketRefund: "retryRedPacketRefund", - retryRoomRpsSettlement: "retryRoomRpsSettlement", - retryRoomTurnoverRewardSettlement: "retryRoomTurnoverRewardSettlement", - search: "search", - setAgencyJoinEnabled: "setAgencyJoinEnabled", - setBDLeaderStatus: "setBDLeaderStatus", - setBDStatus: "setBDStatus", - setCoinSellerStatus: "setCoinSellerStatus", - setDiceRobotStatus: "setDiceRobotStatus", - setGameStatus: "setGameStatus", - setPrettyIdStatus: "setPrettyIdStatus", - setTaskDefinitionStatus: "setTaskDefinitionStatus", - setThirdPartyPaymentMethodStatus: "setThirdPartyPaymentMethodStatus", - setWeeklyStarCycleStatus: "setWeeklyStarCycleStatus", - sortMenus: "sortMenus", - syncPermissions: "syncPermissions", - updateAchievementDefinition: "updateAchievementDefinition", - updateAppVersion: "updateAppVersion", - updateBanner: "updateBanner", - updateCatalog: "updateCatalog", - updateCountry: "updateCountry", - updateCumulativeRechargeRewardConfig: "updateCumulativeRechargeRewardConfig", - updateDiceConfig: "updateDiceConfig", - updateExploreTab: "updateExploreTab", - updateFirstRechargeRewardConfig: "updateFirstRechargeRewardConfig", - updateGift: "updateGift", - updateGiftType: "updateGiftType", - updateGiftTypes: "updateGiftTypes", - updateH5Link: "updateH5Link", - updateH5Links: "updateH5Links", - updateHostAgencyPolicy: "updateHostAgencyPolicy", - updateInviteActivityRewardConfig: "updateInviteActivityRewardConfig", - updateMenu: "updateMenu", - updateMenuVisible: "updateMenuVisible", - updatePermission: "updatePermission", - updatePlatform: "updatePlatform", - updatePopup: "updatePopup", - updatePrettyIdPool: "updatePrettyIdPool", - updateRechargeProduct: "updateRechargeProduct", - updateRedPacketConfig: "updateRedPacketConfig", - updateRegion: "updateRegion", - updateRegistrationRewardConfig: "updateRegistrationRewardConfig", - updateResource: "updateResource", - updateResourceGroup: "updateResourceGroup", - updateResourceGroupItems: "updateResourceGroupItems", - updateRole: "updateRole", - updateRoom: "updateRoom", - updateRoomConfig: "updateRoomConfig", - updateRoomRocketConfig: "updateRoomRocketConfig", - updateRoomRpsConfig: "updateRoomRpsConfig", - updateRoomTurnoverRewardConfig: "updateRoomTurnoverRewardConfig", - updateSevenDayCheckInConfig: "updateSevenDayCheckInConfig", - updateSplashScreen: "updateSplashScreen", - updateTaskDefinition: "updateTaskDefinition", - updateTeamSalaryPolicy: "updateTeamSalaryPolicy", - updateThirdPartyPaymentRate: "updateThirdPartyPaymentRate", - updateTier: "updateTier", - updateTrack: "updateTrack", - updateUser: "updateUser", - updateUserStatus: "updateUserStatus", - updateWeeklyStarCycle: "updateWeeklyStarCycle", - uploadFile: "uploadFile", - uploadImage: "uploadImage", - upsertLuckyGiftConfig: "upsertLuckyGiftConfig", - upsertResourceShopItems: "upsertResourceShopItems", - upsertRule: "upsertRule", + adjustDicePool: "adjustDicePool", + appBanUser: "appBanUser", + appGetUser: "appGetUser", + appListBannedUsers: "appListBannedUsers", + appListLoginLogs: "appListLoginLogs", + appListUserLoginLogs: "appListUserLoginLogs", + appListUsers: "appListUsers", + appSetPassword: "appSetPassword", + appUnbanUser: "appUnbanUser", + appUpdateUser: "appUpdateUser", + batchUpdateUserStatus: "batchUpdateUserStatus", + cancelRoomPin: "cancelRoomPin", + changePassword: "changePassword", + closeAgency: "closeAgency", + createAchievementDefinition: "createAchievementDefinition", + createAgency: "createAgency", + createAppVersion: "createAppVersion", + createBanner: "createBanner", + createBD: "createBD", + createBDLeader: "createBDLeader", + createCatalog: "createCatalog", + createCoinAdjustment: "createCoinAdjustment", + createCoinSeller: "createCoinSeller", + createCountry: "createCountry", + createEmojiPack: "createEmojiPack", + createExploreTab: "createExploreTab", + createGift: "createGift", + createH5Link: "createH5Link", + createHostAgencyPolicy: "createHostAgencyPolicy", + createManager: "createManager", + createMenu: "createMenu", + createPermission: "createPermission", + createPlatform: "createPlatform", + createPopup: "createPopup", + createPrettyIdPool: "createPrettyIdPool", + createRechargeProduct: "createRechargeProduct", + createRegion: "createRegion", + createResource: "createResource", + createResourceGroup: "createResourceGroup", + createRole: "createRole", + createRoomPin: "createRoomPin", + createSplashScreen: "createSplashScreen", + createTaskDefinition: "createTaskDefinition", + createTeamSalaryPolicy: "createTeamSalaryPolicy", + createTier: "createTier", + createUser: "createUser", + createWeeklyStarCycle: "createWeeklyStarCycle", + creditCoinSellerStock: "creditCoinSellerStock", + dashboardOverview: "dashboardOverview", + deleteAgency: "deleteAgency", + deleteAppVersion: "deleteAppVersion", + deleteBanner: "deleteBanner", + deleteBDLeader: "deleteBDLeader", + deleteCatalog: "deleteCatalog", + deleteCountry: "deleteCountry", + deleteDiceRobot: "deleteDiceRobot", + deleteExploreTab: "deleteExploreTab", + deleteGift: "deleteGift", + deleteH5Link: "deleteH5Link", + deleteHostAgencyPolicy: "deleteHostAgencyPolicy", + deleteMenu: "deleteMenu", + deletePermission: "deletePermission", + deletePopup: "deletePopup", + deleteRechargeProduct: "deleteRechargeProduct", + deleteRole: "deleteRole", + deleteRoom: "deleteRoom", + deleteSplashScreen: "deleteSplashScreen", + deleteTeamSalaryPolicy: "deleteTeamSalaryPolicy", + disableCountry: "disableCountry", + disableGift: "disableGift", + disableRegion: "disableRegion", + disableResource: "disableResource", + disableResourceGroup: "disableResourceGroup", + disableResourceShopItem: "disableResourceShopItem", + enableCountry: "enableCountry", + enableGift: "enableGift", + enableRegion: "enableRegion", + enableResource: "enableResource", + enableResourceGroup: "enableResourceGroup", + enableResourceShopItem: "enableResourceShopItem", + expireRoomRpsChallenge: "expireRoomRpsChallenge", + exportLoginLogs: "exportLoginLogs", + exportOperationLogs: "exportOperationLogs", + exportUsers: "exportUsers", + generateDiceRobots: "generateDiceRobots", + generatePrettyIds: "generatePrettyIds", + getCoinSellerSalaryRates: "getCoinSellerSalaryRates", + getCountry: "getCountry", + getCumulativeRechargeRewardConfig: "getCumulativeRechargeRewardConfig", + getFirstRechargeRewardConfig: "getFirstRechargeRewardConfig", + getInviteActivityRewardConfig: "getInviteActivityRewardConfig", + getLuckyGiftConfig: "getLuckyGiftConfig", + getLuckyGiftDrawSummary: "getLuckyGiftDrawSummary", + getRedPacket: "getRedPacket", + getRedPacketConfig: "getRedPacketConfig", + getRegion: "getRegion", + getRegistrationRewardConfig: "getRegistrationRewardConfig", + getResource: "getResource", + getResourceGroup: "getResourceGroup", + getRoleDataScopes: "getRoleDataScopes", + getRoomConfig: "getRoomConfig", + getRoomRocketConfig: "getRoomRocketConfig", + getRoomRpsChallenge: "getRoomRpsChallenge", + getRoomRpsConfig: "getRoomRpsConfig", + getRoomTurnoverRewardConfig: "getRoomTurnoverRewardConfig", + getSevenDayCheckInConfig: "getSevenDayCheckInConfig", + getUser: "getUser", + getWeeklyStarCycle: "getWeeklyStarCycle", + grantPrettyId: "grantPrettyId", + grantResource: "grantResource", + grantResourceGroup: "grantResourceGroup", + listAchievementDefinitions: "listAchievementDefinitions", + listAgencies: "listAgencies", + listApps: "listApps", + listAppVersions: "listAppVersions", + listBanners: "listBanners", + listBDLeaders: "listBDLeaders", + listBDs: "listBDs", + listCatalog: "listCatalog", + listCoinAdjustments: "listCoinAdjustments", + listCoinLedger: "listCoinLedger", + listCoinSellerLedger: "listCoinSellerLedger", + listCoinSellers: "listCoinSellers", + listCountries: "listCountries", + listCumulativeRechargeRewardGrants: "listCumulativeRechargeRewardGrants", + listDiceRobots: "listDiceRobots", + listEmojiPackCategories: "listEmojiPackCategories", + listEmojiPacks: "listEmojiPacks", + listExploreTabs: "listExploreTabs", + listFirstRechargeRewardClaims: "listFirstRechargeRewardClaims", + listGifts: "listGifts", + listGiftTypes: "listGiftTypes", + listH5Links: "listH5Links", + listHostAgencyPolicies: "listHostAgencyPolicies", + listHosts: "listHosts", + listHostSalarySettlements: "listHostSalarySettlements", + listInviteActivityRewardClaims: "listInviteActivityRewardClaims", + listLevelConfig: "listLevelConfig", + listLoginLogs: "listLoginLogs", + listLuckyGiftConfigs: "listLuckyGiftConfigs", + listLuckyGiftDraws: "listLuckyGiftDraws", + listManagers: "listManagers", + listOperationLogs: "listOperationLogs", + listPermissions: "listPermissions", + listPlatforms: "listPlatforms", + listPopups: "listPopups", + listPrettyIdPools: "listPrettyIdPools", + listPrettyIds: "listPrettyIds", + listRechargeBills: "listRechargeBills", + listRechargeProducts: "listRechargeProducts", + listRedPackets: "listRedPackets", + listRegionBlocks: "listRegionBlocks", + listRegions: "listRegions", + listRegistrationRewardClaims: "listRegistrationRewardClaims", + listReports: "listReports", + listResourceGrants: "listResourceGrants", + listResourceGroups: "listResourceGroups", + listResources: "listResources", + listResourceShopItems: "listResourceShopItems", + listRoles: "listRoles", + listRoomPins: "listRoomPins", + listRoomRpsChallenges: "listRoomRpsChallenges", + listRooms: "listRooms", + listRoomTurnoverRewardSettlements: "listRoomTurnoverRewardSettlements", + listSelfGames: "listSelfGames", + listSevenDayCheckInClaims: "listSevenDayCheckInClaims", + listSplashScreens: "listSplashScreens", + listSystemMenus: "listSystemMenus", + listTaskDefinitions: "listTaskDefinitions", + listTeamSalaryPolicies: "listTeamSalaryPolicies", + listThirdPartyPaymentChannels: "listThirdPartyPaymentChannels", + listUserLeaderboards: "listUserLeaderboards", + listUsers: "listUsers", + listWeeklyStarCycles: "listWeeklyStarCycles", + listWeeklyStarLeaderboard: "listWeeklyStarLeaderboard", + listWeeklyStarSettlements: "listWeeklyStarSettlements", + login: "login", + logout: "logout", + lookupCoinAdjustmentTarget: "lookupCoinAdjustmentTarget", + lookupResourceGrantTarget: "lookupResourceGrantTarget", + me: "me", + navigationMenus: "navigationMenus", + publishHostAgencyPolicy: "publishHostAgencyPolicy", + refresh: "refresh", + replaceCoinSellerSalaryRates: "replaceCoinSellerSalaryRates", + replaceRegionBlocks: "replaceRegionBlocks", + replaceRegionCountries: "replaceRegionCountries", + replaceRoleDataScopes: "replaceRoleDataScopes", + replaceRolePermissions: "replaceRolePermissions", + resetUserPassword: "resetUserPassword", + retryRedPacketRefund: "retryRedPacketRefund", + retryRoomRpsSettlement: "retryRoomRpsSettlement", + retryRoomTurnoverRewardSettlement: "retryRoomTurnoverRewardSettlement", + search: "search", + setAgencyJoinEnabled: "setAgencyJoinEnabled", + setBDLeaderStatus: "setBDLeaderStatus", + setBDStatus: "setBDStatus", + setCoinSellerStatus: "setCoinSellerStatus", + setDiceRobotStatus: "setDiceRobotStatus", + setGameStatus: "setGameStatus", + setPrettyIdStatus: "setPrettyIdStatus", + setTaskDefinitionStatus: "setTaskDefinitionStatus", + setThirdPartyPaymentMethodStatus: "setThirdPartyPaymentMethodStatus", + setWeeklyStarCycleStatus: "setWeeklyStarCycleStatus", + sortMenus: "sortMenus", + syncPermissions: "syncPermissions", + syncThirdPartyPaymentRates: "syncThirdPartyPaymentRates", + updateAchievementDefinition: "updateAchievementDefinition", + updateAppVersion: "updateAppVersion", + updateBanner: "updateBanner", + updateCatalog: "updateCatalog", + updateCountry: "updateCountry", + updateCumulativeRechargeRewardConfig: "updateCumulativeRechargeRewardConfig", + updateDiceConfig: "updateDiceConfig", + updateExploreTab: "updateExploreTab", + updateFirstRechargeRewardConfig: "updateFirstRechargeRewardConfig", + updateGift: "updateGift", + updateGiftType: "updateGiftType", + updateGiftTypes: "updateGiftTypes", + updateH5Link: "updateH5Link", + updateH5Links: "updateH5Links", + updateHostAgencyPolicy: "updateHostAgencyPolicy", + updateInviteActivityRewardConfig: "updateInviteActivityRewardConfig", + updateMenu: "updateMenu", + updateMenuVisible: "updateMenuVisible", + updatePermission: "updatePermission", + updatePlatform: "updatePlatform", + updatePopup: "updatePopup", + updatePrettyIdPool: "updatePrettyIdPool", + updateRechargeProduct: "updateRechargeProduct", + updateRedPacketConfig: "updateRedPacketConfig", + updateRegion: "updateRegion", + updateRegistrationRewardConfig: "updateRegistrationRewardConfig", + updateResource: "updateResource", + updateResourceGroup: "updateResourceGroup", + updateResourceGroupItems: "updateResourceGroupItems", + updateRole: "updateRole", + updateRoom: "updateRoom", + updateRoomConfig: "updateRoomConfig", + updateRoomRocketConfig: "updateRoomRocketConfig", + updateRoomRpsConfig: "updateRoomRpsConfig", + updateRoomTurnoverRewardConfig: "updateRoomTurnoverRewardConfig", + updateSevenDayCheckInConfig: "updateSevenDayCheckInConfig", + updateSplashScreen: "updateSplashScreen", + updateTaskDefinition: "updateTaskDefinition", + updateTeamSalaryPolicy: "updateTeamSalaryPolicy", + updateThirdPartyPaymentRate: "updateThirdPartyPaymentRate", + updateTier: "updateTier", + updateTrack: "updateTrack", + updateUser: "updateUser", + updateUserStatus: "updateUserStatus", + updateWeeklyStarCycle: "updateWeeklyStarCycle", + uploadFile: "uploadFile", + uploadImage: "uploadImage", + upsertLuckyGiftConfig: "upsertLuckyGiftConfig", + upsertResourceShopItems: "upsertResourceShopItems", + upsertRule: "upsertRule" } as const; export type ApiOperationId = (typeof API_OPERATIONS)[keyof typeof API_OPERATIONS]; export const API_ENDPOINTS: Record = { - appBanUser: { - method: "POST", - operationId: API_OPERATIONS.appBanUser, - path: "/v1/app/users/{id}/ban", - permission: "app-user:status", - permissions: ["app-user:status"], - }, - appGetUser: { - method: "GET", - operationId: API_OPERATIONS.appGetUser, - path: "/v1/app/users/{id}", - permission: "app-user:view", - permissions: ["app-user:view"], - }, - appListBannedUsers: { - method: "GET", - operationId: API_OPERATIONS.appListBannedUsers, - path: "/v1/app/users/bans", - permission: "app-user:view", - permissions: ["app-user:view"], - }, - appListLoginLogs: { - method: "GET", - operationId: API_OPERATIONS.appListLoginLogs, - path: "/v1/app/users/login-logs", - permission: "app-user:view", - permissions: ["app-user:view"], - }, - appListUserLoginLogs: { - method: "GET", - operationId: API_OPERATIONS.appListUserLoginLogs, - path: "/v1/app/users/{id}/login-logs", - permission: "app-user:view", - permissions: ["app-user:view"], - }, - appListUsers: { - method: "GET", - operationId: API_OPERATIONS.appListUsers, - path: "/v1/app/users", - permission: "app-user:view", - permissions: ["app-user:view"], - }, - appSetPassword: { - method: "POST", - operationId: API_OPERATIONS.appSetPassword, - path: "/v1/app/users/{id}/password", - permission: "app-user:password", - permissions: ["app-user:password"], - }, - appUnbanUser: { - method: "POST", - operationId: API_OPERATIONS.appUnbanUser, - path: "/v1/app/users/{id}/unban", - permission: "app-user:status", - permissions: ["app-user:status"], - }, - appUpdateUser: { - method: "PATCH", - operationId: API_OPERATIONS.appUpdateUser, - path: "/v1/app/users/{id}", - permission: "app-user:update", - permissions: ["app-user:update"], - }, - batchUpdateUserStatus: { - method: "POST", - operationId: API_OPERATIONS.batchUpdateUserStatus, - path: "/v1/users/batch/status", - permission: "user:status", - permissions: ["user:status"], - }, - cancelRoomPin: { - method: "DELETE", - operationId: API_OPERATIONS.cancelRoomPin, - path: "/v1/admin/rooms/pins/{pin_id}", - permission: "room-pin:cancel", - permissions: ["room-pin:cancel"], - }, - changePassword: { - method: "POST", - operationId: API_OPERATIONS.changePassword, - path: "/v1/auth/change-password", - }, - closeAgency: { - method: "POST", - operationId: API_OPERATIONS.closeAgency, - path: "/v1/admin/agencies/{agency_id}/close", - permission: "agency:status", - permissions: ["agency:status"], - }, - createAchievementDefinition: { - method: "POST", - operationId: API_OPERATIONS.createAchievementDefinition, - path: "/v1/admin/activity/achievements", - permission: "achievement:create", - permissions: ["achievement:create"], - }, - createAgency: { - method: "POST", - operationId: API_OPERATIONS.createAgency, - path: "/v1/admin/agencies", - permission: "agency:create", - permissions: ["agency:create"], - }, - createAppVersion: { - method: "POST", - operationId: API_OPERATIONS.createAppVersion, - path: "/v1/admin/app-config/versions", - permission: "app-version:create", - permissions: ["app-version:create"], - }, - createBanner: { - method: "POST", - operationId: API_OPERATIONS.createBanner, - path: "/v1/admin/app-config/banners", - permission: "app-config:update", - permissions: ["app-config:update"], - }, - createBD: { - method: "POST", - operationId: API_OPERATIONS.createBD, - path: "/v1/admin/bds", - permission: "bd:create", - permissions: ["bd:create"], - }, - createBDLeader: { - method: "POST", - operationId: API_OPERATIONS.createBDLeader, - path: "/v1/admin/bd-leaders", - permission: "bd:create", - permissions: ["bd:create"], - }, - createCatalog: { - method: "POST", - operationId: API_OPERATIONS.createCatalog, - path: "/v1/admin/game/games", - permission: "game:create", - permissions: ["game:create"], - }, - createCoinAdjustment: { - method: "POST", - operationId: API_OPERATIONS.createCoinAdjustment, - path: "/v1/admin/operations/coin-adjustments", - permission: "coin-adjustment:create", - permissions: ["coin-adjustment:create"], - }, - createCoinSeller: { - method: "POST", - operationId: API_OPERATIONS.createCoinSeller, - path: "/v1/admin/coin-sellers", - permission: "coin-seller:create", - permissions: ["coin-seller:create"], - }, - createCountry: { - method: "POST", - operationId: API_OPERATIONS.createCountry, - path: "/v1/admin/countries", - permission: "country:create", - permissions: ["country:create"], - }, - createEmojiPack: { - method: "POST", - operationId: API_OPERATIONS.createEmojiPack, - path: "/v1/admin/emoji-packs", - permission: "emoji-pack:create", - permissions: ["emoji-pack:create"], - }, - createExploreTab: { - method: "POST", - operationId: API_OPERATIONS.createExploreTab, - path: "/v1/admin/app-config/explore-tabs", - permission: "app-config:update", - permissions: ["app-config:update"], - }, - createGift: { - method: "POST", - operationId: API_OPERATIONS.createGift, - path: "/v1/admin/gifts", - permission: "gift:create", - permissions: ["gift:create"], - }, - createH5Link: { - method: "POST", - operationId: API_OPERATIONS.createH5Link, - path: "/v1/admin/app-config/h5-links", - permission: "app-config:update", - permissions: ["app-config:update"], - }, - createHostAgencyPolicy: { - method: "POST", - operationId: API_OPERATIONS.createHostAgencyPolicy, - path: "/v1/admin/host-agency-policies", - permission: "host-agency-policy:create", - permissions: ["host-agency-policy:create"], - }, - createMenu: { - method: "POST", - operationId: API_OPERATIONS.createMenu, - path: "/v1/system/menus", - permission: "menu:create", - permissions: ["menu:create"], - }, - createPermission: { - method: "POST", - operationId: API_OPERATIONS.createPermission, - path: "/v1/permissions", - permission: "permission:create", - permissions: ["permission:create"], - }, - createPlatform: { - method: "POST", - operationId: API_OPERATIONS.createPlatform, - path: "/v1/admin/game/platforms", - permission: "game:update", - permissions: ["game:update"], - }, - createPopup: { - method: "POST", - operationId: API_OPERATIONS.createPopup, - path: "/v1/admin/app-config/popups", - permission: "app-config:update", - permissions: ["app-config:update"], - }, - createPrettyIdPool: { - method: "POST", - operationId: API_OPERATIONS.createPrettyIdPool, - path: "/v1/admin/users/pretty-id-pools", - permission: "pretty-id:update", - permissions: ["pretty-id:update"], - }, - createRechargeProduct: { - method: "POST", - operationId: API_OPERATIONS.createRechargeProduct, - path: "/v1/admin/payment/recharge-products", - permission: "payment-product:create", - permissions: ["payment-product:create"], - }, - createRegion: { - method: "POST", - operationId: API_OPERATIONS.createRegion, - path: "/v1/admin/regions", - permission: "region:create", - permissions: ["region:create"], - }, - createResource: { - method: "POST", - operationId: API_OPERATIONS.createResource, - path: "/v1/admin/resources", - permission: "resource:create", - permissions: ["resource:create"], - }, - createResourceGroup: { - method: "POST", - operationId: API_OPERATIONS.createResourceGroup, - path: "/v1/admin/resource-groups", - permission: "resource-group:create", - permissions: ["resource-group:create"], - }, - createRole: { - method: "POST", - operationId: API_OPERATIONS.createRole, - path: "/v1/roles", - permission: "role:create", - permissions: ["role:create", "role:manage"], - }, - createRoomPin: { - method: "POST", - operationId: API_OPERATIONS.createRoomPin, - path: "/v1/admin/rooms/pins", - permission: "room-pin:create", - permissions: ["room-pin:create"], - }, - createSplashScreen: { - method: "POST", - operationId: API_OPERATIONS.createSplashScreen, - path: "/v1/admin/app-config/splash-screens", - permission: "app-config:update", - permissions: ["app-config:update"], - }, - createTaskDefinition: { - method: "POST", - operationId: API_OPERATIONS.createTaskDefinition, - path: "/v1/admin/activity/daily-tasks", - permission: "daily-task:create", - permissions: ["daily-task:create"], - }, - createTeamSalaryPolicy: { - method: "POST", - operationId: API_OPERATIONS.createTeamSalaryPolicy, - path: "/v1/admin/team-salary-policies", - permission: "team-salary-policy:create", - permissions: ["team-salary-policy:create"], - }, - createTier: { - method: "POST", - operationId: API_OPERATIONS.createTier, - path: "/v1/admin/users/level-config/tiers", - permission: "level-config:update", - permissions: ["level-config:update"], - }, - createUser: { - method: "POST", - operationId: API_OPERATIONS.createUser, - path: "/v1/users", - permission: "user:create", - permissions: ["user:create"], - }, - createWeeklyStarCycle: { - method: "POST", - operationId: API_OPERATIONS.createWeeklyStarCycle, - path: "/v1/admin/activity/weekly-star/cycles", - permission: "weekly-star:create", - permissions: ["weekly-star:create"], - }, - creditCoinSellerStock: { - method: "POST", - operationId: API_OPERATIONS.creditCoinSellerStock, - path: "/v1/admin/coin-sellers/{user_id}/stock-credits", - permission: "coin-seller:stock-credit", - permissions: ["coin-seller:stock-credit"], - }, - dashboardOverview: { - method: "GET", - operationId: API_OPERATIONS.dashboardOverview, - path: "/v1/dashboard/overview", - permission: "overview:view", - permissions: ["overview:view"], - }, - deleteAgency: { - method: "POST", - operationId: API_OPERATIONS.deleteAgency, - path: "/v1/admin/agencies/{agency_id}/delete", - permission: "agency:delete", - permissions: ["agency:delete"], - }, - deleteAppVersion: { - method: "DELETE", - operationId: API_OPERATIONS.deleteAppVersion, - path: "/v1/admin/app-config/versions/{version_id}", - permission: "app-version:delete", - permissions: ["app-version:delete"], - }, - deleteBanner: { - method: "DELETE", - operationId: API_OPERATIONS.deleteBanner, - path: "/v1/admin/app-config/banners/{banner_id}", - permission: "app-config:update", - permissions: ["app-config:update"], - }, - deleteBDLeader: { - method: "DELETE", - operationId: API_OPERATIONS.deleteBDLeader, - path: "/v1/admin/bd-leaders/{user_id}", - permission: "bd:update", - permissions: ["bd:update"], - }, - deleteCatalog: { - method: "DELETE", - operationId: API_OPERATIONS.deleteCatalog, - path: "/v1/admin/game/games/{game_id}", - permission: "game:delete", - permissions: ["game:delete"], - }, - deleteCountry: { - method: "DELETE", - operationId: API_OPERATIONS.deleteCountry, - path: "/v1/admin/countries/{country_id}", - permission: "country:status", - permissions: ["country:status"], - }, - deleteDiceRobot: { - method: "DELETE", - operationId: API_OPERATIONS.deleteDiceRobot, - path: "/v1/admin/game/robots/{user_id}", - permission: "game:delete", - permissions: ["game:delete"], - }, - deleteExploreTab: { - method: "DELETE", - operationId: API_OPERATIONS.deleteExploreTab, - path: "/v1/admin/app-config/explore-tabs/{tab_id}", - permission: "app-config:update", - permissions: ["app-config:update"], - }, - deleteGift: { - method: "DELETE", - operationId: API_OPERATIONS.deleteGift, - path: "/v1/admin/gifts/{gift_id}", - permission: "gift:delete", - permissions: ["gift:delete"], - }, - deleteH5Link: { - method: "DELETE", - operationId: API_OPERATIONS.deleteH5Link, - path: "/v1/admin/app-config/h5-links/{key}", - permission: "app-config:update", - permissions: ["app-config:update"], - }, - deleteHostAgencyPolicy: { - method: "DELETE", - operationId: API_OPERATIONS.deleteHostAgencyPolicy, - path: "/v1/admin/host-agency-policies/{policy_id}", - permission: "host-agency-policy:delete", - permissions: ["host-agency-policy:delete"], - }, - deleteMenu: { - method: "DELETE", - operationId: API_OPERATIONS.deleteMenu, - path: "/v1/system/menus/{id}", - permission: "menu:delete", - permissions: ["menu:delete"], - }, - deletePermission: { - method: "DELETE", - operationId: API_OPERATIONS.deletePermission, - path: "/v1/permissions/{id}", - permission: "permission:delete", - permissions: ["permission:delete"], - }, - deletePopup: { - method: "DELETE", - operationId: API_OPERATIONS.deletePopup, - path: "/v1/admin/app-config/popups/{popup_id}", - permission: "app-config:update", - permissions: ["app-config:update"], - }, - deleteRechargeProduct: { - method: "DELETE", - operationId: API_OPERATIONS.deleteRechargeProduct, - path: "/v1/admin/payment/recharge-products/{product_id}", - permission: "payment-product:delete", - permissions: ["payment-product:delete"], - }, - deleteRole: { - method: "DELETE", - operationId: API_OPERATIONS.deleteRole, - path: "/v1/roles/{id}", - permission: "role:delete", - permissions: ["role:delete", "role:manage"], - }, - deleteRoom: { - method: "DELETE", - operationId: API_OPERATIONS.deleteRoom, - path: "/v1/admin/rooms/{room_id}", - permission: "room:delete", - permissions: ["room:delete"], - }, - deleteSplashScreen: { - method: "DELETE", - operationId: API_OPERATIONS.deleteSplashScreen, - path: "/v1/admin/app-config/splash-screens/{splash_id}", - permission: "app-config:update", - permissions: ["app-config:update"], - }, - deleteTeamSalaryPolicy: { - method: "DELETE", - operationId: API_OPERATIONS.deleteTeamSalaryPolicy, - path: "/v1/admin/team-salary-policies/{policy_id}", - permission: "team-salary-policy:delete", - permissions: ["team-salary-policy:delete"], - }, - disableCountry: { - method: "POST", - operationId: API_OPERATIONS.disableCountry, - path: "/v1/admin/countries/{country_id}/disable", - permission: "country:status", - permissions: ["country:status"], - }, - disableGift: { - method: "POST", - operationId: API_OPERATIONS.disableGift, - path: "/v1/admin/gifts/{gift_id}/disable", - permission: "gift:status", - permissions: ["gift:status"], - }, - disableRegion: { - method: "DELETE", - operationId: API_OPERATIONS.disableRegion, - path: "/v1/admin/regions/{region_id}", - permission: "region:status", - permissions: ["region:status"], - }, - disableResource: { - method: "POST", - operationId: API_OPERATIONS.disableResource, - path: "/v1/admin/resources/{resource_id}/disable", - permission: "resource:update", - permissions: ["resource:update"], - }, - disableResourceGroup: { - method: "POST", - operationId: API_OPERATIONS.disableResourceGroup, - path: "/v1/admin/resource-groups/{group_id}/disable", - permission: "resource-group:update", - permissions: ["resource-group:update"], - }, - disableResourceShopItem: { - method: "POST", - operationId: API_OPERATIONS.disableResourceShopItem, - path: "/v1/admin/resource-shop/items/{shop_item_id}/disable", - permission: "resource-shop:update", - permissions: ["resource-shop:update"], - }, - enableCountry: { - method: "POST", - operationId: API_OPERATIONS.enableCountry, - path: "/v1/admin/countries/{country_id}/enable", - permission: "country:status", - permissions: ["country:status"], - }, - enableGift: { - method: "POST", - operationId: API_OPERATIONS.enableGift, - path: "/v1/admin/gifts/{gift_id}/enable", - permission: "gift:status", - permissions: ["gift:status"], - }, - enableRegion: { - method: "POST", - operationId: API_OPERATIONS.enableRegion, - path: "/v1/admin/regions/{region_id}/enable", - permission: "region:status", - permissions: ["region:status"], - }, - enableResource: { - method: "POST", - operationId: API_OPERATIONS.enableResource, - path: "/v1/admin/resources/{resource_id}/enable", - permission: "resource:update", - permissions: ["resource:update"], - }, - enableResourceGroup: { - method: "POST", - operationId: API_OPERATIONS.enableResourceGroup, - path: "/v1/admin/resource-groups/{group_id}/enable", - permission: "resource-group:update", - permissions: ["resource-group:update"], - }, - enableResourceShopItem: { - method: "POST", - operationId: API_OPERATIONS.enableResourceShopItem, - path: "/v1/admin/resource-shop/items/{shop_item_id}/enable", - permission: "resource-shop:update", - permissions: ["resource-shop:update"], - }, - expireRoomRpsChallenge: { - method: "POST", - operationId: API_OPERATIONS.expireRoomRpsChallenge, - path: "/v1/admin/game/room-rps/challenges/{challenge_id}/expire", - permission: "game:update", - permissions: ["game:update"], - }, - exportLoginLogs: { - method: "GET", - operationId: API_OPERATIONS.exportLoginLogs, - path: "/v1/logs/login/export", - permission: "log:export", - permissions: ["log:export"], - }, - exportOperationLogs: { - method: "GET", - operationId: API_OPERATIONS.exportOperationLogs, - path: "/v1/logs/operations/export", - permission: "log:export", - permissions: ["log:export"], - }, - exportUsers: { - method: "GET", - operationId: API_OPERATIONS.exportUsers, - path: "/v1/users/export", - permission: "user:export", - permissions: ["user:export"], - }, - generateDiceRobots: { - method: "POST", - operationId: API_OPERATIONS.generateDiceRobots, - path: "/v1/admin/game/robots/generate", - permission: "game:create", - permissions: ["game:create"], - }, - generatePrettyIds: { - method: "POST", - operationId: API_OPERATIONS.generatePrettyIds, - path: "/v1/admin/users/pretty-id-pools/{pool_id}/generate", - permission: "pretty-id:generate", - permissions: ["pretty-id:generate"], - }, - getCoinSellerSalaryRates: { - method: "GET", - operationId: API_OPERATIONS.getCoinSellerSalaryRates, - path: "/v1/admin/coin-seller-salary-rates/{region_id}", - permission: "coin-seller:exchange-rate", - permissions: ["coin-seller:exchange-rate"], - }, - getCountry: { - method: "GET", - operationId: API_OPERATIONS.getCountry, - path: "/v1/admin/countries/{country_id}", - permission: "country:view", - permissions: ["country:view"], - }, - getCumulativeRechargeRewardConfig: { - method: "GET", - operationId: API_OPERATIONS.getCumulativeRechargeRewardConfig, - path: "/v1/admin/activity/cumulative-recharge-reward/config", - permission: "cumulative-recharge-reward:view", - permissions: ["cumulative-recharge-reward:view"], - }, - getFirstRechargeRewardConfig: { - method: "GET", - operationId: API_OPERATIONS.getFirstRechargeRewardConfig, - path: "/v1/admin/activity/first-recharge-reward/config", - permission: "first-recharge-reward:view", - permissions: ["first-recharge-reward:view"], - }, - getInviteActivityRewardConfig: { - method: "GET", - operationId: API_OPERATIONS.getInviteActivityRewardConfig, - path: "/v1/admin/activity/invite-reward/config", - permission: "invite-activity-reward:view", - permissions: ["invite-activity-reward:view"], - }, - getLuckyGiftConfig: { - method: "GET", - operationId: API_OPERATIONS.getLuckyGiftConfig, - path: "/v1/admin/activity/lucky-gifts/v2/config", - permission: "lucky-gift:view", - permissions: ["lucky-gift:view"], - }, - getLuckyGiftDrawSummary: { - method: "GET", - operationId: API_OPERATIONS.getLuckyGiftDrawSummary, - path: "/v1/admin/activity/lucky-gifts/v2/draw-summary", - permission: "lucky-gift:view", - permissions: ["lucky-gift:view"], - }, - getRedPacket: { - method: "GET", - operationId: API_OPERATIONS.getRedPacket, - path: "/v1/admin/activity/red-packets/{packet_id}", - permission: "red-packet:view", - permissions: ["red-packet:view"], - }, - getRedPacketConfig: { - method: "GET", - operationId: API_OPERATIONS.getRedPacketConfig, - path: "/v1/admin/activity/red-packets/config", - permission: "red-packet:view", - permissions: ["red-packet:view"], - }, - getRegion: { - method: "GET", - operationId: API_OPERATIONS.getRegion, - path: "/v1/admin/regions/{region_id}", - permission: "region:view", - permissions: ["region:view"], - }, - getRegistrationRewardConfig: { - method: "GET", - operationId: API_OPERATIONS.getRegistrationRewardConfig, - path: "/v1/admin/activity/registration-reward/config", - permission: "registration-reward:view", - permissions: ["registration-reward:view"], - }, - getResource: { - method: "GET", - operationId: API_OPERATIONS.getResource, - path: "/v1/admin/resources/{resource_id}", - permission: "resource:view", - permissions: ["resource:view"], - }, - getResourceGroup: { - method: "GET", - operationId: API_OPERATIONS.getResourceGroup, - path: "/v1/admin/resource-groups/{group_id}", - permission: "resource-group:view", - permissions: ["resource-group:view"], - }, - getRoleDataScopes: { - method: "GET", - operationId: API_OPERATIONS.getRoleDataScopes, - path: "/v1/roles/{id}/data-scopes", - permission: "role:data-scope", - permissions: ["role:data-scope"], - }, - getRoomConfig: { - method: "GET", - operationId: API_OPERATIONS.getRoomConfig, - path: "/v1/admin/rooms/config", - permission: "room-config:view", - permissions: ["room-config:view"], - }, - getRoomRocketConfig: { - method: "GET", - operationId: API_OPERATIONS.getRoomRocketConfig, - path: "/v1/admin/activity/room-rocket/config", - permission: "room-rocket:view", - permissions: ["room-rocket:view"], - }, - getRoomRpsChallenge: { - method: "GET", - operationId: API_OPERATIONS.getRoomRpsChallenge, - path: "/v1/admin/game/room-rps/challenges/{challenge_id}", - permission: "game:view", - permissions: ["game:view"], - }, - getRoomRpsConfig: { - method: "GET", - operationId: API_OPERATIONS.getRoomRpsConfig, - path: "/v1/admin/game/room-rps/config", - permission: "game:view", - permissions: ["game:view"], - }, - getRoomTurnoverRewardConfig: { - method: "GET", - operationId: API_OPERATIONS.getRoomTurnoverRewardConfig, - path: "/v1/admin/activity/room-turnover-reward/config", - permission: "room-turnover-reward:view", - permissions: ["room-turnover-reward:view"], - }, - getSevenDayCheckInConfig: { - method: "GET", - operationId: API_OPERATIONS.getSevenDayCheckInConfig, - path: "/v1/admin/activity/seven-day-checkin/config", - permission: "seven-day-checkin:view", - permissions: ["seven-day-checkin:view"], - }, - getUser: { - method: "GET", - operationId: API_OPERATIONS.getUser, - path: "/v1/users/{id}", - permission: "user:view", - permissions: ["user:view"], - }, - getWeeklyStarCycle: { - method: "GET", - operationId: API_OPERATIONS.getWeeklyStarCycle, - path: "/v1/admin/activity/weekly-star/cycles/{cycle_id}", - permission: "weekly-star:view", - permissions: ["weekly-star:view"], - }, - grantPrettyId: { - method: "POST", - operationId: API_OPERATIONS.grantPrettyId, - path: "/v1/admin/users/pretty-ids/grant", - permission: "pretty-id:grant", - permissions: ["pretty-id:grant"], - }, - grantResource: { - method: "POST", - operationId: API_OPERATIONS.grantResource, - path: "/v1/admin/resource-grants/resource", - permission: "resource-grant:create", - permissions: ["resource-grant:create"], - }, - grantResourceGroup: { - method: "POST", - operationId: API_OPERATIONS.grantResourceGroup, - path: "/v1/admin/resource-grants/group", - permission: "resource-grant:create", - permissions: ["resource-grant:create"], - }, - listAchievementDefinitions: { - method: "GET", - operationId: API_OPERATIONS.listAchievementDefinitions, - path: "/v1/admin/activity/achievements", - permission: "achievement:view", - permissions: ["achievement:view"], - }, - listAgencies: { - method: "GET", - operationId: API_OPERATIONS.listAgencies, - path: "/v1/admin/agencies", - permission: "agency:view", - permissions: ["agency:view"], - }, - listApps: { - method: "GET", - operationId: API_OPERATIONS.listApps, - path: "/v1/admin/apps", - }, - listAppVersions: { - method: "GET", - operationId: API_OPERATIONS.listAppVersions, - path: "/v1/admin/app-config/versions", - permission: "app-version:view", - permissions: ["app-version:view"], - }, - listBanners: { - method: "GET", - operationId: API_OPERATIONS.listBanners, - path: "/v1/admin/app-config/banners", - permission: "app-config:view", - permissions: ["app-config:view"], - }, - listBDLeaders: { - method: "GET", - operationId: API_OPERATIONS.listBDLeaders, - path: "/v1/admin/bd-leaders", - permission: "bd:view", - permissions: ["bd:view"], - }, - listBDs: { - method: "GET", - operationId: API_OPERATIONS.listBDs, - path: "/v1/admin/bds", - permission: "bd:view", - permissions: ["bd:view"], - }, - listCatalog: { - method: "GET", - operationId: API_OPERATIONS.listCatalog, - path: "/v1/admin/game/games", - permission: "game:view", - permissions: ["game:view"], - }, - listCoinAdjustments: { - method: "GET", - operationId: API_OPERATIONS.listCoinAdjustments, - path: "/v1/admin/operations/coin-adjustments", - permission: "coin-adjustment:view", - permissions: ["coin-adjustment:view"], - }, - listCoinLedger: { - method: "GET", - operationId: API_OPERATIONS.listCoinLedger, - path: "/v1/admin/operations/coin-ledger", - permission: "coin-ledger:view", - permissions: ["coin-ledger:view"], - }, - listCoinSellerLedger: { - method: "GET", - operationId: API_OPERATIONS.listCoinSellerLedger, - path: "/v1/admin/operations/coin-seller-ledger", - permission: "coin-seller-ledger:view", - permissions: ["coin-seller-ledger:view"], - }, - listCoinSellers: { - method: "GET", - operationId: API_OPERATIONS.listCoinSellers, - path: "/v1/admin/coin-sellers", - permission: "coin-seller:view", - permissions: ["coin-seller:view"], - }, - listCountries: { - method: "GET", - operationId: API_OPERATIONS.listCountries, - path: "/v1/admin/countries", - permission: "country:view", - permissions: ["country:view"], - }, - listCumulativeRechargeRewardGrants: { - method: "GET", - operationId: API_OPERATIONS.listCumulativeRechargeRewardGrants, - path: "/v1/admin/activity/cumulative-recharge-reward/grants", - permission: "cumulative-recharge-reward:view", - permissions: ["cumulative-recharge-reward:view"], - }, - listDiceRobots: { - method: "GET", - operationId: API_OPERATIONS.listDiceRobots, - path: "/v1/admin/game/robots", - permission: "game:view", - permissions: ["game:view"], - }, - listEmojiPackCategories: { - method: "GET", - operationId: API_OPERATIONS.listEmojiPackCategories, - path: "/v1/admin/emoji-packs/categories", - permission: "emoji-pack:view", - permissions: ["emoji-pack:view"], - }, - listEmojiPacks: { - method: "GET", - operationId: API_OPERATIONS.listEmojiPacks, - path: "/v1/admin/emoji-packs", - permission: "emoji-pack:view", - permissions: ["emoji-pack:view"], - }, - listExploreTabs: { - method: "GET", - operationId: API_OPERATIONS.listExploreTabs, - path: "/v1/admin/app-config/explore-tabs", - permission: "app-config:view", - permissions: ["app-config:view"], - }, - listFirstRechargeRewardClaims: { - method: "GET", - operationId: API_OPERATIONS.listFirstRechargeRewardClaims, - path: "/v1/admin/activity/first-recharge-reward/claims", - permission: "first-recharge-reward:view", - permissions: ["first-recharge-reward:view"], - }, - listGifts: { - method: "GET", - operationId: API_OPERATIONS.listGifts, - path: "/v1/admin/gifts", - permission: "gift:view", - permissions: ["gift:view"], - }, - listGiftTypes: { - method: "GET", - operationId: API_OPERATIONS.listGiftTypes, - path: "/v1/admin/gift-types", - permission: "gift:view", - permissions: ["gift:view"], - }, - listH5Links: { - method: "GET", - operationId: API_OPERATIONS.listH5Links, - path: "/v1/admin/app-config/h5-links", - permission: "app-config:view", - permissions: ["app-config:view"], - }, - listHostAgencyPolicies: { - method: "GET", - operationId: API_OPERATIONS.listHostAgencyPolicies, - path: "/v1/admin/host-agency-policies", - permission: "host-agency-policy:view", - permissions: ["host-agency-policy:view"], - }, - listHosts: { - method: "GET", - operationId: API_OPERATIONS.listHosts, - path: "/v1/admin/hosts", - permission: "host:view", - permissions: ["host:view"], - }, - listHostSalarySettlements: { - method: "GET", - operationId: API_OPERATIONS.listHostSalarySettlements, - path: "/v1/admin/host-salary-settlements", - permission: "host-salary-settlement:view", - permissions: ["host-salary-settlement:view"], - }, - listInviteActivityRewardClaims: { - method: "GET", - operationId: API_OPERATIONS.listInviteActivityRewardClaims, - path: "/v1/admin/activity/invite-reward/claims", - permission: "invite-activity-reward:view", - permissions: ["invite-activity-reward:view"], - }, - listLevelConfig: { - method: "GET", - operationId: API_OPERATIONS.listLevelConfig, - path: "/v1/admin/users/level-config", - permission: "level-config:view", - permissions: ["level-config:view"], - }, - listLoginLogs: { - method: "GET", - operationId: API_OPERATIONS.listLoginLogs, - path: "/v1/logs/login", - permission: "log:view", - permissions: ["log:view"], - }, - listLuckyGiftConfigs: { - method: "GET", - operationId: API_OPERATIONS.listLuckyGiftConfigs, - path: "/v1/admin/activity/lucky-gifts/v2/configs", - permission: "lucky-gift:view", - permissions: ["lucky-gift:view"], - }, - listLuckyGiftDraws: { - method: "GET", - operationId: API_OPERATIONS.listLuckyGiftDraws, - path: "/v1/admin/activity/lucky-gifts/v2/draws", - permission: "lucky-gift:view", - permissions: ["lucky-gift:view"], - }, - listOperationLogs: { - method: "GET", - operationId: API_OPERATIONS.listOperationLogs, - path: "/v1/logs/operations", - permission: "log:view", - permissions: ["log:view"], - }, - listPermissions: { - method: "GET", - operationId: API_OPERATIONS.listPermissions, - path: "/v1/permissions", - permission: "permission:view", - permissions: ["permission:view", "role:permission", "role:manage"], - }, - listPlatforms: { - method: "GET", - operationId: API_OPERATIONS.listPlatforms, - path: "/v1/admin/game/platforms", - permission: "game:view", - permissions: ["game:view"], - }, - listPopups: { - method: "GET", - operationId: API_OPERATIONS.listPopups, - path: "/v1/admin/app-config/popups", - permission: "app-config:view", - permissions: ["app-config:view"], - }, - listPrettyIdPools: { - method: "GET", - operationId: API_OPERATIONS.listPrettyIdPools, - path: "/v1/admin/users/pretty-id-pools", - permission: "pretty-id:view", - permissions: ["pretty-id:view"], - }, - listPrettyIds: { - method: "GET", - operationId: API_OPERATIONS.listPrettyIds, - path: "/v1/admin/users/pretty-ids", - permission: "pretty-id:view", - permissions: ["pretty-id:view"], - }, - listRechargeBills: { - method: "GET", - operationId: API_OPERATIONS.listRechargeBills, - path: "/v1/admin/payment/recharge-bills", - permission: "payment-bill:view", - permissions: ["payment-bill:view"], - }, - listRechargeProducts: { - method: "GET", - operationId: API_OPERATIONS.listRechargeProducts, - path: "/v1/admin/payment/recharge-products", - permission: "payment-product:view", - permissions: ["payment-product:view"], - }, - listRedPackets: { - method: "GET", - operationId: API_OPERATIONS.listRedPackets, - path: "/v1/admin/activity/red-packets", - permission: "red-packet:view", - permissions: ["red-packet:view"], - }, - listRegionBlocks: { - method: "GET", - operationId: API_OPERATIONS.listRegionBlocks, - path: "/v1/admin/users/region-blocks", - permission: "region-block:view", - permissions: ["region-block:view"], - }, - listRegions: { - method: "GET", - operationId: API_OPERATIONS.listRegions, - path: "/v1/admin/regions", - permission: "region:view", - permissions: ["region:view"], - }, - listRegistrationRewardClaims: { - method: "GET", - operationId: API_OPERATIONS.listRegistrationRewardClaims, - path: "/v1/admin/activity/registration-reward/claims", - permission: "registration-reward:view", - permissions: ["registration-reward:view"], - }, - listReports: { - method: "GET", - operationId: API_OPERATIONS.listReports, - path: "/v1/admin/operations/reports", - permission: "report:view", - permissions: ["report:view"], - }, - listResourceGrants: { - method: "GET", - operationId: API_OPERATIONS.listResourceGrants, - path: "/v1/admin/resource-grants", - permission: "resource-grant:view", - permissions: ["resource-grant:view"], - }, - listResourceGroups: { - method: "GET", - operationId: API_OPERATIONS.listResourceGroups, - path: "/v1/admin/resource-groups", - permission: "resource-group:view", - permissions: ["resource-group:view"], - }, - listResources: { - method: "GET", - operationId: API_OPERATIONS.listResources, - path: "/v1/admin/resources", - permission: "resource:view", - permissions: ["resource:view"], - }, - listResourceShopItems: { - method: "GET", - operationId: API_OPERATIONS.listResourceShopItems, - path: "/v1/admin/resource-shop/items", - permission: "resource-shop:view", - permissions: ["resource-shop:view"], - }, - listRoles: { - method: "GET", - operationId: API_OPERATIONS.listRoles, - path: "/v1/roles", - permission: "role:view", - permissions: ["role:view"], - }, - listRoomPins: { - method: "GET", - operationId: API_OPERATIONS.listRoomPins, - path: "/v1/admin/rooms/pins", - permission: "room-pin:view", - permissions: ["room-pin:view"], - }, - listRoomRpsChallenges: { - method: "GET", - operationId: API_OPERATIONS.listRoomRpsChallenges, - path: "/v1/admin/game/room-rps/challenges", - permission: "game:view", - permissions: ["game:view"], - }, - listRooms: { - method: "GET", - operationId: API_OPERATIONS.listRooms, - path: "/v1/admin/rooms", - permission: "room:view", - permissions: ["room:view"], - }, - listRoomTurnoverRewardSettlements: { - method: "GET", - operationId: API_OPERATIONS.listRoomTurnoverRewardSettlements, - path: "/v1/admin/activity/room-turnover-reward/settlements", - permission: "room-turnover-reward:view", - permissions: ["room-turnover-reward:view"], - }, - listSelfGames: { - method: "GET", - operationId: API_OPERATIONS.listSelfGames, - path: "/v1/admin/game/self-games", - permission: "game:view", - permissions: ["game:view"], - }, - listSevenDayCheckInClaims: { - method: "GET", - operationId: API_OPERATIONS.listSevenDayCheckInClaims, - path: "/v1/admin/activity/seven-day-checkin/claims", - permission: "seven-day-checkin:view", - permissions: ["seven-day-checkin:view"], - }, - listSplashScreens: { - method: "GET", - operationId: API_OPERATIONS.listSplashScreens, - path: "/v1/admin/app-config/splash-screens", - permission: "app-config:view", - permissions: ["app-config:view"], - }, - listSystemMenus: { - method: "GET", - operationId: API_OPERATIONS.listSystemMenus, - path: "/v1/system/menus", - permission: "menu:view", - permissions: ["menu:view"], - }, - listTaskDefinitions: { - method: "GET", - operationId: API_OPERATIONS.listTaskDefinitions, - path: "/v1/admin/activity/daily-tasks", - permission: "daily-task:view", - permissions: ["daily-task:view"], - }, - listTeamSalaryPolicies: { - method: "GET", - operationId: API_OPERATIONS.listTeamSalaryPolicies, - path: "/v1/admin/team-salary-policies", - permission: "team-salary-policy:view", - permissions: ["team-salary-policy:view"], - }, - listThirdPartyPaymentChannels: { - method: "GET", - operationId: API_OPERATIONS.listThirdPartyPaymentChannels, - path: "/v1/admin/payment/third-party-channels", - permission: "payment-third-party:view", - permissions: ["payment-third-party:view"], - }, - listUserLeaderboards: { - method: "GET", - operationId: API_OPERATIONS.listUserLeaderboards, - path: "/v1/admin/activity/user-leaderboards", - permission: "user-leaderboard:view", - permissions: ["user-leaderboard:view"], - }, - listUsers: { - method: "GET", - operationId: API_OPERATIONS.listUsers, - path: "/v1/users", - permission: "user:view", - permissions: ["user:view"], - }, - listWeeklyStarCycles: { - method: "GET", - operationId: API_OPERATIONS.listWeeklyStarCycles, - path: "/v1/admin/activity/weekly-star/cycles", - permission: "weekly-star:view", - permissions: ["weekly-star:view"], - }, - listWeeklyStarLeaderboard: { - method: "GET", - operationId: API_OPERATIONS.listWeeklyStarLeaderboard, - path: "/v1/admin/activity/weekly-star/cycles/{cycle_id}/leaderboard", - permission: "weekly-star:view", - permissions: ["weekly-star:view"], - }, - listWeeklyStarSettlements: { - method: "GET", - operationId: API_OPERATIONS.listWeeklyStarSettlements, - path: "/v1/admin/activity/weekly-star/cycles/{cycle_id}/settlements", - permission: "weekly-star:settle", - permissions: ["weekly-star:settle"], - }, - login: { - method: "POST", - operationId: API_OPERATIONS.login, - path: "/v1/auth/login", - }, - logout: { - method: "POST", - operationId: API_OPERATIONS.logout, - path: "/v1/auth/logout", - }, - lookupCoinAdjustmentTarget: { - method: "GET", - operationId: API_OPERATIONS.lookupCoinAdjustmentTarget, - path: "/v1/admin/operations/coin-adjustments/target", - permission: "coin-adjustment:create", - permissions: ["coin-adjustment:create"], - }, - lookupResourceGrantTarget: { - method: "GET", - operationId: API_OPERATIONS.lookupResourceGrantTarget, - path: "/v1/admin/resource-grants/target", - permission: "resource-grant:create", - permissions: ["resource-grant:create"], - }, - me: { - method: "GET", - operationId: API_OPERATIONS.me, - path: "/v1/auth/me", - }, - navigationMenus: { - method: "GET", - operationId: API_OPERATIONS.navigationMenus, - path: "/v1/navigation/menus", - }, - publishHostAgencyPolicy: { - method: "POST", - operationId: API_OPERATIONS.publishHostAgencyPolicy, - path: "/v1/admin/host-agency-policies/{policy_id}/publish", - permission: "host-agency-policy:publish", - permissions: ["host-agency-policy:publish"], - }, - refresh: { - method: "POST", - operationId: API_OPERATIONS.refresh, - path: "/v1/auth/refresh", - }, - replaceCoinSellerSalaryRates: { - method: "PUT", - operationId: API_OPERATIONS.replaceCoinSellerSalaryRates, - path: "/v1/admin/coin-seller-salary-rates/{region_id}", - permission: "coin-seller:exchange-rate", - permissions: ["coin-seller:exchange-rate"], - }, - replaceRegionBlocks: { - method: "PUT", - operationId: API_OPERATIONS.replaceRegionBlocks, - path: "/v1/admin/users/region-blocks", - permission: "region-block:update", - permissions: ["region-block:update"], - }, - replaceRegionCountries: { - method: "PUT", - operationId: API_OPERATIONS.replaceRegionCountries, - path: "/v1/admin/regions/{region_id}/countries", - permission: "region:update", - permissions: ["region:update"], - }, - replaceRoleDataScopes: { - method: "PUT", - operationId: API_OPERATIONS.replaceRoleDataScopes, - path: "/v1/roles/{id}/data-scopes", - permission: "role:data-scope", - permissions: ["role:data-scope"], - }, - replaceRolePermissions: { - method: "PUT", - operationId: API_OPERATIONS.replaceRolePermissions, - path: "/v1/roles/{id}/permissions", - permission: "role:permission", - permissions: ["role:permission", "role:manage"], - }, - resetUserPassword: { - method: "POST", - operationId: API_OPERATIONS.resetUserPassword, - path: "/v1/users/{id}/reset-password", - permission: "user:reset-password", - permissions: ["user:reset-password"], - }, - retryRedPacketRefund: { - method: "POST", - operationId: API_OPERATIONS.retryRedPacketRefund, - path: "/v1/admin/activity/red-packets/refund/retry", - permission: "red-packet:update", - permissions: ["red-packet:update"], - }, - retryRoomRpsSettlement: { - method: "POST", - operationId: API_OPERATIONS.retryRoomRpsSettlement, - path: "/v1/admin/game/room-rps/challenges/{challenge_id}/retry-settlement", - permission: "game:update", - permissions: ["game:update"], - }, - retryRoomTurnoverRewardSettlement: { - method: "POST", - operationId: API_OPERATIONS.retryRoomTurnoverRewardSettlement, - path: "/v1/admin/activity/room-turnover-reward/settlements/{settlement_id}/retry", - permission: "room-turnover-reward:retry", - permissions: ["room-turnover-reward:retry"], - }, - search: { - method: "GET", - operationId: API_OPERATIONS.search, - path: "/v1/search", - }, - setAgencyJoinEnabled: { - method: "POST", - operationId: API_OPERATIONS.setAgencyJoinEnabled, - path: "/v1/admin/agencies/{agency_id}/join-enabled", - permission: "agency:status", - permissions: ["agency:status"], - }, - setBDLeaderStatus: { - method: "PATCH", - operationId: API_OPERATIONS.setBDLeaderStatus, - path: "/v1/admin/bd-leaders/{user_id}/status", - permission: "bd:update", - permissions: ["bd:update"], - }, - setBDStatus: { - method: "PATCH", - operationId: API_OPERATIONS.setBDStatus, - path: "/v1/admin/bds/{user_id}/status", - permission: "bd:update", - permissions: ["bd:update"], - }, - setCoinSellerStatus: { - method: "PATCH", - operationId: API_OPERATIONS.setCoinSellerStatus, - path: "/v1/admin/coin-sellers/{user_id}/status", - permission: "coin-seller:update", - permissions: ["coin-seller:update"], - }, - setDiceRobotStatus: { - method: "PATCH", - operationId: API_OPERATIONS.setDiceRobotStatus, - path: "/v1/admin/game/robots/{user_id}/status", - permission: "game:update", - permissions: ["game:update"], - }, - setGameStatus: { - method: "PATCH", - operationId: API_OPERATIONS.setGameStatus, - path: "/v1/admin/game/games/{game_id}/status", - permission: "game:status", - permissions: ["game:status"], - }, - setPrettyIdStatus: { - method: "POST", - operationId: API_OPERATIONS.setPrettyIdStatus, - path: "/v1/admin/users/pretty-ids/{pretty_id}/status", - permission: "pretty-id:update", - permissions: ["pretty-id:update"], - }, - setTaskDefinitionStatus: { - method: "POST", - operationId: API_OPERATIONS.setTaskDefinitionStatus, - path: "/v1/admin/activity/daily-tasks/{task_id}/status", - permission: "daily-task:status", - permissions: ["daily-task:status"], - }, - setThirdPartyPaymentMethodStatus: { - method: "PATCH", - operationId: API_OPERATIONS.setThirdPartyPaymentMethodStatus, - path: "/v1/admin/payment/third-party-methods/{method_id}/status", - permission: "payment-third-party:update", - permissions: ["payment-third-party:update"], - }, - setWeeklyStarCycleStatus: { - method: "PATCH", - operationId: API_OPERATIONS.setWeeklyStarCycleStatus, - path: "/v1/admin/activity/weekly-star/cycles/{cycle_id}/status", - permission: "weekly-star:update", - permissions: ["weekly-star:update"], - }, - sortMenus: { - method: "PUT", - operationId: API_OPERATIONS.sortMenus, - path: "/v1/system/menus/sort", - permission: "menu:sort", - permissions: ["menu:sort"], - }, - syncPermissions: { - method: "POST", - operationId: API_OPERATIONS.syncPermissions, - path: "/v1/permissions/sync", - permission: "permission:sync", - permissions: ["permission:sync"], - }, - updateAchievementDefinition: { - method: "PUT", - operationId: API_OPERATIONS.updateAchievementDefinition, - path: "/v1/admin/activity/achievements/{achievement_id}", - permission: "achievement:update", - permissions: ["achievement:update"], - }, - updateAppVersion: { - method: "PUT", - operationId: API_OPERATIONS.updateAppVersion, - path: "/v1/admin/app-config/versions/{version_id}", - permission: "app-version:update", - permissions: ["app-version:update"], - }, - updateBanner: { - method: "PUT", - operationId: API_OPERATIONS.updateBanner, - path: "/v1/admin/app-config/banners/{banner_id}", - permission: "app-config:update", - permissions: ["app-config:update"], - }, - updateCatalog: { - method: "PATCH", - operationId: API_OPERATIONS.updateCatalog, - path: "/v1/admin/game/games/{game_id}", - permission: "game:update", - permissions: ["game:update"], - }, - updateCountry: { - method: "PATCH", - operationId: API_OPERATIONS.updateCountry, - path: "/v1/admin/countries/{country_id}", - permission: "country:update", - permissions: ["country:update"], - }, - updateCumulativeRechargeRewardConfig: { - method: "PUT", - operationId: API_OPERATIONS.updateCumulativeRechargeRewardConfig, - path: "/v1/admin/activity/cumulative-recharge-reward/config", - permission: "cumulative-recharge-reward:update", - permissions: ["cumulative-recharge-reward:update"], - }, - updateDiceConfig: { - method: "PATCH", - operationId: API_OPERATIONS.updateDiceConfig, - path: "/v1/admin/game/self-games/{game_id}/config", - permission: "game:update", - permissions: ["game:update"], - }, - updateExploreTab: { - method: "PUT", - operationId: API_OPERATIONS.updateExploreTab, - path: "/v1/admin/app-config/explore-tabs/{tab_id}", - permission: "app-config:update", - permissions: ["app-config:update"], - }, - updateFirstRechargeRewardConfig: { - method: "PUT", - operationId: API_OPERATIONS.updateFirstRechargeRewardConfig, - path: "/v1/admin/activity/first-recharge-reward/config", - permission: "first-recharge-reward:update", - permissions: ["first-recharge-reward:update"], - }, - updateGift: { - method: "PUT", - operationId: API_OPERATIONS.updateGift, - path: "/v1/admin/gifts/{gift_id}", - permission: "gift:update", - permissions: ["gift:update"], - }, - updateGiftType: { - method: "PUT", - operationId: API_OPERATIONS.updateGiftType, - path: "/v1/admin/gift-types/{type_code}", - permission: "gift:update", - permissions: ["gift:update"], - }, - updateGiftTypes: { - method: "PUT", - operationId: API_OPERATIONS.updateGiftTypes, - path: "/v1/admin/gift-types", - permission: "gift:update", - permissions: ["gift:update"], - }, - updateH5Link: { - method: "PUT", - operationId: API_OPERATIONS.updateH5Link, - path: "/v1/admin/app-config/h5-links/{key}", - permission: "app-config:update", - permissions: ["app-config:update"], - }, - updateH5Links: { - method: "PUT", - operationId: API_OPERATIONS.updateH5Links, - path: "/v1/admin/app-config/h5-links", - permission: "app-config:update", - permissions: ["app-config:update"], - }, - updateHostAgencyPolicy: { - method: "PUT", - operationId: API_OPERATIONS.updateHostAgencyPolicy, - path: "/v1/admin/host-agency-policies/{policy_id}", - permission: "host-agency-policy:update", - permissions: ["host-agency-policy:update"], - }, - updateInviteActivityRewardConfig: { - method: "PUT", - operationId: API_OPERATIONS.updateInviteActivityRewardConfig, - path: "/v1/admin/activity/invite-reward/config", - permission: "invite-activity-reward:update", - permissions: ["invite-activity-reward:update"], - }, - updateMenu: { - method: "PATCH", - operationId: API_OPERATIONS.updateMenu, - path: "/v1/system/menus/{id}", - permission: "menu:update", - permissions: ["menu:update"], - }, - updateMenuVisible: { - method: "PATCH", - operationId: API_OPERATIONS.updateMenuVisible, - path: "/v1/system/menus/{id}/visible", - permission: "menu:visible", - permissions: ["menu:visible"], - }, - updatePermission: { - method: "PATCH", - operationId: API_OPERATIONS.updatePermission, - path: "/v1/permissions/{id}", - permission: "permission:update", - permissions: ["permission:update"], - }, - updatePlatform: { - method: "PATCH", - operationId: API_OPERATIONS.updatePlatform, - path: "/v1/admin/game/platforms/{platform_code}", - permission: "game:update", - permissions: ["game:update"], - }, - updatePopup: { - method: "PUT", - operationId: API_OPERATIONS.updatePopup, - path: "/v1/admin/app-config/popups/{popup_id}", - permission: "app-config:update", - permissions: ["app-config:update"], - }, - updatePrettyIdPool: { - method: "PUT", - operationId: API_OPERATIONS.updatePrettyIdPool, - path: "/v1/admin/users/pretty-id-pools/{pool_id}", - permission: "pretty-id:update", - permissions: ["pretty-id:update"], - }, - updateRechargeProduct: { - method: "PUT", - operationId: API_OPERATIONS.updateRechargeProduct, - path: "/v1/admin/payment/recharge-products/{product_id}", - permission: "payment-product:update", - permissions: ["payment-product:update"], - }, - updateRedPacketConfig: { - method: "PUT", - operationId: API_OPERATIONS.updateRedPacketConfig, - path: "/v1/admin/activity/red-packets/config", - permission: "red-packet:update", - permissions: ["red-packet:update"], - }, - updateRegion: { - method: "PATCH", - operationId: API_OPERATIONS.updateRegion, - path: "/v1/admin/regions/{region_id}", - permission: "region:update", - permissions: ["region:update"], - }, - updateRegistrationRewardConfig: { - method: "PUT", - operationId: API_OPERATIONS.updateRegistrationRewardConfig, - path: "/v1/admin/activity/registration-reward/config", - permission: "registration-reward:update", - permissions: ["registration-reward:update"], - }, - updateResource: { - method: "PUT", - operationId: API_OPERATIONS.updateResource, - path: "/v1/admin/resources/{resource_id}", - permission: "resource:update", - permissions: ["resource:update"], - }, - updateResourceGroup: { - method: "PUT", - operationId: API_OPERATIONS.updateResourceGroup, - path: "/v1/admin/resource-groups/{group_id}", - permission: "resource-group:update", - permissions: ["resource-group:update"], - }, - updateResourceGroupItems: { - method: "PUT", - operationId: API_OPERATIONS.updateResourceGroupItems, - path: "/v1/admin/resource-groups/{group_id}/items", - permission: "resource-group:update", - permissions: ["resource-group:update"], - }, - updateRole: { - method: "PATCH", - operationId: API_OPERATIONS.updateRole, - path: "/v1/roles/{id}", - permission: "role:update", - permissions: ["role:update", "role:manage"], - }, - updateRoom: { - method: "PATCH", - operationId: API_OPERATIONS.updateRoom, - path: "/v1/admin/rooms/{room_id}", - permission: "room:update", - permissions: ["room:update"], - }, - updateRoomConfig: { - method: "PUT", - operationId: API_OPERATIONS.updateRoomConfig, - path: "/v1/admin/rooms/config", - permission: "room-config:update", - permissions: ["room-config:update"], - }, - updateRoomRocketConfig: { - method: "PUT", - operationId: API_OPERATIONS.updateRoomRocketConfig, - path: "/v1/admin/activity/room-rocket/config", - permission: "room-rocket:update", - permissions: ["room-rocket:update"], - }, - updateRoomRpsConfig: { - method: "PATCH", - operationId: API_OPERATIONS.updateRoomRpsConfig, - path: "/v1/admin/game/room-rps/config", - permission: "game:update", - permissions: ["game:update"], - }, - updateRoomTurnoverRewardConfig: { - method: "PUT", - operationId: API_OPERATIONS.updateRoomTurnoverRewardConfig, - path: "/v1/admin/activity/room-turnover-reward/config", - permission: "room-turnover-reward:update", - permissions: ["room-turnover-reward:update"], - }, - updateSevenDayCheckInConfig: { - method: "PUT", - operationId: API_OPERATIONS.updateSevenDayCheckInConfig, - path: "/v1/admin/activity/seven-day-checkin/config", - permission: "seven-day-checkin:update", - permissions: ["seven-day-checkin:update"], - }, - updateSplashScreen: { - method: "PUT", - operationId: API_OPERATIONS.updateSplashScreen, - path: "/v1/admin/app-config/splash-screens/{splash_id}", - permission: "app-config:update", - permissions: ["app-config:update"], - }, - updateTaskDefinition: { - method: "PUT", - operationId: API_OPERATIONS.updateTaskDefinition, - path: "/v1/admin/activity/daily-tasks/{task_id}", - permission: "daily-task:update", - permissions: ["daily-task:update"], - }, - updateTeamSalaryPolicy: { - method: "PUT", - operationId: API_OPERATIONS.updateTeamSalaryPolicy, - path: "/v1/admin/team-salary-policies/{policy_id}", - permission: "team-salary-policy:update", - permissions: ["team-salary-policy:update"], - }, - updateThirdPartyPaymentRate: { - method: "PATCH", - operationId: API_OPERATIONS.updateThirdPartyPaymentRate, - path: "/v1/admin/payment/third-party-rates/{method_id}", - permission: "payment-third-party:update", - permissions: ["payment-third-party:update"], - }, - updateTier: { - method: "PUT", - operationId: API_OPERATIONS.updateTier, - path: "/v1/admin/users/level-config/tiers/{tier_id}", - permission: "level-config:update", - permissions: ["level-config:update"], - }, - updateTrack: { - method: "PUT", - operationId: API_OPERATIONS.updateTrack, - path: "/v1/admin/users/level-config/tracks/{track}", - permission: "level-config:update", - permissions: ["level-config:update"], - }, - updateUser: { - method: "PATCH", - operationId: API_OPERATIONS.updateUser, - path: "/v1/users/{id}", - permission: "user:update", - permissions: ["user:update"], - }, - updateUserStatus: { - method: "PATCH", - operationId: API_OPERATIONS.updateUserStatus, - path: "/v1/users/{id}/status", - permission: "user:status", - permissions: ["user:status"], - }, - updateWeeklyStarCycle: { - method: "PUT", - operationId: API_OPERATIONS.updateWeeklyStarCycle, - path: "/v1/admin/activity/weekly-star/cycles/{cycle_id}", - permission: "weekly-star:update", - permissions: ["weekly-star:update"], - }, - uploadFile: { - method: "POST", - operationId: API_OPERATIONS.uploadFile, - path: "/v1/admin/files/upload", - permission: "upload:create", - permissions: ["upload:create"], - }, - uploadImage: { - method: "POST", - operationId: API_OPERATIONS.uploadImage, - path: "/v1/admin/files/image/upload", - permission: "upload:create", - permissions: ["upload:create"], - }, - upsertLuckyGiftConfig: { - method: "PUT", - operationId: API_OPERATIONS.upsertLuckyGiftConfig, - path: "/v1/admin/activity/lucky-gifts/v2/config", - permission: "lucky-gift:update", - permissions: ["lucky-gift:update"], - }, - upsertResourceShopItems: { - method: "POST", - operationId: API_OPERATIONS.upsertResourceShopItems, - path: "/v1/admin/resource-shop/items", - permission: "resource-shop:update", - permissions: ["resource-shop:update"], - }, - upsertRule: { - method: "PUT", - operationId: API_OPERATIONS.upsertRule, - path: "/v1/admin/users/level-config/rules/{track}/{level}", - permission: "level-config:update", - permissions: ["level-config:update"], - }, + adjustDicePool: { + method: "POST", + operationId: API_OPERATIONS.adjustDicePool, + path: "/v1/admin/game/self-games/{game_id}/pool/adjust", + permission: "game:update", + permissions: ["game:update"] + }, + appBanUser: { + method: "POST", + operationId: API_OPERATIONS.appBanUser, + path: "/v1/app/users/{id}/ban", + permission: "app-user:status", + permissions: ["app-user:status"] + }, + appGetUser: { + method: "GET", + operationId: API_OPERATIONS.appGetUser, + path: "/v1/app/users/{id}", + permission: "app-user:view", + permissions: ["app-user:view"] + }, + appListBannedUsers: { + method: "GET", + operationId: API_OPERATIONS.appListBannedUsers, + path: "/v1/app/users/bans", + permission: "app-user:view", + permissions: ["app-user:view"] + }, + appListLoginLogs: { + method: "GET", + operationId: API_OPERATIONS.appListLoginLogs, + path: "/v1/app/users/login-logs", + permission: "app-user:view", + permissions: ["app-user:view"] + }, + appListUserLoginLogs: { + method: "GET", + operationId: API_OPERATIONS.appListUserLoginLogs, + path: "/v1/app/users/{id}/login-logs", + permission: "app-user:view", + permissions: ["app-user:view"] + }, + appListUsers: { + method: "GET", + operationId: API_OPERATIONS.appListUsers, + path: "/v1/app/users", + permission: "app-user:view", + permissions: ["app-user:view"] + }, + appSetPassword: { + method: "POST", + operationId: API_OPERATIONS.appSetPassword, + path: "/v1/app/users/{id}/password", + permission: "app-user:password", + permissions: ["app-user:password"] + }, + appUnbanUser: { + method: "POST", + operationId: API_OPERATIONS.appUnbanUser, + path: "/v1/app/users/{id}/unban", + permission: "app-user:status", + permissions: ["app-user:status"] + }, + appUpdateUser: { + method: "PATCH", + operationId: API_OPERATIONS.appUpdateUser, + path: "/v1/app/users/{id}", + permission: "app-user:update", + permissions: ["app-user:update"] + }, + batchUpdateUserStatus: { + method: "POST", + operationId: API_OPERATIONS.batchUpdateUserStatus, + path: "/v1/users/batch/status", + permission: "user:status", + permissions: ["user:status"] + }, + cancelRoomPin: { + method: "DELETE", + operationId: API_OPERATIONS.cancelRoomPin, + path: "/v1/admin/rooms/pins/{pin_id}", + permission: "room-pin:cancel", + permissions: ["room-pin:cancel"] + }, + changePassword: { + method: "POST", + operationId: API_OPERATIONS.changePassword, + path: "/v1/auth/change-password" + }, + closeAgency: { + method: "POST", + operationId: API_OPERATIONS.closeAgency, + path: "/v1/admin/agencies/{agency_id}/close", + permission: "agency:status", + permissions: ["agency:status"] + }, + createAchievementDefinition: { + method: "POST", + operationId: API_OPERATIONS.createAchievementDefinition, + path: "/v1/admin/activity/achievements", + permission: "achievement:create", + permissions: ["achievement:create"] + }, + createAgency: { + method: "POST", + operationId: API_OPERATIONS.createAgency, + path: "/v1/admin/agencies", + permission: "agency:create", + permissions: ["agency:create"] + }, + createAppVersion: { + method: "POST", + operationId: API_OPERATIONS.createAppVersion, + path: "/v1/admin/app-config/versions", + permission: "app-version:create", + permissions: ["app-version:create"] + }, + createBanner: { + method: "POST", + operationId: API_OPERATIONS.createBanner, + path: "/v1/admin/app-config/banners", + permission: "app-config:update", + permissions: ["app-config:update"] + }, + createBD: { + method: "POST", + operationId: API_OPERATIONS.createBD, + path: "/v1/admin/bds", + permission: "bd:create", + permissions: ["bd:create"] + }, + createBDLeader: { + method: "POST", + operationId: API_OPERATIONS.createBDLeader, + path: "/v1/admin/bd-leaders", + permission: "bd:create", + permissions: ["bd:create"] + }, + createCatalog: { + method: "POST", + operationId: API_OPERATIONS.createCatalog, + path: "/v1/admin/game/games", + permission: "game:create", + permissions: ["game:create"] + }, + createCoinAdjustment: { + method: "POST", + operationId: API_OPERATIONS.createCoinAdjustment, + path: "/v1/admin/operations/coin-adjustments", + permission: "coin-adjustment:create", + permissions: ["coin-adjustment:create"] + }, + createCoinSeller: { + method: "POST", + operationId: API_OPERATIONS.createCoinSeller, + path: "/v1/admin/coin-sellers", + permission: "coin-seller:create", + permissions: ["coin-seller:create"] + }, + createCountry: { + method: "POST", + operationId: API_OPERATIONS.createCountry, + path: "/v1/admin/countries", + permission: "country:create", + permissions: ["country:create"] + }, + createEmojiPack: { + method: "POST", + operationId: API_OPERATIONS.createEmojiPack, + path: "/v1/admin/emoji-packs", + permission: "emoji-pack:create", + permissions: ["emoji-pack:create"] + }, + createExploreTab: { + method: "POST", + operationId: API_OPERATIONS.createExploreTab, + path: "/v1/admin/app-config/explore-tabs", + permission: "app-config:update", + permissions: ["app-config:update"] + }, + createGift: { + method: "POST", + operationId: API_OPERATIONS.createGift, + path: "/v1/admin/gifts", + permission: "gift:create", + permissions: ["gift:create"] + }, + createH5Link: { + method: "POST", + operationId: API_OPERATIONS.createH5Link, + path: "/v1/admin/app-config/h5-links", + permission: "app-config:update", + permissions: ["app-config:update"] + }, + createHostAgencyPolicy: { + method: "POST", + operationId: API_OPERATIONS.createHostAgencyPolicy, + path: "/v1/admin/host-agency-policies", + permission: "host-agency-policy:create", + permissions: ["host-agency-policy:create"] + }, + createManager: { + method: "POST", + operationId: API_OPERATIONS.createManager, + path: "/v1/admin/managers", + permission: "bd:create", + permissions: ["bd:create"] + }, + createMenu: { + method: "POST", + operationId: API_OPERATIONS.createMenu, + path: "/v1/system/menus", + permission: "menu:create", + permissions: ["menu:create"] + }, + createPermission: { + method: "POST", + operationId: API_OPERATIONS.createPermission, + path: "/v1/permissions", + permission: "permission:create", + permissions: ["permission:create"] + }, + createPlatform: { + method: "POST", + operationId: API_OPERATIONS.createPlatform, + path: "/v1/admin/game/platforms", + permission: "game:update", + permissions: ["game:update"] + }, + createPopup: { + method: "POST", + operationId: API_OPERATIONS.createPopup, + path: "/v1/admin/app-config/popups", + permission: "app-config:update", + permissions: ["app-config:update"] + }, + createPrettyIdPool: { + method: "POST", + operationId: API_OPERATIONS.createPrettyIdPool, + path: "/v1/admin/users/pretty-id-pools", + permission: "pretty-id:update", + permissions: ["pretty-id:update"] + }, + createRechargeProduct: { + method: "POST", + operationId: API_OPERATIONS.createRechargeProduct, + path: "/v1/admin/payment/recharge-products", + permission: "payment-product:create", + permissions: ["payment-product:create"] + }, + createRegion: { + method: "POST", + operationId: API_OPERATIONS.createRegion, + path: "/v1/admin/regions", + permission: "region:create", + permissions: ["region:create"] + }, + createResource: { + method: "POST", + operationId: API_OPERATIONS.createResource, + path: "/v1/admin/resources", + permission: "resource:create", + permissions: ["resource:create"] + }, + createResourceGroup: { + method: "POST", + operationId: API_OPERATIONS.createResourceGroup, + path: "/v1/admin/resource-groups", + permission: "resource-group:create", + permissions: ["resource-group:create"] + }, + createRole: { + method: "POST", + operationId: API_OPERATIONS.createRole, + path: "/v1/roles", + permission: "role:create", + permissions: ["role:create","role:manage"] + }, + createRoomPin: { + method: "POST", + operationId: API_OPERATIONS.createRoomPin, + path: "/v1/admin/rooms/pins", + permission: "room-pin:create", + permissions: ["room-pin:create"] + }, + createSplashScreen: { + method: "POST", + operationId: API_OPERATIONS.createSplashScreen, + path: "/v1/admin/app-config/splash-screens", + permission: "app-config:update", + permissions: ["app-config:update"] + }, + createTaskDefinition: { + method: "POST", + operationId: API_OPERATIONS.createTaskDefinition, + path: "/v1/admin/activity/daily-tasks", + permission: "daily-task:create", + permissions: ["daily-task:create"] + }, + createTeamSalaryPolicy: { + method: "POST", + operationId: API_OPERATIONS.createTeamSalaryPolicy, + path: "/v1/admin/team-salary-policies", + permission: "team-salary-policy:create", + permissions: ["team-salary-policy:create"] + }, + createTier: { + method: "POST", + operationId: API_OPERATIONS.createTier, + path: "/v1/admin/users/level-config/tiers", + permission: "level-config:update", + permissions: ["level-config:update"] + }, + createUser: { + method: "POST", + operationId: API_OPERATIONS.createUser, + path: "/v1/users", + permission: "user:create", + permissions: ["user:create"] + }, + createWeeklyStarCycle: { + method: "POST", + operationId: API_OPERATIONS.createWeeklyStarCycle, + path: "/v1/admin/activity/weekly-star/cycles", + permission: "weekly-star:create", + permissions: ["weekly-star:create"] + }, + creditCoinSellerStock: { + method: "POST", + operationId: API_OPERATIONS.creditCoinSellerStock, + path: "/v1/admin/coin-sellers/{user_id}/stock-credits", + permission: "coin-seller:stock-credit", + permissions: ["coin-seller:stock-credit"] + }, + dashboardOverview: { + method: "GET", + operationId: API_OPERATIONS.dashboardOverview, + path: "/v1/dashboard/overview", + permission: "overview:view", + permissions: ["overview:view"] + }, + deleteAgency: { + method: "POST", + operationId: API_OPERATIONS.deleteAgency, + path: "/v1/admin/agencies/{agency_id}/delete", + permission: "agency:delete", + permissions: ["agency:delete"] + }, + deleteAppVersion: { + method: "DELETE", + operationId: API_OPERATIONS.deleteAppVersion, + path: "/v1/admin/app-config/versions/{version_id}", + permission: "app-version:delete", + permissions: ["app-version:delete"] + }, + deleteBanner: { + method: "DELETE", + operationId: API_OPERATIONS.deleteBanner, + path: "/v1/admin/app-config/banners/{banner_id}", + permission: "app-config:update", + permissions: ["app-config:update"] + }, + deleteBDLeader: { + method: "DELETE", + operationId: API_OPERATIONS.deleteBDLeader, + path: "/v1/admin/bd-leaders/{user_id}", + permission: "bd:update", + permissions: ["bd:update"] + }, + deleteCatalog: { + method: "DELETE", + operationId: API_OPERATIONS.deleteCatalog, + path: "/v1/admin/game/games/{game_id}", + permission: "game:delete", + permissions: ["game:delete"] + }, + deleteCountry: { + method: "DELETE", + operationId: API_OPERATIONS.deleteCountry, + path: "/v1/admin/countries/{country_id}", + permission: "country:status", + permissions: ["country:status"] + }, + deleteDiceRobot: { + method: "DELETE", + operationId: API_OPERATIONS.deleteDiceRobot, + path: "/v1/admin/game/robots/{user_id}", + permission: "game:delete", + permissions: ["game:delete"] + }, + deleteExploreTab: { + method: "DELETE", + operationId: API_OPERATIONS.deleteExploreTab, + path: "/v1/admin/app-config/explore-tabs/{tab_id}", + permission: "app-config:update", + permissions: ["app-config:update"] + }, + deleteGift: { + method: "DELETE", + operationId: API_OPERATIONS.deleteGift, + path: "/v1/admin/gifts/{gift_id}", + permission: "gift:delete", + permissions: ["gift:delete"] + }, + deleteH5Link: { + method: "DELETE", + operationId: API_OPERATIONS.deleteH5Link, + path: "/v1/admin/app-config/h5-links/{key}", + permission: "app-config:update", + permissions: ["app-config:update"] + }, + deleteHostAgencyPolicy: { + method: "DELETE", + operationId: API_OPERATIONS.deleteHostAgencyPolicy, + path: "/v1/admin/host-agency-policies/{policy_id}", + permission: "host-agency-policy:delete", + permissions: ["host-agency-policy:delete"] + }, + deleteMenu: { + method: "DELETE", + operationId: API_OPERATIONS.deleteMenu, + path: "/v1/system/menus/{id}", + permission: "menu:delete", + permissions: ["menu:delete"] + }, + deletePermission: { + method: "DELETE", + operationId: API_OPERATIONS.deletePermission, + path: "/v1/permissions/{id}", + permission: "permission:delete", + permissions: ["permission:delete"] + }, + deletePopup: { + method: "DELETE", + operationId: API_OPERATIONS.deletePopup, + path: "/v1/admin/app-config/popups/{popup_id}", + permission: "app-config:update", + permissions: ["app-config:update"] + }, + deleteRechargeProduct: { + method: "DELETE", + operationId: API_OPERATIONS.deleteRechargeProduct, + path: "/v1/admin/payment/recharge-products/{product_id}", + permission: "payment-product:delete", + permissions: ["payment-product:delete"] + }, + deleteRole: { + method: "DELETE", + operationId: API_OPERATIONS.deleteRole, + path: "/v1/roles/{id}", + permission: "role:delete", + permissions: ["role:delete","role:manage"] + }, + deleteRoom: { + method: "DELETE", + operationId: API_OPERATIONS.deleteRoom, + path: "/v1/admin/rooms/{room_id}", + permission: "room:delete", + permissions: ["room:delete"] + }, + deleteSplashScreen: { + method: "DELETE", + operationId: API_OPERATIONS.deleteSplashScreen, + path: "/v1/admin/app-config/splash-screens/{splash_id}", + permission: "app-config:update", + permissions: ["app-config:update"] + }, + deleteTeamSalaryPolicy: { + method: "DELETE", + operationId: API_OPERATIONS.deleteTeamSalaryPolicy, + path: "/v1/admin/team-salary-policies/{policy_id}", + permission: "team-salary-policy:delete", + permissions: ["team-salary-policy:delete"] + }, + disableCountry: { + method: "POST", + operationId: API_OPERATIONS.disableCountry, + path: "/v1/admin/countries/{country_id}/disable", + permission: "country:status", + permissions: ["country:status"] + }, + disableGift: { + method: "POST", + operationId: API_OPERATIONS.disableGift, + path: "/v1/admin/gifts/{gift_id}/disable", + permission: "gift:status", + permissions: ["gift:status"] + }, + disableRegion: { + method: "DELETE", + operationId: API_OPERATIONS.disableRegion, + path: "/v1/admin/regions/{region_id}", + permission: "region:status", + permissions: ["region:status"] + }, + disableResource: { + method: "POST", + operationId: API_OPERATIONS.disableResource, + path: "/v1/admin/resources/{resource_id}/disable", + permission: "resource:update", + permissions: ["resource:update"] + }, + disableResourceGroup: { + method: "POST", + operationId: API_OPERATIONS.disableResourceGroup, + path: "/v1/admin/resource-groups/{group_id}/disable", + permission: "resource-group:update", + permissions: ["resource-group:update"] + }, + disableResourceShopItem: { + method: "POST", + operationId: API_OPERATIONS.disableResourceShopItem, + path: "/v1/admin/resource-shop/items/{shop_item_id}/disable", + permission: "resource-shop:update", + permissions: ["resource-shop:update"] + }, + enableCountry: { + method: "POST", + operationId: API_OPERATIONS.enableCountry, + path: "/v1/admin/countries/{country_id}/enable", + permission: "country:status", + permissions: ["country:status"] + }, + enableGift: { + method: "POST", + operationId: API_OPERATIONS.enableGift, + path: "/v1/admin/gifts/{gift_id}/enable", + permission: "gift:status", + permissions: ["gift:status"] + }, + enableRegion: { + method: "POST", + operationId: API_OPERATIONS.enableRegion, + path: "/v1/admin/regions/{region_id}/enable", + permission: "region:status", + permissions: ["region:status"] + }, + enableResource: { + method: "POST", + operationId: API_OPERATIONS.enableResource, + path: "/v1/admin/resources/{resource_id}/enable", + permission: "resource:update", + permissions: ["resource:update"] + }, + enableResourceGroup: { + method: "POST", + operationId: API_OPERATIONS.enableResourceGroup, + path: "/v1/admin/resource-groups/{group_id}/enable", + permission: "resource-group:update", + permissions: ["resource-group:update"] + }, + enableResourceShopItem: { + method: "POST", + operationId: API_OPERATIONS.enableResourceShopItem, + path: "/v1/admin/resource-shop/items/{shop_item_id}/enable", + permission: "resource-shop:update", + permissions: ["resource-shop:update"] + }, + expireRoomRpsChallenge: { + method: "POST", + operationId: API_OPERATIONS.expireRoomRpsChallenge, + path: "/v1/admin/game/room-rps/challenges/{challenge_id}/expire", + permission: "game:update", + permissions: ["game:update"] + }, + exportLoginLogs: { + method: "GET", + operationId: API_OPERATIONS.exportLoginLogs, + path: "/v1/logs/login/export", + permission: "log:export", + permissions: ["log:export"] + }, + exportOperationLogs: { + method: "GET", + operationId: API_OPERATIONS.exportOperationLogs, + path: "/v1/logs/operations/export", + permission: "log:export", + permissions: ["log:export"] + }, + exportUsers: { + method: "GET", + operationId: API_OPERATIONS.exportUsers, + path: "/v1/users/export", + permission: "user:export", + permissions: ["user:export"] + }, + generateDiceRobots: { + method: "POST", + operationId: API_OPERATIONS.generateDiceRobots, + path: "/v1/admin/game/robots/generate", + permission: "game:create", + permissions: ["game:create"] + }, + generatePrettyIds: { + method: "POST", + operationId: API_OPERATIONS.generatePrettyIds, + path: "/v1/admin/users/pretty-id-pools/{pool_id}/generate", + permission: "pretty-id:generate", + permissions: ["pretty-id:generate"] + }, + getCoinSellerSalaryRates: { + method: "GET", + operationId: API_OPERATIONS.getCoinSellerSalaryRates, + path: "/v1/admin/coin-seller-salary-rates/{region_id}", + permission: "coin-seller:exchange-rate", + permissions: ["coin-seller:exchange-rate"] + }, + getCountry: { + method: "GET", + operationId: API_OPERATIONS.getCountry, + path: "/v1/admin/countries/{country_id}", + permission: "country:view", + permissions: ["country:view"] + }, + getCumulativeRechargeRewardConfig: { + method: "GET", + operationId: API_OPERATIONS.getCumulativeRechargeRewardConfig, + path: "/v1/admin/activity/cumulative-recharge-reward/config", + permission: "cumulative-recharge-reward:view", + permissions: ["cumulative-recharge-reward:view"] + }, + getFirstRechargeRewardConfig: { + method: "GET", + operationId: API_OPERATIONS.getFirstRechargeRewardConfig, + path: "/v1/admin/activity/first-recharge-reward/config", + permission: "first-recharge-reward:view", + permissions: ["first-recharge-reward:view"] + }, + getInviteActivityRewardConfig: { + method: "GET", + operationId: API_OPERATIONS.getInviteActivityRewardConfig, + path: "/v1/admin/activity/invite-reward/config", + permission: "invite-activity-reward:view", + permissions: ["invite-activity-reward:view"] + }, + getLuckyGiftConfig: { + method: "GET", + operationId: API_OPERATIONS.getLuckyGiftConfig, + path: "/v1/admin/activity/lucky-gifts/v2/config", + permission: "lucky-gift:view", + permissions: ["lucky-gift:view"] + }, + getLuckyGiftDrawSummary: { + method: "GET", + operationId: API_OPERATIONS.getLuckyGiftDrawSummary, + path: "/v1/admin/activity/lucky-gifts/v2/draw-summary", + permission: "lucky-gift:view", + permissions: ["lucky-gift:view"] + }, + getRedPacket: { + method: "GET", + operationId: API_OPERATIONS.getRedPacket, + path: "/v1/admin/activity/red-packets/{packet_id}", + permission: "red-packet:view", + permissions: ["red-packet:view"] + }, + getRedPacketConfig: { + method: "GET", + operationId: API_OPERATIONS.getRedPacketConfig, + path: "/v1/admin/activity/red-packets/config", + permission: "red-packet:view", + permissions: ["red-packet:view"] + }, + getRegion: { + method: "GET", + operationId: API_OPERATIONS.getRegion, + path: "/v1/admin/regions/{region_id}", + permission: "region:view", + permissions: ["region:view"] + }, + getRegistrationRewardConfig: { + method: "GET", + operationId: API_OPERATIONS.getRegistrationRewardConfig, + path: "/v1/admin/activity/registration-reward/config", + permission: "registration-reward:view", + permissions: ["registration-reward:view"] + }, + getResource: { + method: "GET", + operationId: API_OPERATIONS.getResource, + path: "/v1/admin/resources/{resource_id}", + permission: "resource:view", + permissions: ["resource:view"] + }, + getResourceGroup: { + method: "GET", + operationId: API_OPERATIONS.getResourceGroup, + path: "/v1/admin/resource-groups/{group_id}", + permission: "resource-group:view", + permissions: ["resource-group:view"] + }, + getRoleDataScopes: { + method: "GET", + operationId: API_OPERATIONS.getRoleDataScopes, + path: "/v1/roles/{id}/data-scopes", + permission: "role:data-scope", + permissions: ["role:data-scope"] + }, + getRoomConfig: { + method: "GET", + operationId: API_OPERATIONS.getRoomConfig, + path: "/v1/admin/rooms/config", + permission: "room-config:view", + permissions: ["room-config:view"] + }, + getRoomRocketConfig: { + method: "GET", + operationId: API_OPERATIONS.getRoomRocketConfig, + path: "/v1/admin/activity/room-rocket/config", + permission: "room-rocket:view", + permissions: ["room-rocket:view"] + }, + getRoomRpsChallenge: { + method: "GET", + operationId: API_OPERATIONS.getRoomRpsChallenge, + path: "/v1/admin/game/room-rps/challenges/{challenge_id}", + permission: "game:view", + permissions: ["game:view"] + }, + getRoomRpsConfig: { + method: "GET", + operationId: API_OPERATIONS.getRoomRpsConfig, + path: "/v1/admin/game/room-rps/config", + permission: "game:view", + permissions: ["game:view"] + }, + getRoomTurnoverRewardConfig: { + method: "GET", + operationId: API_OPERATIONS.getRoomTurnoverRewardConfig, + path: "/v1/admin/activity/room-turnover-reward/config", + permission: "room-turnover-reward:view", + permissions: ["room-turnover-reward:view"] + }, + getSevenDayCheckInConfig: { + method: "GET", + operationId: API_OPERATIONS.getSevenDayCheckInConfig, + path: "/v1/admin/activity/seven-day-checkin/config", + permission: "seven-day-checkin:view", + permissions: ["seven-day-checkin:view"] + }, + getUser: { + method: "GET", + operationId: API_OPERATIONS.getUser, + path: "/v1/users/{id}", + permission: "user:view", + permissions: ["user:view"] + }, + getWeeklyStarCycle: { + method: "GET", + operationId: API_OPERATIONS.getWeeklyStarCycle, + path: "/v1/admin/activity/weekly-star/cycles/{cycle_id}", + permission: "weekly-star:view", + permissions: ["weekly-star:view"] + }, + grantPrettyId: { + method: "POST", + operationId: API_OPERATIONS.grantPrettyId, + path: "/v1/admin/users/pretty-ids/grant", + permission: "pretty-id:grant", + permissions: ["pretty-id:grant"] + }, + grantResource: { + method: "POST", + operationId: API_OPERATIONS.grantResource, + path: "/v1/admin/resource-grants/resource", + permission: "resource-grant:create", + permissions: ["resource-grant:create"] + }, + grantResourceGroup: { + method: "POST", + operationId: API_OPERATIONS.grantResourceGroup, + path: "/v1/admin/resource-grants/group", + permission: "resource-grant:create", + permissions: ["resource-grant:create"] + }, + listAchievementDefinitions: { + method: "GET", + operationId: API_OPERATIONS.listAchievementDefinitions, + path: "/v1/admin/activity/achievements", + permission: "achievement:view", + permissions: ["achievement:view"] + }, + listAgencies: { + method: "GET", + operationId: API_OPERATIONS.listAgencies, + path: "/v1/admin/agencies", + permission: "agency:view", + permissions: ["agency:view"] + }, + listApps: { + method: "GET", + operationId: API_OPERATIONS.listApps, + path: "/v1/admin/apps" + }, + listAppVersions: { + method: "GET", + operationId: API_OPERATIONS.listAppVersions, + path: "/v1/admin/app-config/versions", + permission: "app-version:view", + permissions: ["app-version:view"] + }, + listBanners: { + method: "GET", + operationId: API_OPERATIONS.listBanners, + path: "/v1/admin/app-config/banners", + permission: "app-config:view", + permissions: ["app-config:view"] + }, + listBDLeaders: { + method: "GET", + operationId: API_OPERATIONS.listBDLeaders, + path: "/v1/admin/bd-leaders", + permission: "bd:view", + permissions: ["bd:view"] + }, + listBDs: { + method: "GET", + operationId: API_OPERATIONS.listBDs, + path: "/v1/admin/bds", + permission: "bd:view", + permissions: ["bd:view"] + }, + listCatalog: { + method: "GET", + operationId: API_OPERATIONS.listCatalog, + path: "/v1/admin/game/games", + permission: "game:view", + permissions: ["game:view"] + }, + listCoinAdjustments: { + method: "GET", + operationId: API_OPERATIONS.listCoinAdjustments, + path: "/v1/admin/operations/coin-adjustments", + permission: "coin-adjustment:view", + permissions: ["coin-adjustment:view"] + }, + listCoinLedger: { + method: "GET", + operationId: API_OPERATIONS.listCoinLedger, + path: "/v1/admin/operations/coin-ledger", + permission: "coin-ledger:view", + permissions: ["coin-ledger:view"] + }, + listCoinSellerLedger: { + method: "GET", + operationId: API_OPERATIONS.listCoinSellerLedger, + path: "/v1/admin/operations/coin-seller-ledger", + permission: "coin-seller-ledger:view", + permissions: ["coin-seller-ledger:view"] + }, + listCoinSellers: { + method: "GET", + operationId: API_OPERATIONS.listCoinSellers, + path: "/v1/admin/coin-sellers", + permission: "coin-seller:view", + permissions: ["coin-seller:view"] + }, + listCountries: { + method: "GET", + operationId: API_OPERATIONS.listCountries, + path: "/v1/admin/countries", + permission: "country:view", + permissions: ["country:view"] + }, + listCumulativeRechargeRewardGrants: { + method: "GET", + operationId: API_OPERATIONS.listCumulativeRechargeRewardGrants, + path: "/v1/admin/activity/cumulative-recharge-reward/grants", + permission: "cumulative-recharge-reward:view", + permissions: ["cumulative-recharge-reward:view"] + }, + listDiceRobots: { + method: "GET", + operationId: API_OPERATIONS.listDiceRobots, + path: "/v1/admin/game/robots", + permission: "game:view", + permissions: ["game:view"] + }, + listEmojiPackCategories: { + method: "GET", + operationId: API_OPERATIONS.listEmojiPackCategories, + path: "/v1/admin/emoji-packs/categories", + permission: "emoji-pack:view", + permissions: ["emoji-pack:view"] + }, + listEmojiPacks: { + method: "GET", + operationId: API_OPERATIONS.listEmojiPacks, + path: "/v1/admin/emoji-packs", + permission: "emoji-pack:view", + permissions: ["emoji-pack:view"] + }, + listExploreTabs: { + method: "GET", + operationId: API_OPERATIONS.listExploreTabs, + path: "/v1/admin/app-config/explore-tabs", + permission: "app-config:view", + permissions: ["app-config:view"] + }, + listFirstRechargeRewardClaims: { + method: "GET", + operationId: API_OPERATIONS.listFirstRechargeRewardClaims, + path: "/v1/admin/activity/first-recharge-reward/claims", + permission: "first-recharge-reward:view", + permissions: ["first-recharge-reward:view"] + }, + listGifts: { + method: "GET", + operationId: API_OPERATIONS.listGifts, + path: "/v1/admin/gifts", + permission: "gift:view", + permissions: ["gift:view"] + }, + listGiftTypes: { + method: "GET", + operationId: API_OPERATIONS.listGiftTypes, + path: "/v1/admin/gift-types", + permission: "gift:view", + permissions: ["gift:view"] + }, + listH5Links: { + method: "GET", + operationId: API_OPERATIONS.listH5Links, + path: "/v1/admin/app-config/h5-links", + permission: "app-config:view", + permissions: ["app-config:view"] + }, + listHostAgencyPolicies: { + method: "GET", + operationId: API_OPERATIONS.listHostAgencyPolicies, + path: "/v1/admin/host-agency-policies", + permission: "host-agency-policy:view", + permissions: ["host-agency-policy:view"] + }, + listHosts: { + method: "GET", + operationId: API_OPERATIONS.listHosts, + path: "/v1/admin/hosts", + permission: "host:view", + permissions: ["host:view"] + }, + listHostSalarySettlements: { + method: "GET", + operationId: API_OPERATIONS.listHostSalarySettlements, + path: "/v1/admin/host-salary-settlements", + permission: "host-salary-settlement:view", + permissions: ["host-salary-settlement:view"] + }, + listInviteActivityRewardClaims: { + method: "GET", + operationId: API_OPERATIONS.listInviteActivityRewardClaims, + path: "/v1/admin/activity/invite-reward/claims", + permission: "invite-activity-reward:view", + permissions: ["invite-activity-reward:view"] + }, + listLevelConfig: { + method: "GET", + operationId: API_OPERATIONS.listLevelConfig, + path: "/v1/admin/users/level-config", + permission: "level-config:view", + permissions: ["level-config:view"] + }, + listLoginLogs: { + method: "GET", + operationId: API_OPERATIONS.listLoginLogs, + path: "/v1/logs/login", + permission: "log:view", + permissions: ["log:view"] + }, + listLuckyGiftConfigs: { + method: "GET", + operationId: API_OPERATIONS.listLuckyGiftConfigs, + path: "/v1/admin/activity/lucky-gifts/v2/configs", + permission: "lucky-gift:view", + permissions: ["lucky-gift:view"] + }, + listLuckyGiftDraws: { + method: "GET", + operationId: API_OPERATIONS.listLuckyGiftDraws, + path: "/v1/admin/activity/lucky-gifts/v2/draws", + permission: "lucky-gift:view", + permissions: ["lucky-gift:view"] + }, + listManagers: { + method: "GET", + operationId: API_OPERATIONS.listManagers, + path: "/v1/admin/managers", + permission: "bd:view", + permissions: ["bd:view"] + }, + listOperationLogs: { + method: "GET", + operationId: API_OPERATIONS.listOperationLogs, + path: "/v1/logs/operations", + permission: "log:view", + permissions: ["log:view"] + }, + listPermissions: { + method: "GET", + operationId: API_OPERATIONS.listPermissions, + path: "/v1/permissions", + permission: "permission:view", + permissions: ["permission:view","role:permission","role:manage"] + }, + listPlatforms: { + method: "GET", + operationId: API_OPERATIONS.listPlatforms, + path: "/v1/admin/game/platforms", + permission: "game:view", + permissions: ["game:view"] + }, + listPopups: { + method: "GET", + operationId: API_OPERATIONS.listPopups, + path: "/v1/admin/app-config/popups", + permission: "app-config:view", + permissions: ["app-config:view"] + }, + listPrettyIdPools: { + method: "GET", + operationId: API_OPERATIONS.listPrettyIdPools, + path: "/v1/admin/users/pretty-id-pools", + permission: "pretty-id:view", + permissions: ["pretty-id:view"] + }, + listPrettyIds: { + method: "GET", + operationId: API_OPERATIONS.listPrettyIds, + path: "/v1/admin/users/pretty-ids", + permission: "pretty-id:view", + permissions: ["pretty-id:view"] + }, + listRechargeBills: { + method: "GET", + operationId: API_OPERATIONS.listRechargeBills, + path: "/v1/admin/payment/recharge-bills", + permission: "payment-bill:view", + permissions: ["payment-bill:view"] + }, + listRechargeProducts: { + method: "GET", + operationId: API_OPERATIONS.listRechargeProducts, + path: "/v1/admin/payment/recharge-products", + permission: "payment-product:view", + permissions: ["payment-product:view"] + }, + listRedPackets: { + method: "GET", + operationId: API_OPERATIONS.listRedPackets, + path: "/v1/admin/activity/red-packets", + permission: "red-packet:view", + permissions: ["red-packet:view"] + }, + listRegionBlocks: { + method: "GET", + operationId: API_OPERATIONS.listRegionBlocks, + path: "/v1/admin/users/region-blocks", + permission: "region-block:view", + permissions: ["region-block:view"] + }, + listRegions: { + method: "GET", + operationId: API_OPERATIONS.listRegions, + path: "/v1/admin/regions", + permission: "region:view", + permissions: ["region:view"] + }, + listRegistrationRewardClaims: { + method: "GET", + operationId: API_OPERATIONS.listRegistrationRewardClaims, + path: "/v1/admin/activity/registration-reward/claims", + permission: "registration-reward:view", + permissions: ["registration-reward:view"] + }, + listReports: { + method: "GET", + operationId: API_OPERATIONS.listReports, + path: "/v1/admin/operations/reports", + permission: "report:view", + permissions: ["report:view"] + }, + listResourceGrants: { + method: "GET", + operationId: API_OPERATIONS.listResourceGrants, + path: "/v1/admin/resource-grants", + permission: "resource-grant:view", + permissions: ["resource-grant:view"] + }, + listResourceGroups: { + method: "GET", + operationId: API_OPERATIONS.listResourceGroups, + path: "/v1/admin/resource-groups", + permission: "resource-group:view", + permissions: ["resource-group:view"] + }, + listResources: { + method: "GET", + operationId: API_OPERATIONS.listResources, + path: "/v1/admin/resources", + permission: "resource:view", + permissions: ["resource:view"] + }, + listResourceShopItems: { + method: "GET", + operationId: API_OPERATIONS.listResourceShopItems, + path: "/v1/admin/resource-shop/items", + permission: "resource-shop:view", + permissions: ["resource-shop:view"] + }, + listRoles: { + method: "GET", + operationId: API_OPERATIONS.listRoles, + path: "/v1/roles", + permission: "role:view", + permissions: ["role:view"] + }, + listRoomPins: { + method: "GET", + operationId: API_OPERATIONS.listRoomPins, + path: "/v1/admin/rooms/pins", + permission: "room-pin:view", + permissions: ["room-pin:view"] + }, + listRoomRpsChallenges: { + method: "GET", + operationId: API_OPERATIONS.listRoomRpsChallenges, + path: "/v1/admin/game/room-rps/challenges", + permission: "game:view", + permissions: ["game:view"] + }, + listRooms: { + method: "GET", + operationId: API_OPERATIONS.listRooms, + path: "/v1/admin/rooms", + permission: "room:view", + permissions: ["room:view"] + }, + listRoomTurnoverRewardSettlements: { + method: "GET", + operationId: API_OPERATIONS.listRoomTurnoverRewardSettlements, + path: "/v1/admin/activity/room-turnover-reward/settlements", + permission: "room-turnover-reward:view", + permissions: ["room-turnover-reward:view"] + }, + listSelfGames: { + method: "GET", + operationId: API_OPERATIONS.listSelfGames, + path: "/v1/admin/game/self-games", + permission: "game:view", + permissions: ["game:view"] + }, + listSevenDayCheckInClaims: { + method: "GET", + operationId: API_OPERATIONS.listSevenDayCheckInClaims, + path: "/v1/admin/activity/seven-day-checkin/claims", + permission: "seven-day-checkin:view", + permissions: ["seven-day-checkin:view"] + }, + listSplashScreens: { + method: "GET", + operationId: API_OPERATIONS.listSplashScreens, + path: "/v1/admin/app-config/splash-screens", + permission: "app-config:view", + permissions: ["app-config:view"] + }, + listSystemMenus: { + method: "GET", + operationId: API_OPERATIONS.listSystemMenus, + path: "/v1/system/menus", + permission: "menu:view", + permissions: ["menu:view"] + }, + listTaskDefinitions: { + method: "GET", + operationId: API_OPERATIONS.listTaskDefinitions, + path: "/v1/admin/activity/daily-tasks", + permission: "daily-task:view", + permissions: ["daily-task:view"] + }, + listTeamSalaryPolicies: { + method: "GET", + operationId: API_OPERATIONS.listTeamSalaryPolicies, + path: "/v1/admin/team-salary-policies", + permission: "team-salary-policy:view", + permissions: ["team-salary-policy:view"] + }, + listThirdPartyPaymentChannels: { + method: "GET", + operationId: API_OPERATIONS.listThirdPartyPaymentChannels, + path: "/v1/admin/payment/third-party-channels", + permission: "payment-third-party:view", + permissions: ["payment-third-party:view"] + }, + listUserLeaderboards: { + method: "GET", + operationId: API_OPERATIONS.listUserLeaderboards, + path: "/v1/admin/activity/user-leaderboards", + permission: "user-leaderboard:view", + permissions: ["user-leaderboard:view"] + }, + listUsers: { + method: "GET", + operationId: API_OPERATIONS.listUsers, + path: "/v1/users", + permission: "user:view", + permissions: ["user:view"] + }, + listWeeklyStarCycles: { + method: "GET", + operationId: API_OPERATIONS.listWeeklyStarCycles, + path: "/v1/admin/activity/weekly-star/cycles", + permission: "weekly-star:view", + permissions: ["weekly-star:view"] + }, + listWeeklyStarLeaderboard: { + method: "GET", + operationId: API_OPERATIONS.listWeeklyStarLeaderboard, + path: "/v1/admin/activity/weekly-star/cycles/{cycle_id}/leaderboard", + permission: "weekly-star:view", + permissions: ["weekly-star:view"] + }, + listWeeklyStarSettlements: { + method: "GET", + operationId: API_OPERATIONS.listWeeklyStarSettlements, + path: "/v1/admin/activity/weekly-star/cycles/{cycle_id}/settlements", + permission: "weekly-star:settle", + permissions: ["weekly-star:settle"] + }, + login: { + method: "POST", + operationId: API_OPERATIONS.login, + path: "/v1/auth/login" + }, + logout: { + method: "POST", + operationId: API_OPERATIONS.logout, + path: "/v1/auth/logout" + }, + lookupCoinAdjustmentTarget: { + method: "GET", + operationId: API_OPERATIONS.lookupCoinAdjustmentTarget, + path: "/v1/admin/operations/coin-adjustments/target", + permission: "coin-adjustment:create", + permissions: ["coin-adjustment:create"] + }, + lookupResourceGrantTarget: { + method: "GET", + operationId: API_OPERATIONS.lookupResourceGrantTarget, + path: "/v1/admin/resource-grants/target", + permission: "resource-grant:create", + permissions: ["resource-grant:create"] + }, + me: { + method: "GET", + operationId: API_OPERATIONS.me, + path: "/v1/auth/me" + }, + navigationMenus: { + method: "GET", + operationId: API_OPERATIONS.navigationMenus, + path: "/v1/navigation/menus" + }, + publishHostAgencyPolicy: { + method: "POST", + operationId: API_OPERATIONS.publishHostAgencyPolicy, + path: "/v1/admin/host-agency-policies/{policy_id}/publish", + permission: "host-agency-policy:publish", + permissions: ["host-agency-policy:publish"] + }, + refresh: { + method: "POST", + operationId: API_OPERATIONS.refresh, + path: "/v1/auth/refresh" + }, + replaceCoinSellerSalaryRates: { + method: "PUT", + operationId: API_OPERATIONS.replaceCoinSellerSalaryRates, + path: "/v1/admin/coin-seller-salary-rates/{region_id}", + permission: "coin-seller:exchange-rate", + permissions: ["coin-seller:exchange-rate"] + }, + replaceRegionBlocks: { + method: "PUT", + operationId: API_OPERATIONS.replaceRegionBlocks, + path: "/v1/admin/users/region-blocks", + permission: "region-block:update", + permissions: ["region-block:update"] + }, + replaceRegionCountries: { + method: "PUT", + operationId: API_OPERATIONS.replaceRegionCountries, + path: "/v1/admin/regions/{region_id}/countries", + permission: "region:update", + permissions: ["region:update"] + }, + replaceRoleDataScopes: { + method: "PUT", + operationId: API_OPERATIONS.replaceRoleDataScopes, + path: "/v1/roles/{id}/data-scopes", + permission: "role:data-scope", + permissions: ["role:data-scope"] + }, + replaceRolePermissions: { + method: "PUT", + operationId: API_OPERATIONS.replaceRolePermissions, + path: "/v1/roles/{id}/permissions", + permission: "role:permission", + permissions: ["role:permission","role:manage"] + }, + resetUserPassword: { + method: "POST", + operationId: API_OPERATIONS.resetUserPassword, + path: "/v1/users/{id}/reset-password", + permission: "user:reset-password", + permissions: ["user:reset-password"] + }, + retryRedPacketRefund: { + method: "POST", + operationId: API_OPERATIONS.retryRedPacketRefund, + path: "/v1/admin/activity/red-packets/refund/retry", + permission: "red-packet:update", + permissions: ["red-packet:update"] + }, + retryRoomRpsSettlement: { + method: "POST", + operationId: API_OPERATIONS.retryRoomRpsSettlement, + path: "/v1/admin/game/room-rps/challenges/{challenge_id}/retry-settlement", + permission: "game:update", + permissions: ["game:update"] + }, + retryRoomTurnoverRewardSettlement: { + method: "POST", + operationId: API_OPERATIONS.retryRoomTurnoverRewardSettlement, + path: "/v1/admin/activity/room-turnover-reward/settlements/{settlement_id}/retry", + permission: "room-turnover-reward:retry", + permissions: ["room-turnover-reward:retry"] + }, + search: { + method: "GET", + operationId: API_OPERATIONS.search, + path: "/v1/search" + }, + setAgencyJoinEnabled: { + method: "POST", + operationId: API_OPERATIONS.setAgencyJoinEnabled, + path: "/v1/admin/agencies/{agency_id}/join-enabled", + permission: "agency:status", + permissions: ["agency:status"] + }, + setBDLeaderStatus: { + method: "PATCH", + operationId: API_OPERATIONS.setBDLeaderStatus, + path: "/v1/admin/bd-leaders/{user_id}/status", + permission: "bd:update", + permissions: ["bd:update"] + }, + setBDStatus: { + method: "PATCH", + operationId: API_OPERATIONS.setBDStatus, + path: "/v1/admin/bds/{user_id}/status", + permission: "bd:update", + permissions: ["bd:update"] + }, + setCoinSellerStatus: { + method: "PATCH", + operationId: API_OPERATIONS.setCoinSellerStatus, + path: "/v1/admin/coin-sellers/{user_id}/status", + permission: "coin-seller:update", + permissions: ["coin-seller:update"] + }, + setDiceRobotStatus: { + method: "PATCH", + operationId: API_OPERATIONS.setDiceRobotStatus, + path: "/v1/admin/game/robots/{user_id}/status", + permission: "game:update", + permissions: ["game:update"] + }, + setGameStatus: { + method: "PATCH", + operationId: API_OPERATIONS.setGameStatus, + path: "/v1/admin/game/games/{game_id}/status", + permission: "game:status", + permissions: ["game:status"] + }, + setPrettyIdStatus: { + method: "POST", + operationId: API_OPERATIONS.setPrettyIdStatus, + path: "/v1/admin/users/pretty-ids/{pretty_id}/status", + permission: "pretty-id:update", + permissions: ["pretty-id:update"] + }, + setTaskDefinitionStatus: { + method: "POST", + operationId: API_OPERATIONS.setTaskDefinitionStatus, + path: "/v1/admin/activity/daily-tasks/{task_id}/status", + permission: "daily-task:status", + permissions: ["daily-task:status"] + }, + setThirdPartyPaymentMethodStatus: { + method: "PATCH", + operationId: API_OPERATIONS.setThirdPartyPaymentMethodStatus, + path: "/v1/admin/payment/third-party-methods/{method_id}/status", + permission: "payment-third-party:update", + permissions: ["payment-third-party:update"] + }, + setWeeklyStarCycleStatus: { + method: "PATCH", + operationId: API_OPERATIONS.setWeeklyStarCycleStatus, + path: "/v1/admin/activity/weekly-star/cycles/{cycle_id}/status", + permission: "weekly-star:update", + permissions: ["weekly-star:update"] + }, + sortMenus: { + method: "PUT", + operationId: API_OPERATIONS.sortMenus, + path: "/v1/system/menus/sort", + permission: "menu:sort", + permissions: ["menu:sort"] + }, + syncPermissions: { + method: "POST", + operationId: API_OPERATIONS.syncPermissions, + path: "/v1/permissions/sync", + permission: "permission:sync", + permissions: ["permission:sync"] + }, + syncThirdPartyPaymentRates: { + method: "POST", + operationId: API_OPERATIONS.syncThirdPartyPaymentRates, + path: "/v1/admin/payment/third-party-rates/sync", + permission: "payment-third-party:update", + permissions: ["payment-third-party:update"] + }, + updateAchievementDefinition: { + method: "PUT", + operationId: API_OPERATIONS.updateAchievementDefinition, + path: "/v1/admin/activity/achievements/{achievement_id}", + permission: "achievement:update", + permissions: ["achievement:update"] + }, + updateAppVersion: { + method: "PUT", + operationId: API_OPERATIONS.updateAppVersion, + path: "/v1/admin/app-config/versions/{version_id}", + permission: "app-version:update", + permissions: ["app-version:update"] + }, + updateBanner: { + method: "PUT", + operationId: API_OPERATIONS.updateBanner, + path: "/v1/admin/app-config/banners/{banner_id}", + permission: "app-config:update", + permissions: ["app-config:update"] + }, + updateCatalog: { + method: "PATCH", + operationId: API_OPERATIONS.updateCatalog, + path: "/v1/admin/game/games/{game_id}", + permission: "game:update", + permissions: ["game:update"] + }, + updateCountry: { + method: "PATCH", + operationId: API_OPERATIONS.updateCountry, + path: "/v1/admin/countries/{country_id}", + permission: "country:update", + permissions: ["country:update"] + }, + updateCumulativeRechargeRewardConfig: { + method: "PUT", + operationId: API_OPERATIONS.updateCumulativeRechargeRewardConfig, + path: "/v1/admin/activity/cumulative-recharge-reward/config", + permission: "cumulative-recharge-reward:update", + permissions: ["cumulative-recharge-reward:update"] + }, + updateDiceConfig: { + method: "PATCH", + operationId: API_OPERATIONS.updateDiceConfig, + path: "/v1/admin/game/self-games/{game_id}/config", + permission: "game:update", + permissions: ["game:update"] + }, + updateExploreTab: { + method: "PUT", + operationId: API_OPERATIONS.updateExploreTab, + path: "/v1/admin/app-config/explore-tabs/{tab_id}", + permission: "app-config:update", + permissions: ["app-config:update"] + }, + updateFirstRechargeRewardConfig: { + method: "PUT", + operationId: API_OPERATIONS.updateFirstRechargeRewardConfig, + path: "/v1/admin/activity/first-recharge-reward/config", + permission: "first-recharge-reward:update", + permissions: ["first-recharge-reward:update"] + }, + updateGift: { + method: "PUT", + operationId: API_OPERATIONS.updateGift, + path: "/v1/admin/gifts/{gift_id}", + permission: "gift:update", + permissions: ["gift:update"] + }, + updateGiftType: { + method: "PUT", + operationId: API_OPERATIONS.updateGiftType, + path: "/v1/admin/gift-types/{type_code}", + permission: "gift:update", + permissions: ["gift:update"] + }, + updateGiftTypes: { + method: "PUT", + operationId: API_OPERATIONS.updateGiftTypes, + path: "/v1/admin/gift-types", + permission: "gift:update", + permissions: ["gift:update"] + }, + updateH5Link: { + method: "PUT", + operationId: API_OPERATIONS.updateH5Link, + path: "/v1/admin/app-config/h5-links/{key}", + permission: "app-config:update", + permissions: ["app-config:update"] + }, + updateH5Links: { + method: "PUT", + operationId: API_OPERATIONS.updateH5Links, + path: "/v1/admin/app-config/h5-links", + permission: "app-config:update", + permissions: ["app-config:update"] + }, + updateHostAgencyPolicy: { + method: "PUT", + operationId: API_OPERATIONS.updateHostAgencyPolicy, + path: "/v1/admin/host-agency-policies/{policy_id}", + permission: "host-agency-policy:update", + permissions: ["host-agency-policy:update"] + }, + updateInviteActivityRewardConfig: { + method: "PUT", + operationId: API_OPERATIONS.updateInviteActivityRewardConfig, + path: "/v1/admin/activity/invite-reward/config", + permission: "invite-activity-reward:update", + permissions: ["invite-activity-reward:update"] + }, + updateMenu: { + method: "PATCH", + operationId: API_OPERATIONS.updateMenu, + path: "/v1/system/menus/{id}", + permission: "menu:update", + permissions: ["menu:update"] + }, + updateMenuVisible: { + method: "PATCH", + operationId: API_OPERATIONS.updateMenuVisible, + path: "/v1/system/menus/{id}/visible", + permission: "menu:visible", + permissions: ["menu:visible"] + }, + updatePermission: { + method: "PATCH", + operationId: API_OPERATIONS.updatePermission, + path: "/v1/permissions/{id}", + permission: "permission:update", + permissions: ["permission:update"] + }, + updatePlatform: { + method: "PATCH", + operationId: API_OPERATIONS.updatePlatform, + path: "/v1/admin/game/platforms/{platform_code}", + permission: "game:update", + permissions: ["game:update"] + }, + updatePopup: { + method: "PUT", + operationId: API_OPERATIONS.updatePopup, + path: "/v1/admin/app-config/popups/{popup_id}", + permission: "app-config:update", + permissions: ["app-config:update"] + }, + updatePrettyIdPool: { + method: "PUT", + operationId: API_OPERATIONS.updatePrettyIdPool, + path: "/v1/admin/users/pretty-id-pools/{pool_id}", + permission: "pretty-id:update", + permissions: ["pretty-id:update"] + }, + updateRechargeProduct: { + method: "PUT", + operationId: API_OPERATIONS.updateRechargeProduct, + path: "/v1/admin/payment/recharge-products/{product_id}", + permission: "payment-product:update", + permissions: ["payment-product:update"] + }, + updateRedPacketConfig: { + method: "PUT", + operationId: API_OPERATIONS.updateRedPacketConfig, + path: "/v1/admin/activity/red-packets/config", + permission: "red-packet:update", + permissions: ["red-packet:update"] + }, + updateRegion: { + method: "PATCH", + operationId: API_OPERATIONS.updateRegion, + path: "/v1/admin/regions/{region_id}", + permission: "region:update", + permissions: ["region:update"] + }, + updateRegistrationRewardConfig: { + method: "PUT", + operationId: API_OPERATIONS.updateRegistrationRewardConfig, + path: "/v1/admin/activity/registration-reward/config", + permission: "registration-reward:update", + permissions: ["registration-reward:update"] + }, + updateResource: { + method: "PUT", + operationId: API_OPERATIONS.updateResource, + path: "/v1/admin/resources/{resource_id}", + permission: "resource:update", + permissions: ["resource:update"] + }, + updateResourceGroup: { + method: "PUT", + operationId: API_OPERATIONS.updateResourceGroup, + path: "/v1/admin/resource-groups/{group_id}", + permission: "resource-group:update", + permissions: ["resource-group:update"] + }, + updateResourceGroupItems: { + method: "PUT", + operationId: API_OPERATIONS.updateResourceGroupItems, + path: "/v1/admin/resource-groups/{group_id}/items", + permission: "resource-group:update", + permissions: ["resource-group:update"] + }, + updateRole: { + method: "PATCH", + operationId: API_OPERATIONS.updateRole, + path: "/v1/roles/{id}", + permission: "role:update", + permissions: ["role:update","role:manage"] + }, + updateRoom: { + method: "PATCH", + operationId: API_OPERATIONS.updateRoom, + path: "/v1/admin/rooms/{room_id}", + permission: "room:update", + permissions: ["room:update"] + }, + updateRoomConfig: { + method: "PUT", + operationId: API_OPERATIONS.updateRoomConfig, + path: "/v1/admin/rooms/config", + permission: "room-config:update", + permissions: ["room-config:update"] + }, + updateRoomRocketConfig: { + method: "PUT", + operationId: API_OPERATIONS.updateRoomRocketConfig, + path: "/v1/admin/activity/room-rocket/config", + permission: "room-rocket:update", + permissions: ["room-rocket:update"] + }, + updateRoomRpsConfig: { + method: "PATCH", + operationId: API_OPERATIONS.updateRoomRpsConfig, + path: "/v1/admin/game/room-rps/config", + permission: "game:update", + permissions: ["game:update"] + }, + updateRoomTurnoverRewardConfig: { + method: "PUT", + operationId: API_OPERATIONS.updateRoomTurnoverRewardConfig, + path: "/v1/admin/activity/room-turnover-reward/config", + permission: "room-turnover-reward:update", + permissions: ["room-turnover-reward:update"] + }, + updateSevenDayCheckInConfig: { + method: "PUT", + operationId: API_OPERATIONS.updateSevenDayCheckInConfig, + path: "/v1/admin/activity/seven-day-checkin/config", + permission: "seven-day-checkin:update", + permissions: ["seven-day-checkin:update"] + }, + updateSplashScreen: { + method: "PUT", + operationId: API_OPERATIONS.updateSplashScreen, + path: "/v1/admin/app-config/splash-screens/{splash_id}", + permission: "app-config:update", + permissions: ["app-config:update"] + }, + updateTaskDefinition: { + method: "PUT", + operationId: API_OPERATIONS.updateTaskDefinition, + path: "/v1/admin/activity/daily-tasks/{task_id}", + permission: "daily-task:update", + permissions: ["daily-task:update"] + }, + updateTeamSalaryPolicy: { + method: "PUT", + operationId: API_OPERATIONS.updateTeamSalaryPolicy, + path: "/v1/admin/team-salary-policies/{policy_id}", + permission: "team-salary-policy:update", + permissions: ["team-salary-policy:update"] + }, + updateThirdPartyPaymentRate: { + method: "PATCH", + operationId: API_OPERATIONS.updateThirdPartyPaymentRate, + path: "/v1/admin/payment/third-party-rates/{method_id}", + permission: "payment-third-party:update", + permissions: ["payment-third-party:update"] + }, + updateTier: { + method: "PUT", + operationId: API_OPERATIONS.updateTier, + path: "/v1/admin/users/level-config/tiers/{tier_id}", + permission: "level-config:update", + permissions: ["level-config:update"] + }, + updateTrack: { + method: "PUT", + operationId: API_OPERATIONS.updateTrack, + path: "/v1/admin/users/level-config/tracks/{track}", + permission: "level-config:update", + permissions: ["level-config:update"] + }, + updateUser: { + method: "PATCH", + operationId: API_OPERATIONS.updateUser, + path: "/v1/users/{id}", + permission: "user:update", + permissions: ["user:update"] + }, + updateUserStatus: { + method: "PATCH", + operationId: API_OPERATIONS.updateUserStatus, + path: "/v1/users/{id}/status", + permission: "user:status", + permissions: ["user:status"] + }, + updateWeeklyStarCycle: { + method: "PUT", + operationId: API_OPERATIONS.updateWeeklyStarCycle, + path: "/v1/admin/activity/weekly-star/cycles/{cycle_id}", + permission: "weekly-star:update", + permissions: ["weekly-star:update"] + }, + uploadFile: { + method: "POST", + operationId: API_OPERATIONS.uploadFile, + path: "/v1/admin/files/upload", + permission: "upload:create", + permissions: ["upload:create"] + }, + uploadImage: { + method: "POST", + operationId: API_OPERATIONS.uploadImage, + path: "/v1/admin/files/image/upload", + permission: "upload:create", + permissions: ["upload:create"] + }, + upsertLuckyGiftConfig: { + method: "PUT", + operationId: API_OPERATIONS.upsertLuckyGiftConfig, + path: "/v1/admin/activity/lucky-gifts/v2/config", + permission: "lucky-gift:update", + permissions: ["lucky-gift:update"] + }, + upsertResourceShopItems: { + method: "POST", + operationId: API_OPERATIONS.upsertResourceShopItems, + path: "/v1/admin/resource-shop/items", + permission: "resource-shop:update", + permissions: ["resource-shop:update"] + }, + upsertRule: { + method: "PUT", + operationId: API_OPERATIONS.upsertRule, + path: "/v1/admin/users/level-config/rules/{track}/{level}", + permission: "level-config:update", + permissions: ["level-config:update"] + } }; export const API_OPERATION_IDS = Object.values(API_OPERATIONS); export const API_PERMISSION_CODES = Array.from( - new Set( - Object.values(API_ENDPOINTS) - .flatMap((endpoint) => endpoint.permissions || (endpoint.permission ? [endpoint.permission] : [])) - .filter((permission): permission is PermissionCode => Boolean(permission)), - ), + new Set( + Object.values(API_ENDPOINTS) + .flatMap((endpoint) => endpoint.permissions || (endpoint.permission ? [endpoint.permission] : [])) + .filter((permission): permission is PermissionCode => Boolean(permission)) + ) ); export type ApiPathParams = Record; export function apiEndpointPath(operationId: ApiOperationId, params: ApiPathParams = {}) { - let endpointPath = API_ENDPOINTS[operationId].path; + let endpointPath = API_ENDPOINTS[operationId].path; - for (const [key, value] of Object.entries(params)) { - endpointPath = endpointPath.replace(`{${key}}`, encodeURIComponent(String(value))); - } + for (const [key, value] of Object.entries(params)) { + endpointPath = endpointPath.replace(`{${key}}`, encodeURIComponent(String(value))); + } - return endpointPath; + return endpointPath; } diff --git a/src/shared/api/generated/schema.d.ts b/src/shared/api/generated/schema.d.ts index 2d12e07..9ffd83a 100644 --- a/src/shared/api/generated/schema.d.ts +++ b/src/shared/api/generated/schema.d.ts @@ -532,6 +532,22 @@ export interface paths { patch?: never; trace?: never; }; + "/admin/managers": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["listManagers"]; + put?: never; + post: operations["createManager"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/admin/agencies": { parameters: { query?: never; @@ -1188,6 +1204,22 @@ export interface paths { patch: operations["updateDiceConfig"]; trace?: never; }; + "/admin/game/self-games/{game_id}/pool/adjust": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["adjustDicePool"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/admin/game/robots": { parameters: { query?: never; @@ -1716,6 +1748,22 @@ export interface paths { patch: operations["updateThirdPartyPaymentRate"]; trace?: never; }; + "/admin/payment/third-party-rates/sync": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["syncThirdPartyPaymentRates"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/admin/regions": { parameters: { query?: never; @@ -2910,6 +2958,12 @@ export interface components { pageSize: number; total: number; }; + ApiPageManager: { + items: components["schemas"]["Manager"][]; + page: number; + pageSize: number; + total: number; + }; ApiPageBDProfile: { items: components["schemas"]["BDProfile"][]; page: number; @@ -2940,6 +2994,12 @@ export interface components { ApiResponseAgencyPage: components["schemas"]["Envelope"] & { data?: components["schemas"]["ApiPageAgency"]; }; + ApiResponseManagerPage: components["schemas"]["Envelope"] & { + data?: components["schemas"]["ApiPageManager"]; + }; + ApiResponseManager: components["schemas"]["Envelope"] & { + data?: components["schemas"]["Manager"]; + }; ApiResponseBDProfilePage: components["schemas"]["Envelope"] & { data?: components["schemas"]["ApiPageBDProfile"]; }; @@ -3011,6 +3071,25 @@ export interface components { status?: string; updatedAtMs?: number; }; + Manager: { + avatar?: string; + bdLeaderCount?: number; + createdAtMs?: number; + contact?: string; + displayUserId?: string; + lastInvitedAtMs?: number; + regionId?: number; + regionName?: string; + /** @enum {string} */ + status?: "active" | "disabled"; + updatedAtMs?: number; + userId: string; + username?: string; + }; + CreateManagerPayload: { + contact?: string; + targetUserId: string; + }; BDProfile: { createdAtMs?: number; createdByUserId?: number; @@ -3088,6 +3167,24 @@ export interface components { }; }; /** @description OK */ + ManagerPageResponse: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ApiResponseManagerPage"]; + }; + }; + /** @description OK */ + ManagerResponse: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ApiResponseManager"]; + }; + }; + /** @description OK */ BDProfilePageResponse: { headers: { [name: string]: unknown; @@ -3901,6 +3998,40 @@ export interface operations { 200: components["responses"]["EmptyResponse"]; }; }; + listManagers: { + parameters: { + query?: { + page?: components["parameters"]["Page"]; + page_size?: components["parameters"]["PageSize"]; + keyword?: components["parameters"]["Keyword"]; + status?: components["parameters"]["Status"]; + region_id?: components["parameters"]["RegionId"]; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: components["responses"]["ManagerPageResponse"]; + }; + }; + createManager: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["CreateManagerPayload"]; + }; + }; + responses: { + 201: components["responses"]["ManagerResponse"]; + }; + }; listAgencies: { parameters: { query?: { @@ -4777,6 +4908,20 @@ export interface operations { 200: components["responses"]["EmptyResponse"]; }; }; + adjustDicePool: { + parameters: { + query?: never; + header?: never; + path: { + game_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: components["responses"]["EmptyResponse"]; + }; + }; listDiceRobots: { parameters: { query?: never; @@ -5350,6 +5495,18 @@ export interface operations { 200: components["responses"]["EmptyResponse"]; }; }; + syncThirdPartyPaymentRates: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: components["responses"]["EmptyResponse"]; + }; + }; listRegions: { parameters: { query?: never; diff --git a/src/shared/api/types.ts b/src/shared/api/types.ts index b37689a..7028f40 100644 --- a/src/shared/api/types.ts +++ b/src/shared/api/types.ts @@ -452,6 +452,7 @@ export interface ThirdPartyPaymentMethodDto { countryCode?: string; countryName?: string; currencyCode?: string; + logoUrl?: string; methodId: number; methodName?: string; payType?: string; @@ -472,6 +473,21 @@ export interface ThirdPartyPaymentChannelDto { status?: string; } +export interface ThirdPartyPaymentRateSyncDto { + missingCurrencies?: string[]; + rates?: Record; + skippedCount?: number; + sourceNames?: string[]; + sources?: Array<{ + currencies?: string[]; + error?: string; + name: string; + success: boolean; + url?: string; + }>; + updatedCount: number; +} + export interface AppVersionDto { appCode?: string; buildNumber: number; @@ -542,6 +558,26 @@ export interface AgencyDto { updatedAtMs?: number; } +export interface ManagerDto { + avatar?: string; + bdLeaderCount?: number; + contact?: string; + createdAtMs?: number; + displayUserId?: string; + lastInvitedAtMs?: number; + regionId?: number; + regionName?: string; + status?: "active" | "disabled"; + updatedAtMs?: number; + userId: string; + username?: string; +} + +export interface CreateManagerPayload { + contact?: string; + targetUserId: string; +} + export interface HostProfileDto { avatar?: string; createdAtMs?: number;