add product/order chart

This commit is contained in:
Timi
2026-09-06 23:20:26 +08:00
parent 0b01a54eac
commit 9841723177
20 changed files with 2236 additions and 0 deletions
+200
View File
@@ -0,0 +1,200 @@
import type { ProductType } from "@/types/Product";
export type GaoProductChartReq = {
storeId?: string;
productId?: string;
categoryId?: string;
productType?: ProductType;
beginAt?: number;
endAt?: number;
topN?: number;
};
export type GaoSalesOrderChartReq = {
storeId?: string;
customerId?: string;
orderType?: "PACKAGE" | "DIRECT_PRODUCT";
status?: "ACTIVE" | "FULFILLED" | "CANCELLED";
paymentStatus?: "UNPAID" | "PARTIALLY_PAID" | "PAID";
beginAt: number;
endAt: number;
topN?: number;
};
export type GaoProductSalesDailyStatView = {
dateValue?: number;
orderCount?: number;
directQuantity?: number;
packageQuantity?: number;
directSaleAmount?: number;
};
export type GaoProductSalesRankView = {
productId?: string;
productName?: string;
orderCount?: number;
directQuantity?: number;
packageQuantity?: number;
directSaleAmount?: number;
};
export type GaoProductSkuUnitSalesRankView = {
productId?: string;
productName?: string;
skuId?: string;
skuUnitId?: string;
skuName?: string;
specSummary?: string;
unitName?: string;
orderCount?: number;
quantity?: number;
saleAmount?: number;
};
export type GaoProductFulfillmentDailyStatView = {
dateValue?: number;
directQuantity?: number;
packageQuantity?: number;
baseQuantity?: number;
};
export type GaoProductFulfillmentRankView = {
productId?: string;
productName?: string;
orderCount?: number;
directQuantity?: number;
packageQuantity?: number;
reservedQuantity?: number;
fulfilledQuantity?: number;
availableQuantity?: number;
};
export type GaoProductStockMovementDailyStatView = {
dateValue?: number;
inQuantity?: number;
outQuantity?: number;
netOnHandQuantity?: number;
reserveQuantity?: number;
releaseQuantity?: number;
};
export type GaoProductStockHealthView = {
productId?: string;
productName?: string;
categoryId?: string | null;
categoryName?: string;
productType?: ProductType;
onHandQuantity?: number;
reservedQuantity?: number;
availableQuantity?: number;
minStockQuantity?: number;
lowStock?: number;
};
export type GaoProductTypeStatView = {
productType?: ProductType;
productCount?: number;
};
export type GaoProductCategoryStatView = {
categoryId?: string | null;
categoryName?: string;
productCount?: number;
};
export type GaoSalesOrderDailyStatView = {
dateValue?: number;
orderCount?: number;
saleAmount?: number;
paidAmount?: number;
pendingPaidAmount?: number;
refundedAmount?: number;
netPaidAmount?: number;
};
export type GaoSalesOrderTypeStatView = {
orderType?: "PACKAGE" | "DIRECT_PRODUCT";
orderCount?: number;
saleAmount?: number;
paidAmount?: number;
refundedAmount?: number;
netPaidAmount?: number;
};
export type GaoSalesOrderPaymentStatView = {
paymentStatus?: "UNPAID" | "PARTIALLY_PAID" | "PAID";
orderCount?: number;
saleAmount?: number;
paidAmount?: number;
pendingPaidAmount?: number;
unpaidAmount?: number;
refundedAmount?: number;
};
export type GaoSalesOrderStatusStatView = {
status?: "ACTIVE" | "FULFILLED" | "CANCELLED";
orderCount?: number;
saleAmount?: number;
paidAmount?: number;
refundedAmount?: number;
};
export type GaoSalesOrderReceivableStatView = {
orderCount?: number;
saleAmount?: number;
paidAmount?: number;
pendingPaidAmount?: number;
unpaidAmount?: number;
refundedAmount?: number;
netPaidAmount?: number;
};
export type GaoCustomerOrderRankView = {
customerId?: string;
customerCode?: string;
customerName?: string;
orderCount?: number;
saleAmount?: number;
paidAmount?: number;
refundedAmount?: number;
netPaidAmount?: number;
};
export type GaoCustomerOrderProductRankView = {
productId?: string;
productName?: string;
orderCount?: number;
directQuantity?: number;
packageQuantity?: number;
reservedQuantity?: number;
fulfilledQuantity?: number;
availableQuantity?: number;
directSaleAmount?: number;
};
export type GaoSalesOrderConsumptionDailyStatView = {
dateValue?: number;
recordCount?: number;
amount?: number;
cumulativeAmount?: number;
};
export type GaoSalesOrderCalendarStatView = {
dateValue?: number;
orderCount?: number;
saleAmount?: number;
netPaidAmount?: number;
};
export type GaoCustomerRepeatDailyStatView = {
dateValue?: number;
customerCount?: number;
repeatCustomerCount?: number;
repeatOrderCount?: number;
};
export type GaoCustomerRepeatIntervalStatView = {
intervalDays?: number;
customerCount?: number;
orderCount?: number;
};