Files
opsx-licence/backend/internal/dto/product.go
T
Logan.LiandCursor 4c46088f4f feat: 客户关联产品并支持按产品圈选通知群体
新增客户-产品多对多关联,列表可按产品筛选并复制邮箱;发证/下单自动回填历史关联。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 21:58:35 +08:00

87 lines
3.0 KiB
Go

package dto
// ProductCreate 创建产品请求 // Logan.Li
type ProductCreate struct {
Name string `json:"name" binding:"required"`
Code string `json:"code" binding:"required"`
Version string `json:"version"`
Description string `json:"description"`
Features []string `json:"features"`
Price float64 `json:"price"`
PriceModel string `json:"price_model"`
Status *int `json:"status"`
}
// ProductUpdate 更新产品请求 // Logan.Li
type ProductUpdate struct {
Name string `json:"name"`
Version string `json:"version"`
Description string `json:"description"`
Features []string `json:"features"`
Price *float64 `json:"price"`
PriceModel string `json:"price_model"`
Status *int `json:"status"`
}
// ProductResponse 产品响应 // Logan.Li
type ProductResponse struct {
ID uint `json:"id"`
Name string `json:"name"`
Code string `json:"code"`
Version string `json:"version"`
Description string `json:"description"`
Features []string `json:"features"`
Price float64 `json:"price"`
PriceModel string `json:"price_model"`
Status int `json:"status"`
CreatedAt string `json:"created_at"`
UpdatedAt string `json:"updated_at"`
}
// CustomerCreate 创建客户请求 // Logan.Li
type CustomerCreate struct {
Name string `json:"name" binding:"required"`
Company string `json:"company"`
Email string `json:"email" binding:"omitempty,email"`
Phone string `json:"phone"`
Address string `json:"address"`
Notes string `json:"notes"`
Status *int `json:"status"`
ProductIDs []uint `json:"product_ids"` // 关联产品,便于按产品圈选通知 // Logan.Li
}
// CustomerUpdate 更新客户请求(ProductIDs 用指针区分未传与清空) // Logan.Li
type CustomerUpdate struct {
Name string `json:"name"`
Company string `json:"company"`
Email string `json:"email" binding:"omitempty,email"`
Phone string `json:"phone"`
Address string `json:"address"`
Notes string `json:"notes"`
Status *int `json:"status"`
ProductIDs *[]uint `json:"product_ids"`
}
// CustomerProductBrief 客户关联产品简要信息 // Logan.Li
type CustomerProductBrief struct {
ID uint `json:"id"`
Name string `json:"name"`
Code string `json:"code"`
}
// CustomerResponse 客户响应 // Logan.Li
type CustomerResponse struct {
ID uint `json:"id"`
Name string `json:"name"`
Company string `json:"company"`
Email string `json:"email"`
Phone string `json:"phone"`
Address string `json:"address"`
Notes string `json:"notes"`
Status int `json:"status"`
ProductIDs []uint `json:"product_ids"`
Products []CustomerProductBrief `json:"products"`
CreatedAt string `json:"created_at"`
UpdatedAt string `json:"updated_at"`
}