feat():learning后台管理项目初始化
This commit is contained in:
78
internal/models/message_push.go
Normal file
78
internal/models/message_push.go
Normal file
@@ -0,0 +1,78 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"time"
|
||||
)
|
||||
|
||||
// MessagePushLog 消息推送记录模型
|
||||
type MessagePushLog struct {
|
||||
ID int64 `gorm:"primaryKey;autoIncrement" json:"id"`
|
||||
Title string `gorm:"type:varchar(255);not null;default:'';comment:消息标题" json:"title"`
|
||||
Content string `gorm:"type:text;not null;comment:消息内容" json:"content"`
|
||||
TargetUsers string `gorm:"type:json;not null;comment:目标用户ID列表" json:"target_users"` // 存储JSON字符串
|
||||
SenderID int `gorm:"not null;comment:发送人ID" json:"sender_id"`
|
||||
SenderName string `gorm:"type:varchar(100);not null;comment:发送人姓名" json:"sender_name"`
|
||||
Status int `gorm:"type:tinyint;default:0;comment:发送状态 0=待发送 1=发送中 2=发送成功 3=发送失败" json:"status"`
|
||||
SuccessCount int `gorm:"default:0;comment:成功数量" json:"success_count"`
|
||||
FailCount int `gorm:"default:0;comment:失败数量" json:"fail_count"`
|
||||
ErrorMessage string `gorm:"type:text;comment:错误信息" json:"error_message"`
|
||||
SentAt *time.Time `gorm:"comment:发送时间" json:"sent_at"`
|
||||
CreatedAt time.Time `gorm:"autoCreateTime" json:"created_at"`
|
||||
UpdatedAt time.Time `gorm:"autoUpdateTime" json:"updated_at"`
|
||||
}
|
||||
|
||||
// TableName 指定数据库表名
|
||||
func (MessagePushLog) TableName() string {
|
||||
return "admin_message_push_logs"
|
||||
}
|
||||
|
||||
// MessagePushRequest 消息推送请求
|
||||
type MessagePushRequest struct {
|
||||
Title string `json:"title" validate:"required,min=1,max=100"`
|
||||
Content string `json:"content" validate:"required,min=1,max=2000"`
|
||||
UserIDs []int `json:"user_ids" validate:"required,min=1"`
|
||||
}
|
||||
|
||||
// MessagePushResponse 消息推送响应
|
||||
type MessagePushResponse struct {
|
||||
LogID int64 `json:"log_id"`
|
||||
SuccessCount int `json:"success_count"`
|
||||
FailCount int `json:"fail_count"`
|
||||
}
|
||||
|
||||
// MessagePushListRequest 推送记录列表请求
|
||||
type MessagePushListRequest struct {
|
||||
Page int `form:"page,default=1"`
|
||||
PageSize int `form:"page_size,default=10"`
|
||||
Status *int `form:"status"` // 0=待发送, 1=发送中, 2=发送成功, 3=发送失败
|
||||
SenderID *int `form:"sender_id"`
|
||||
StartTime string `form:"start_time"`
|
||||
EndTime string `form:"end_time"`
|
||||
}
|
||||
|
||||
// MessagePushListResponse 推送记录列表响应
|
||||
type MessagePushListResponse struct {
|
||||
List []MessagePushLog `json:"list"`
|
||||
Total int64 `json:"total"`
|
||||
Page int `json:"page"`
|
||||
PageSize int `json:"page_size"`
|
||||
}
|
||||
|
||||
// UserSearchRequest 用户搜索请求
|
||||
type UserSearchRequest struct {
|
||||
Keyword string `form:"keyword" validate:"required,min=1"`
|
||||
Limit int `form:"limit,default=20"`
|
||||
}
|
||||
|
||||
// UserSearchResponse 用户搜索响应
|
||||
type UserSearchResponse struct {
|
||||
Users []UserSearchItem `json:"users"`
|
||||
Total int `json:"total"`
|
||||
}
|
||||
|
||||
// UserSearchItem 用户搜索项
|
||||
type UserSearchItem struct {
|
||||
ID int `json:"id"`
|
||||
Username string `json:"username"`
|
||||
Email string `json:"email"`
|
||||
}
|
||||
Reference in New Issue
Block a user