新增客户-产品多对多关联,列表可按产品筛选并复制邮箱;发证/下单自动回填历史关联。 Co-authored-by: Cursor <cursoragent@cursor.com>
87 lines
3.0 KiB
Go
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"`
|
|
}
|