import { Product } from '../../../types/models/Product';
import { Order } from '../../../types/models/Order';
import { ShopInfo } from '../../../types/models/ShopInfo';

export interface IPlatformAdapter {
  /**
   * 授权店铺
   * @param authInfo 授权信息
   * @returns 授权结果
   */
  authorize(authInfo: Record<string, any>): Promise<boolean>;

  /**
   * 获取店铺信息
   * @returns 店铺信息
   */
  getShopInfo(): Promise<ShopInfo>;

  /**
   * 获取商品列表
   * @param limit 限制数量
   * @param offset 偏移量
   * @returns 商品列表
   */
  getProducts(limit?: number, offset?: number): Promise<Product[]>;

  /**
   * 获取订单列表
   * @param limit 限制数量
   * @param offset 偏移量
   * @returns 订单列表
   */
  getOrders(limit?: number, offset?: number): Promise<Order[]>;

  /**
   * 更新商品价格
   * @param productId 商品ID
   * @param price 新价格
   * @returns 更新结果
   */
  updateProductPrice(productId: string, price: number): Promise<boolean>;

  /**
   * 更新商品库存
   * @param productId 商品ID
   * @param stock 新库存
   * @returns 更新结果
   */
  updateProductStock(productId: string, stock: number): Promise<boolean>;

  /**
   * 上架商品
   * @param product 商品信息
   * @returns 上架结果
   */
  listProduct(product: Product): Promise<string>;

  /**
   * 下架商品
   * @param productId 商品ID
   * @returns 下架结果
   */
  delistProduct(productId: string): Promise<boolean>;

  /**
   * 获取平台API状态
   * @returns 状态信息
   */
  getApiStatus(): Promise<{ status: string; timestamp: number }>;
}
