diff --git a/src/pages/food/List.tsx b/src/pages/food/List.tsx
index 40b1734..b7bbdfa 100644
--- a/src/pages/food/List.tsx
+++ b/src/pages/food/List.tsx
@@ -17,7 +17,6 @@ const FoodsList: FC = () => {
apiParams,
handleFiltersChange,
handlePageChange,
- limit,
} = useFoodFilters()
const { data: foodsData, isLoading } = useGetFoods(apiParams)
@@ -30,7 +29,7 @@ const FoodsList: FC = () => {
})
const filterFields = useFoodFiltersFields()
- const totalPages = Math.ceil(foods.length / limit) || 1
+ const totalPages = foodsData?.meta?.totalPages || 1
return (
diff --git a/src/pages/food/components/FoodTableColumns.tsx b/src/pages/food/components/FoodTableColumns.tsx
index 35b35ae..10b328d 100644
--- a/src/pages/food/components/FoodTableColumns.tsx
+++ b/src/pages/food/components/FoodTableColumns.tsx
@@ -60,6 +60,24 @@ export const getFoodTableColumns = ({ onDelete, isDeleting }: GetFoodTableColumn
return formatTime(item.prepareTime || 0)
}
},
+ {
+ key: 'inventory',
+ title: 'موجودی',
+ render: (item: Food) => {
+ const availableStock = item.inventory.availableStock
+ const totalStock = item.inventory.totalStock
+ return (
+
+
+ {availableStock} / {totalStock}
+
+ {availableStock === 0 && (
+ ناموجود
+ )}
+
+ )
+ }
+ },
{
key: 'isActive',
title: 'وضعیت',
diff --git a/src/pages/food/types/Types.ts b/src/pages/food/types/Types.ts
index 6315a6e..213c9a5 100644
--- a/src/pages/food/types/Types.ts
+++ b/src/pages/food/types/Types.ts
@@ -40,6 +40,16 @@ export type FoodDetailsCategory = {
avatarUrl: string | null;
};
+export type Inventory = {
+ id: string;
+ createdAt: string;
+ updatedAt: string;
+ deletedAt: string | null;
+ food: string;
+ totalStock: number;
+ availableStock: number;
+};
+
export type Food = {
id: string;
createdAt: string;
@@ -47,7 +57,7 @@ export type Food = {
deletedAt: string | null;
restaurant: string;
category: FoodDetailsCategory;
- inventory: string | null;
+ inventory: Inventory;
title: string;
desc: string;
content: string[];
@@ -60,7 +70,7 @@ export type Food = {
images: string[];
inPlaceServe: boolean;
pickupServe: boolean;
- score: number | null;
+ score: number;
discount: number;
isSpecialOffer: boolean;
};
@@ -82,7 +92,7 @@ export type FoodDetails = {
deletedAt: string | null;
restaurant: string;
category: FoodDetailsCategory;
- inventory: string | null;
+ inventory: Inventory | null;
title: string;
desc: string;
content: string[];
@@ -100,8 +110,15 @@ export type FoodDetails = {
isSpecialOffer: boolean;
};
+export type PaginationMeta = {
+ total: number;
+ page: string;
+ limit: string;
+ totalPages: number;
+};
+
export type GetCategoriesResponseType = IResponse
;
-export type GetFoodsResponseType = IResponse;
+export type GetFoodsResponseType = IResponse & { meta: PaginationMeta };
export type GetFoodDetailsResponseType = IResponse;
export type CreateCategoryType = {