API/src/interface/platform.interface.ts

288 lines
7.3 KiB
TypeScript

// src/interface/platform.interface.ts
/**
* 电商平台抽象接口
* 定义所有平台必须实现的通用方法
*/
export interface IPlatformService {
/**
* 获取产品列表
* @param site 站点配置信息
* @returns 产品列表数据
*/
getProducts(site: any): Promise<any[]>;
/**
* 获取单个产品
* @param site 站点配置信息
* @param id 产品ID
* @returns 产品数据
*/
getProduct(site: any, id: number): Promise<any>;
/**
* 获取产品变体列表
* @param site 站点配置信息
* @param productId 产品ID
* @returns 变体列表数据
*/
getVariations(site: any, productId: number): Promise<any[]>;
/**
* 获取产品变体详情
* @param site 站点配置信息
* @param productId 产品ID
* @param variationId 变体ID
* @returns 变体详情数据
*/
getVariation(site: any, productId: number, variationId: number): Promise<any>;
/**
* 获取订单列表
* @param siteId 站点ID
* @returns 订单列表数据
*/
getOrders(siteId: number, params: Record<string, any>): Promise<any[]>;
/**
* 获取订单详情
* @param siteId 站点ID
* @param orderId 订单ID
* @returns 订单详情数据
*/
getOrder(siteId: number, orderId: string): Promise<any>;
/**
* 获取订阅列表(如果平台支持)
* @param siteId 站点ID
* @returns 订阅列表数据
*/
getSubscriptions?(siteId: number): Promise<any[]>;
/**
* 获取客户列表
* @param site 站点配置信息
* @returns 客户列表数据
*/
getCustomers(site: any): Promise<any[]>;
/**
* 获取单个客户
* @param site 站点配置信息
* @param id 客户ID
* @returns 客户数据
*/
getCustomer(site: any, id: number): Promise<any>;
/**
* 创建产品
* @param site 站点配置信息
* @param data 产品数据
* @returns 创建结果
*/
createProduct(site: any, data: any): Promise<any>;
/**
* 更新产品
* @param site 站点配置信息
* @param productId 产品ID
* @param data 更新数据
* @returns 更新结果
*/
updateProduct(site: any, productId: string, data: any): Promise<boolean>;
/**
* 更新产品状态
* @param site 站点配置信息
* @param productId 产品ID
* @param status 产品状态
* @param stockStatus 库存状态
* @returns 更新结果
*/
updateProductStatus(site: any, productId: string, status: string, stockStatus: string): Promise<boolean>;
/**
* 更新产品变体
* @param site 站点配置信息
* @param productId 产品ID
* @param variationId 变体ID
* @param data 更新数据
* @returns 更新后的变体数据
*/
updateVariation(site: any, productId: string, variationId: string, data: any): Promise<any>;
/**
* 更新订单
* @param site 站点配置信息
* @param orderId 订单ID
* @param data 更新数据
* @returns 更新结果
*/
updateOrder(site: any, orderId: string, data: Record<string, any>): Promise<boolean>;
/**
* 创建履约信息
* @param site 站点配置信息
* @param orderId 订单ID
* @param data 履约数据
* @returns 创建结果
*/
createFulfillment(site: any, orderId: string, data: any): Promise<any>;
/**
* 删除履约信息
* @param site 站点配置信息
* @param orderId 订单ID
* @param fulfillmentId 履约跟踪ID
* @returns 删除结果
*/
deleteFulfillment(site: any, orderId: string, fulfillmentId: string): Promise<boolean>;
/**
* 批量处理产品
* @param site 站点配置信息
* @param data 批量操作数据
* @returns 处理结果
*/
batchProcessProducts(site: any, data: { create?: any[]; update?: any[]; delete?: any[] }): Promise<any>;
/**
* 获取 api 客户端
* @param site 站点配置信息
* @returns api 客户端
*/
getApiClient(site: any): any;
/**
* 获取客户列表
* @param site 站点配置信息
* @returns 客户列表数据
*/
getCustomers(site: any): Promise<any[]>;
/**
* 获取单个客户
* @param site 站点配置信息
* @param id 客户ID
* @returns 客户数据
*/
getCustomer(site: any, id: number): Promise<any>;
/**
* 获取评论列表
* @param site 站点配置信息
* @returns 评论列表数据
*/
getReviews(site: any): Promise<any[]>;
/**
* 创建评论
* @param site 站点配置信息
* @param data 评论数据
* @returns 创建结果
*/
createReview(site: any, data: any): Promise<any>;
/**
* 更新评论
* @param site 站点配置信息
* @param reviewId 评论ID
* @param data 更新数据
* @returns 更新结果
*/
updateReview(site: any, reviewId: number, data: any): Promise<any>;
/**
* 删除评论
* @param site 站点配置信息
* @param reviewId 评论ID
* @returns 删除结果
*/
deleteReview(site: any, reviewId: number): Promise<boolean>;
/**
* 获取分页资源
* @param site 站点配置信息
* @param resource 资源类型
* @param params 查询参数
* @param namespace API命名空间
* @returns 分页数据
*/
fetchResourcePaged<T>(site: any, resource: string, params: Record<string, any>, namespace?: any): Promise<{ items: T[]; total: number; totalPages: number; page: number; per_page: number }>;
/**
* 获取分页媒体
* @param site 站点配置信息
* @param params 查询参数
* @returns 分页媒体数据
*/
fetchMediaPaged(site: any, params: Record<string, any>): Promise<{ items: any[]; total: number; totalPages: number; page: number; per_page: number }>;
/**
* 删除媒体
* @param siteId 站点ID
* @param mediaId 媒体ID
* @param force 是否强制删除
* @returns 删除结果
*/
deleteMedia(siteId: number, mediaId: number, force?: boolean): Promise<any>;
/**
* 更新媒体
* @param siteId 站点ID
* @param mediaId 媒体ID
* @param data 更新数据
* @returns 更新结果
*/
updateMedia(siteId: number, mediaId: number, data: any): Promise<any>;
/**
* 转换媒体为WebP格式
* @param siteId 站点ID
* @param mediaIds 媒体ID列表
* @returns 转换结果
*/
convertMediaToWebp(siteId: number, mediaIds: Array<number | string>): Promise<{ converted: any[]; failed: Array<{ id: number | string; error: string }> }>;
/**
* 获取webhook列表
* @param site 站点配置信息
* @param params 查询参数
* @returns 分页webhook列表
*/
getWebhooks(site: any, params: any): Promise<any>;
/**
* 获取单个webhook
* @param site 站点配置信息
* @param webhookId webhook ID
* @returns webhook详情
*/
getWebhook(site: any, webhookId: string | number): Promise<any>;
/**
* 创建webhook
* @param site 站点配置信息
* @param data webhook数据
* @returns 创建结果
*/
createWebhook(site: any, data: any): Promise<any>;
/**
* 更新webhook
* @param site 站点配置信息
* @param webhookId webhook ID
* @param data 更新数据
* @returns 更新结果
*/
updateWebhook(site: any, webhookId: string | number, data: any): Promise<any>;
/**
* 删除webhook
* @param site 站点配置信息
* @param webhookId webhook ID
* @returns 删除结果
*/
deleteWebhook(site: any, webhookId: string | number): Promise<boolean>;
}