Files
hfb_jysh/backend/internal/modules/csmanualentry/dto.go
T

97 lines
2.6 KiB
Go

package csmanualentry
import "time"
// 录单选项类型。
const (
OptionTypePlatform = "platform" // 平台
OptionTypeOperator = "operator" // 操作人
)
// CreateRequest 客服手动录单请求。
type CreateRequest struct {
EntryNo string `json:"entry_no" binding:"required"`
Platform string `json:"platform"`
Operator string `json:"operator"`
Remark string `json:"remark"`
}
// UpdateRequest 管理员修正录单请求。
type UpdateRequest struct {
EntryNo string `json:"entry_no" binding:"required"`
Platform string `json:"platform"`
Operator string `json:"operator"`
Remark string `json:"remark"`
}
// EntryDTO 录单记录。
type EntryDTO struct {
ID uint64 `json:"id"`
EntryNo string `json:"entry_no"`
Platform string `json:"platform"`
Operator string `json:"operator"`
AdminID uint64 `json:"admin_id"`
AdminName string `json:"admin_name"`
AdminUsername string `json:"admin_username"`
Remark string `json:"remark"`
CreatedAt time.Time `json:"created_at"`
}
// ListQuery 录单查询条件。
type ListQuery struct {
EntryNo string
Keyword string
AdminID uint64
StartDate string // YYYY-MM-DD(北京时间,闭区间)
EndDate string // YYYY-MM-DD(北京时间,闭区间)
Page int
PageSize int
}
// PaginatedResult 分页结果。
type PaginatedResult struct {
Items []EntryDTO `json:"items"`
Total int64 `json:"total"`
Page int `json:"page"`
PageSize int `json:"page_size"`
}
// AgentDayStatsDTO 某客服某日录单统计。
type AgentDayStatsDTO struct {
Date string `json:"date"` // YYYY-MM-DD(北京时间)
AdminID uint64 `json:"admin_id"`
AdminName string `json:"admin_name"`
Count int64 `json:"count"`
}
// CreateResult 录单结果。
type CreateResult struct {
Entry EntryDTO `json:"entry"`
}
// OptionDTO 录单可选项(平台 / 操作人)。
type OptionDTO struct {
ID uint64 `json:"id"`
Type string `json:"type"`
Name string `json:"name"`
SortOrder int `json:"sort_order"`
CreatedAt time.Time `json:"created_at"`
}
// OptionListDTO 平台与操作人选项集合,供录单表单下拉直接使用。
type OptionListDTO struct {
Platforms []OptionDTO `json:"platforms"`
Operators []OptionDTO `json:"operators"`
}
// CreateOptionRequest 新增平台 / 操作人选项。
type CreateOptionRequest struct {
Type string `json:"type" binding:"required"`
Name string `json:"name" binding:"required"`
}
// UpdateOptionRequest 重命名平台 / 操作人选项。
type UpdateOptionRequest struct {
Name string `json:"name" binding:"required"`
}