| |
| |
| |
| |
|
|
| import { apiClient } from '../client' |
| import type { |
| DashboardStats, |
| PaymentOrder, |
| PaymentChannel, |
| SubscriptionPlan, |
| ProviderInstance |
| } from '@/types/payment' |
| import type { BasePaginationResponse } from '@/types' |
|
|
| |
| export interface AdminPaymentConfig { |
| enabled: boolean |
| min_amount: number |
| max_amount: number |
| daily_limit: number |
| order_timeout_minutes: number |
| max_pending_orders: number |
| enabled_payment_types: string[] |
| balance_disabled: boolean |
| balance_recharge_multiplier: number |
| load_balance_strategy: string |
| product_name_prefix: string |
| product_name_suffix: string |
| help_image_url: string |
| help_text: string |
| } |
|
|
| |
| export interface UpdatePaymentConfigRequest { |
| enabled?: boolean |
| min_amount?: number |
| max_amount?: number |
| daily_limit?: number |
| order_timeout_minutes?: number |
| max_pending_orders?: number |
| enabled_payment_types?: string[] |
| balance_disabled?: boolean |
| balance_recharge_multiplier?: number |
| load_balance_strategy?: string |
| product_name_prefix?: string |
| product_name_suffix?: string |
| help_image_url?: string |
| help_text?: string |
| } |
|
|
| export const adminPaymentAPI = { |
| |
|
|
| |
| getConfig() { |
| return apiClient.get<AdminPaymentConfig>('/admin/payment/config') |
| }, |
|
|
| |
| updateConfig(data: UpdatePaymentConfigRequest) { |
| return apiClient.put('/admin/payment/config', data) |
| }, |
|
|
| |
|
|
| |
| getDashboard(days?: number) { |
| return apiClient.get<DashboardStats>('/admin/payment/dashboard', { |
| params: days ? { days } : undefined |
| }) |
| }, |
|
|
| |
|
|
| |
| getOrders(params?: { |
| page?: number |
| page_size?: number |
| status?: string |
| payment_type?: string |
| user_id?: number |
| keyword?: string |
| start_date?: string |
| end_date?: string |
| order_type?: string |
| }) { |
| return apiClient.get<BasePaginationResponse<PaymentOrder>>('/admin/payment/orders', { params }) |
| }, |
|
|
| |
| getOrder(id: number) { |
| return apiClient.get<PaymentOrder>(`/admin/payment/orders/${id}`) |
| }, |
|
|
| |
| cancelOrder(id: number) { |
| return apiClient.post(`/admin/payment/orders/${id}/cancel`) |
| }, |
|
|
| |
| retryRecharge(id: number) { |
| return apiClient.post(`/admin/payment/orders/${id}/retry`) |
| }, |
|
|
| |
| refundOrder(id: number, data: { amount: number; reason: string; deduct_balance?: boolean; force?: boolean }) { |
| return apiClient.post(`/admin/payment/orders/${id}/refund`, data) |
| }, |
|
|
| |
|
|
| |
| getChannels() { |
| return apiClient.get<PaymentChannel[]>('/admin/payment/channels') |
| }, |
|
|
| |
| createChannel(data: Partial<PaymentChannel>) { |
| return apiClient.post<PaymentChannel>('/admin/payment/channels', data) |
| }, |
|
|
| |
| updateChannel(id: number, data: Partial<PaymentChannel>) { |
| return apiClient.put<PaymentChannel>(`/admin/payment/channels/${id}`, data) |
| }, |
|
|
| |
| deleteChannel(id: number) { |
| return apiClient.delete(`/admin/payment/channels/${id}`) |
| }, |
|
|
| |
|
|
| |
| getPlans() { |
| return apiClient.get<SubscriptionPlan[]>('/admin/payment/plans') |
| }, |
|
|
| |
| createPlan(data: Record<string, unknown>) { |
| return apiClient.post<SubscriptionPlan>('/admin/payment/plans', data) |
| }, |
|
|
| |
| updatePlan(id: number, data: Record<string, unknown>) { |
| return apiClient.put<SubscriptionPlan>(`/admin/payment/plans/${id}`, data) |
| }, |
|
|
| |
| deletePlan(id: number) { |
| return apiClient.delete(`/admin/payment/plans/${id}`) |
| }, |
|
|
| |
|
|
| |
| getProviders() { |
| return apiClient.get<ProviderInstance[]>('/admin/payment/providers') |
| }, |
|
|
| |
| createProvider(data: Partial<ProviderInstance>) { |
| return apiClient.post<ProviderInstance>('/admin/payment/providers', data) |
| }, |
|
|
| |
| updateProvider(id: number, data: Partial<ProviderInstance>) { |
| return apiClient.put<ProviderInstance>(`/admin/payment/providers/${id}`, data) |
| }, |
|
|
| |
| deleteProvider(id: number) { |
| return apiClient.delete(`/admin/payment/providers/${id}`) |
| } |
| } |
|
|
| export default adminPaymentAPI |
|
|