import { apiRequest, ApiResponse } from "./api-utils"; export interface PowerSettings { tokensPerYuan: number; range: { min: number; max: number }; note: string; updatedBy?: string; updateTime?: string; dailyFreeTokens?: number; dailyFreeEnabled?: boolean; dailyFreeRange?: { min: number; max: number }; } export interface CatalogItem { action: number; slug: string; displayName: string; adminName: string; cost: number; unit: string; unitLabel: string; scenePack: string; group: string; status: number; } export interface ScenePackGroup { id: string; name: string; desc: string; items: CatalogItem[]; } export interface CatalogResponse { tokensPerYuan: number; scenePacks: ScenePackGroup[]; catalog: CatalogItem[]; } export interface TokenPackage { id: number; packageCode: string; name: string; subtitle: string; badge: string; price: number; originalPrice: number; tokens: number; sort: number; status: number; } export interface PowerInsights { tokensPerYuan: number; todaySpend: number; monthSpend: number; monthYuan: number; scenePackStats: { id: string; name: string; tokens: number }[]; topProjects: { companyId: number; projectName: string; tokens: number }[]; } export function getPowerSettings(): Promise> { return apiRequest("/power-billing/settings"); } export function updatePowerSettings(payload: { tokensPerYuan?: number; dailyFreeTokens?: number; dailyFreeEnabled?: boolean; }): Promise> { return apiRequest("/power-billing/settings", "PUT", payload); } export function getPowerCatalog(): Promise> { return apiRequest("/power-billing/catalog"); } export function updateCatalogItem( slug: string, patch: Partial>, ): Promise> { return apiRequest(`/power-billing/catalog/${encodeURIComponent(slug)}`, "PUT", patch); } export function resetCatalogItem(slug: string): Promise> { return apiRequest(`/power-billing/catalog/reset/${encodeURIComponent(slug)}`, "POST"); } // 新增自定义收费项(§六 V12) export interface NewCatalogPayload { slug: string; displayName: string; scenePack?: string; cost?: number; unit?: string; adminName?: string; } export function addCatalogItem(payload: NewCatalogPayload): Promise> { return apiRequest("/power-billing/catalog", "POST", payload); } export function getPowerPackages(): Promise> { return apiRequest("/power-billing/packages"); } export function savePowerPackage(payload: Partial): Promise> { return apiRequest("/power-billing/packages", "POST", payload); } export function recalcPowerPackages(): Promise> { return apiRequest("/power-billing/packages/recalc", "POST"); } export function getPowerInsights(): Promise> { return apiRequest("/power-billing/insights"); }