32 lines
1.9 KiB
Go
32 lines
1.9 KiB
Go
package entity
|
||
|
||
import "github.com/gogf/gf/v2/os/gtime"
|
||
|
||
// Notes 笔记主体(含定时提醒与订阅授权计数)。
|
||
//
|
||
// 额度语义(见 PRD-02 §4.1.1):
|
||
// - 免费用户活跃笔记数(DeletedAt IS NULL)上限 50,会员不限量;
|
||
// - 新建计入、编辑不计入、删除(软删除)立即释放额度;
|
||
// - 会员判定走 logic.EffectiveLevelKey,会员过期即回落免费额度。
|
||
//
|
||
// 提醒语义(见 PRD-02 §4.1.2、架构 §4.2):
|
||
// - RemindStatus 取值见 consts(0 未设置 / 1 待提醒 / 2 已提醒 / 3 发送失败 / 4 已过期);
|
||
// - SubscribeCount 记录「已获授权的可发送次数」,前端 requestSubscribeMessage 成功后累加,
|
||
// 发送前条件扣减,不足即降级为站内提醒。
|
||
type Notes struct {
|
||
Id int64 `json:"id"`
|
||
UserId int64 `json:"user_id"` // 归属用户
|
||
Title string `json:"title"` // 标题
|
||
Content string `json:"content"` // 正文(长文本,可为空)
|
||
Tags string `json:"tags"` // 标签,逗号分隔(便于 LIKE/FIND_IN_SET 筛选)
|
||
IsPinned int `json:"is_pinned"` // 置顶:1 是 / 0 否
|
||
RemindAt *gtime.Time `json:"remind_at"` // 提醒时间,NULL=未设置
|
||
RemindStatus int `json:"remind_status"` // 0 未设置 / 1 待提醒 / 2 已提醒 / 3 发送失败 / 4 已过期
|
||
RemindSentAt *gtime.Time `json:"remind_sent_at"` // 实际发送时间
|
||
RemindAttempts int `json:"remind_attempts"` // 发送尝试次数(失败重试上限用)
|
||
SubscribeCount int `json:"subscribe_count"` // 已获授权的可发送次数
|
||
DeletedAt *gtime.Time `json:"deleted_at"` // 软删除时间,NULL=未删除(不占额度)
|
||
CreatedAt *gtime.Time `json:"created_at"`
|
||
UpdatedAt *gtime.Time `json:"updated_at"`
|
||
}
|