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 ModifyCartPurchaseQuantityHandler post /api/shopping-cart/modify(ModifyCartPurchaseQuantityReq) returns (response); //获取购物车列表 @handler GetCartsHandler get /api/shopping-cart/get_carts(GetCartsReq) 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 ModifyCartPurchaseQuantityReq { Id int64 `json:"id"` //购物车id PurchaseQuantity int64 `json:"purchase_quantity"` //数量 } //获取购物车列表 type GetCartsReq { CurrentPage int `form:"current_page"` //当前页 } type GetCartsRsp { Meta Meta `json:"meta"` //分页信息 CartList []CartItem `json:"cart_list"` } type CartItem { ProductId int64 `json:"product_id"` //产品id 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信息 StepNum []StepNumItem `json:"step_num"` //阶梯数量 IsInvalid bool `json:"is_invalid"` //是否无效 InvalidDescription string `json:"invalid_description"` //无效原因 } type StepNumItem { PurchaseQuantity int64 `json:"purchase_quantity"` //数量 IsSelected bool `json:"is_selected"` //是否选中 } 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"` }