Files
hfb_sys/backend/internal/modules/mohong/dto.go
T
yml2213 e07532a188 移除摸大红支付后建群逻辑,仅保留扫码与复制
支付成功只固化客服二维码与订单文案;同步清理迁移、配置与前后端相关字段。
2026-07-16 19:52:40 +08:00

165 lines
5.5 KiB
Go

package mohong
import "time"
type CategoryDTO struct {
ID uint64 `json:"id"`
Name string `json:"name"`
Code string `json:"code"`
SortOrder int `json:"sort_order"`
Status string `json:"status"`
ProductCount int64 `json:"product_count"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
type CreateCategoryRequest struct {
Name string `json:"name" binding:"required,max=64"`
Code string `json:"code"`
SortOrder int `json:"sort_order"`
Status string `json:"status"`
}
type UpdateCategoryRequest struct {
Name *string `json:"name"`
Code *string `json:"code"`
SortOrder *int `json:"sort_order"`
Status *string `json:"status"`
}
type ProductDTO struct {
ID uint64 `json:"id"`
CategoryID *uint64 `json:"category_id"`
CategoryName string `json:"category_name,omitempty"`
Title string `json:"title"`
CoverURL string `json:"cover_url"`
ImageURLs []string `json:"image_urls"`
Description string `json:"description"`
PriceCent int64 `json:"price_cent"`
Price string `json:"price"`
OriginalPriceCent int64 `json:"original_price_cent"`
OriginalPrice string `json:"original_price,omitempty"`
Unit string `json:"unit"`
Stock int `json:"stock"`
SortOrder int `json:"sort_order"`
Status string `json:"status"`
QrcodeImageURL string `json:"qrcode_image_url,omitempty"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
type ProductListQuery struct {
Keyword string
Status string
CategoryID uint64
Page int
PageSize int
}
type CreateProductRequest struct {
CategoryID *uint64 `json:"category_id"`
Title string `json:"title" binding:"required,max=128"`
CoverURL string `json:"cover_url"`
ImageURLs []string `json:"image_urls"`
Description string `json:"description"`
PriceCent int64 `json:"price_cent" binding:"required,min=1"`
OriginalPriceCent int64 `json:"original_price_cent"`
Unit string `json:"unit"`
Stock *int `json:"stock"`
SortOrder int `json:"sort_order"`
Status string `json:"status"`
QrcodeImageURL string `json:"qrcode_image_url"`
}
type UpdateProductRequest struct {
CategoryID *uint64 `json:"category_id"`
ClearCategory bool `json:"clear_category"`
Title *string `json:"title"`
CoverURL *string `json:"cover_url"`
ImageURLs []string `json:"image_urls"`
Description *string `json:"description"`
PriceCent *int64 `json:"price_cent"`
OriginalPriceCent *int64 `json:"original_price_cent"`
Unit *string `json:"unit"`
Stock *int `json:"stock"`
SortOrder *int `json:"sort_order"`
Status *string `json:"status"`
QrcodeImageURL *string `json:"qrcode_image_url"`
}
type CreateOrderRequest struct {
ProductID uint64 `json:"product_id" binding:"required"`
Quantity int `json:"quantity" binding:"required,min=1,max=99"`
}
type OrderDTO struct {
ID uint64 `json:"id"`
OrderNo string `json:"order_no"`
UserID uint64 `json:"user_id"`
ProductID uint64 `json:"product_id"`
Quantity int `json:"quantity"`
UnitPriceCent int64 `json:"unit_price_cent"`
UnitPrice string `json:"unit_price"`
AmountCent int64 `json:"amount_cent"`
Amount string `json:"amount"`
Status string `json:"status"`
ProductTitle string `json:"product_title"`
ProductCoverURL string `json:"product_cover_url"`
ProductUnit string `json:"product_unit"`
QrcodeURLSnapshot string `json:"qrcode_url_snapshot"`
CopyText string `json:"copy_text"`
BuyerNickname string `json:"buyer_nickname,omitempty"`
BuyerPhone string `json:"buyer_phone,omitempty"`
AdminRemark string `json:"admin_remark,omitempty"`
CancelReason string `json:"cancel_reason,omitempty"`
PaidAt *time.Time `json:"paid_at"`
CompletedAt *time.Time `json:"completed_at"`
CancelledAt *time.Time `json:"cancelled_at"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
type OrderListQuery struct {
UserID uint64
Status string
Keyword string
Page int
PageSize int
}
type AdminCompleteOrderRequest struct {
Remark string `json:"remark"`
}
type AdminCancelOrderRequest struct {
Reason string `json:"reason"`
}
type ConfigDTO struct {
DefaultQrcodeURL string `json:"default_qrcode_url"`
OrderCopyTemplate string `json:"order_copy_template"`
}
type UpdateConfigRequest struct {
DefaultQrcodeURL *string `json:"default_qrcode_url"`
OrderCopyTemplate *string `json:"order_copy_template"`
}
type PaginatedResult struct {
Items any `json:"items"`
Total int64 `json:"total"`
Page int `json:"page"`
PageSize int `json:"page_size"`
}
type productSnapshot struct {
ID uint64 `json:"id"`
Title string `json:"title"`
CoverURL string `json:"cover_url"`
ImageURLs []string `json:"image_urls"`
Description string `json:"description"`
PriceCent int64 `json:"price_cent"`
Unit string `json:"unit"`
QrcodeImageURL string `json:"qrcode_image_url"`
}