fusenapi/server_api/shopping-cart.api
laodaming 2054b9ec97 fix
2023-09-22 17:04:01 +08:00

119 lines
4.8 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

syntax = "v1"
info (
title: "shopping-cart"// TODO: add title
desc: "购物车服务"// TODO: add description
author: ""
email: ""
)
import "basic.api"
service shopping-cart {
//加入购物车
@handler AddToCartHandler
post /api/shopping-cart/add(AddToCartReq) returns (response);
//删除购物车
@handler DeleteCartHandler
post /api/shopping-cart/delete(DeleteCartReq) returns (response);
//获取购物车列表
@handler GetCartsHandler
get /api/shopping-cart/get_carts(GetCartsReq) returns (response);
//计算购物车价格
@handler CalculateCartPriceHandler
post /api/shopping-cart/calculate_cart_price(CalculateCartPriceReq) returns (response);
}
//加入购物车
type AddToCartReq {
ProductId int64 `json:"product_id"` //产品id
TemplateId int64 `json:"template_id,optional"` //模板id(不可定制的不传)
SizeId int64 `json:"size_id"` //尺寸id
FittingId int64 `json:"fitting_id,optional"` //配件id(没有可以不传)
PurchaseQuantity int64 `json:"purchase_quantity"` //购买数量
Logo string `json:"logo,optional"` //logo地址(没有可以不传)
CombineImage string `json:"combine_image,optional"` //合图地址 (没有可以不传)
RenderImage string `json:"render_image,optional"` //渲染结果图 (没有可以不传)
DiyInfo DiyInfo `json:"diy_info,optional"` //用户diy数据可选
}
type DiyInfo {
Phone string `json:"phone,optional"` //电话(可选)
Address string `json:"address,optional"` //地址 (可选)
Website string `json:"website,optional"` //网站 (可选)
Qrcode string `json:"qrcode,optional"` //二维码 (可选)
Slogan string `json:"slogan,optional"` //slogan (可选)
}
//删除购物车
type DeleteCartReq {
Id int64 `json:"id"` //购物车id
}
//获取购物车列表
type GetCartsReq {
CartIds []int64 `json:"cart_id,optional"` //购物车ids可选
}
type GetCartsRsp {
Meta Meta `json:"meta"` //分页信息
CartList []CartItem `json:"cart_list"`
}
type CartItem {
CartId int64 `json:"cart_id"`
ProductInfo ProductInfo `json:"product_info"` //产品信息
SizeInfo SizeInfo `json:"size_info"` //尺寸信息
FittingInfo FittingInfo `json:"fitting_info"` //配件信息
ItemPrice string `json:"item_price"` //单价
TotalPrice string `json:"total_price"` //单价X数量=总价
DiyInformation DiyInformation `json:"diy_information"` //diy信息
PurchaseQuantity int64 `json:"purchase_quantity"` //当前购买数量
MinPurchaseQuantity int64 `json:"min_purchase_quantity"` //起购数量
StepPurchaseQuantity int64 `json:"step_purchase_quantity"` //购买加或者减少步进量
IsHighlyCustomized bool `json:"is_highly_customized"` //是否高度定制
IsInvalid bool `json:"is_invalid"` //是否无效
InvalidDescription string `json:"invalid_description"` //无效原因
IsSelected bool `json:"is_selected"` //是否选中
}
type ProductInfo {
ProductId int64 `json:"product_id"` //产品id
ProductName string `json:"product_name"`
ProductSn string `json:"product_sn"`
ProductCover string `json:"product_cover"` //产品图
ProductCoverMetadata interface{} `json:"product_cover_metadata"` //产品图元数据
}
type SizeInfo {
SizeId int64 `json:"size_id"` //尺寸id
Capacity string `json:"capacity"` //尺寸名称
Title SizeTitle `json:"title"`
}
type FittingInfo {
FittingId int64 `json:"fitting_id"` //配件id
FittingName string `json:"fitting_name"` //配件名称
}
type SizeTitle {
Cm string `json:"cm"`
Inch string `json:"inch"`
}
type DiyInformation {
Phone string `json:"phone"`
Address string `json:"address"`
Website string `json:"website"`
Qrcode string `json:"qrcode"`
Slogan string `json:"slogan"`
}
//计算购物车价格
type CalculateCartPriceReq {
CalculateList []CalculateItem `json:"calculate_list"`
}
type CalculateItem {
CartId int64 `json:"cart_id"` //购物车id
PurchaseQuantity int64 `json:"purchase_quantity"` //数量
IsSelected bool `json:"is_selected"` //是否是选中的,选中的会统计到总价中
}
type CalculateCartPriceRsp {
SubTotalPrice string `json:"sub_total_price"`
CalculateResultList []CalculateResultItem `json:"calculate_result_list"`
}
type CalculateResultItem {
CartId int64 `json:"cart_id"` //购物车id
ItemPrice string `json:"item_price"` //单价
TotalPrice string `json:"total_price"` //总价
}