Smail/backend/dto/response/email.go
smail 6baaad08b6
Some checks are pending
Security Checks / security (push) Waiting to run
修复邮件详情序列化遗漏黑名单及已读标记
2026-09-25 02:26:58 +08:00

47 lines
1.1 KiB
Go

package response
import (
"encoding/json"
"git.pcux.cn/xuans/Smail/models"
)
type EmailResponseData struct {
models.Email `xorm:"extends"`
IsRead int8 `json:"is_read"`
IsDeleted int8 `json:"-"`
UserStatus int8 `xorm:"user_status" json:"-"`
SerialNumber int `json:"serial_number"`
UeId int `json:"ue_id"`
IsBlacklisted bool `xorm:"-" json:"is_blacklisted"`
}
func (d *EmailResponseData) MarshalJSON() ([]byte, error) {
data, err := d.Email.MarshalJSON()
if err != nil {
return nil, err
}
var fields map[string]json.RawMessage
if err := json.Unmarshal(data, &fields); err != nil {
return nil, err
}
for name, value := range map[string]any{
"is_read": d.IsRead,
"serial_number": d.SerialNumber,
"ue_id": d.UeId,
"is_blacklisted": d.IsBlacklisted,
} {
encoded, err := json.Marshal(value)
if err != nil {
return nil, err
}
fields[name] = encoded
}
return json.Marshal(fields)
}
type UserEmailUIDData struct {
models.UserEmail `xorm:"extends"`
SerialNumber int `json:"serial_number"`
}