import request from '@/axios' import type { PageResult } from './types' export interface OrderItem { id: number orderNo: string userId: number productCode: string productName: string type: string platform: string amount: number currency: string coinAmount: number /** CREATED / PAID / DELIVERED / REFUNDED / CLOSED */ status: string paidAt?: string deliveredAt?: string refundReason: string failReason: string createdAt?: string } export interface OrderEventItem { id: number orderNo: string event: string fromStatus: string toStatus: string source: string payload: string operatorId: number createdAt?: string } export interface EntitlementItem { id: number userId: number dramaId: number episodeId: number /** EPISODE / DRAMA */ type: string /** ORDER / ADMIN / ACTIVITY */ source: string /** ACTIVE / REVOKED / EXPIRED */ status: string orderNo: string startAt?: string revokeReason: string } export interface LedgerItem { id: number userId: number changeAmount: number balanceAfter: number bizType: string bizId: string remark: string operatorId: number createdAt?: string } export interface ReconcileItem { id: number bizDate: string platform: string totalCount: number matchedCount: number diffCount: number amountSum: number status: string detail: string finishedAt?: string } export const pageOrdersApi = (params: Record) => { return request.get>({ url: '/admin/orders/page', params }) } export const listOrderEventsApi = (orderNo: string) => { return request.get({ url: `/admin/orders/${orderNo}/events` }) } export const compensateOrderApi = (orderNo: string) => { return request.post({ url: `/admin/orders/${orderNo}/compensate` }) } export const refundOrderApi = (orderNo: string, reason: string) => { return request.post({ url: `/admin/orders/${orderNo}/refund`, data: { reason } }) } export const pageEntitlementsApi = (params: Record) => { return request.get>({ url: '/admin/entitlements/page', params }) } export const grantEntitlementApi = (data: Record) => { return request.post({ url: '/admin/entitlements', data }) } export const revokeEntitlementApi = (id: number, reason: string) => { return request.put({ url: `/admin/entitlements/${id}/revoke`, params: { reason } }) } export const listWalletLedgerApi = (userId: number, limit = 20) => { return request.get({ url: `/admin/wallets/${userId}/ledger`, params: { limit } }) } export const adjustCoinsApi = (data: Record) => { return request.post({ url: '/admin/wallets/coins', data }) } export const pageReconcileApi = (params: Record) => { return request.get>({ url: '/admin/reconcile/page', params }) } export const runReconcileApi = (params: Record) => { return request.post({ url: '/admin/reconcile/run', params }) }