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