import { apiClient, getDataOrDefault } from "@/lib/api"; export interface TopUpRequest { quotaMb: number; } export interface ChangePlanRequest { newPlanCode: string; assignGlobalIp: boolean; } export interface CancelRequest { scheduledAt: string; } export interface SimInfo { details: T; error?: E; } export const simActionsService = { async topUp(subscriptionId: string, request: TopUpRequest): Promise { await apiClient.POST("/api/subscriptions/{subscriptionId}/sim/top-up", { params: { path: { subscriptionId } }, body: request, }); }, async changePlan(subscriptionId: string, request: ChangePlanRequest): Promise { await apiClient.POST("/api/subscriptions/{subscriptionId}/sim/change-plan", { params: { path: { subscriptionId } }, body: request, }); }, async cancel(subscriptionId: string, request: CancelRequest): Promise { await apiClient.POST("/api/subscriptions/{subscriptionId}/sim/cancel", { params: { path: { subscriptionId } }, body: request, }); }, async getSimInfo(subscriptionId: string): Promise | null> { const response = await apiClient.GET("/api/subscriptions/{subscriptionId}/sim/info", { params: { path: { subscriptionId } }, }); return getDataOrDefault(response, null); }, };