You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.9 KiB
72 lines
1.9 KiB
import apiService from './apiClient'; |
|
|
|
|
|
export interface AddToCartParams { |
|
offer_id: number; |
|
skus: {sku_id:number,quantity:number}[] |
|
} |
|
|
|
export interface GetCartListResponse { |
|
items: GetCartList[] |
|
} |
|
export interface attributes{ |
|
attribute_name:string, |
|
attribute_name_trans:string, |
|
attribute_name_trans_ar:string, |
|
attribute_name_trans_en:string, |
|
attribute_value:string, |
|
sku_id:number, |
|
sku_image_url:string, |
|
value:string, |
|
value_trans:string, |
|
value_trans_ar:string, |
|
value_trans_en:string, |
|
attribute_id:number, |
|
|
|
} |
|
export interface CartSku { |
|
cart_item_id: number, |
|
price: number, |
|
quantity: number, |
|
selected: number, |
|
sku_id: number, |
|
attributes:attributes[], |
|
} |
|
export interface GetCartList { |
|
"cart_id": number, |
|
"user_id": number, |
|
"offer_id": number, |
|
"sku_id": number, |
|
"quantity": number, |
|
"selected": number, |
|
"subject": string, |
|
"subject_trans": string, |
|
"subject_trans_en": string, |
|
"subject_trans_ar": string, |
|
"category_id": number, |
|
"price": number, |
|
"product_image": string, |
|
min_order_quantity:number |
|
skus:CartSku[] |
|
} |
|
export const cartApi = (data: AddToCartParams) => { |
|
return apiService.post('/api/cart/', data); |
|
} |
|
|
|
|
|
export const getCartList = () => { |
|
return apiService.get<GetCartListResponse>('https://api.brainnel.com/backend/api/cart/'); |
|
} |
|
|
|
export const updateCartItem = (cart_id:number,data?:{cart_item_id?:number | null,selected:number | null,quantity:number | null}) => { |
|
return apiService.put(`/api/cart/${cart_id}/`,data); |
|
} |
|
|
|
// 批量更新选中状态 |
|
export const updateBatchCartSelected = (data?:{cart_id?:number | null,selected:number | null,offer_ids:Array<number> | null}) => { |
|
return apiService.patch(`/api/cart/selected/`,data); |
|
} |
|
|
|
export const deleteCartItem = (cart_id:number,cart_item_id:number) => { |
|
return apiService.delete(`/api/cart/${cart_id}/?cart_item_id=${cart_item_id}`); |
|
} |