import { axios } from "timi-web-api"; import type { GaoProductChartReq, GaoProductSkuFulfillmentDailyStatView, GaoProductSkuFulfillmentRankView, GaoProductSkuSalesDailyStatView, GaoProductSkuSalesRankView, GaoProductSkuStockHealthView, GaoProductSkuStockMovementDailyStatView, GaoProductSkuUnitSalesRankView } from "@/types/GaoChart"; import { getStoreChartCache } from "@/utils/storeChartCache"; import { withCurrentStoreId } from "@/utils/store"; const BASE_URI = "/gao/product/sku/chart"; async function salesDaily(req: GaoProductChartReq): Promise { return await requestList("sales-daily", "/sales/daily", req); } async function salesRank(req: GaoProductChartReq): Promise { return await requestList("sales-rank", "/sales/rank", req); } async function unitSalesRank(req: GaoProductChartReq): Promise { return await requestList("sales-unit-rank", "/sales/unit/rank", req); } async function fulfillmentDaily(req: GaoProductChartReq): Promise { return await requestList("fulfillment-daily", "/fulfillment/daily", req); } async function fulfillmentRank(req: GaoProductChartReq): Promise { return await requestList("fulfillment-rank", "/fulfillment/rank", req); } async function stockMovementDaily(req: GaoProductChartReq): Promise { return await requestList("stock-movement-daily", "/stock/movement/daily", req); } async function stockHealth(req: GaoProductChartReq): Promise { return await requestList("stock-health", "/stock/health", req); } async function requestList(name: string, path: string, req: GaoProductChartReq): Promise { const request = withCurrentStoreId(req); return await getStoreChartCache(`gao-product-sku:${name}:${JSON.stringify(request)}`, async () => await axios.post(`${BASE_URI}${path}`, request)); } export default { salesDaily, salesRank, unitSalesRank, fulfillmentDaily, fulfillmentRank, stockMovementDaily, stockHealth };