feat: 添加核心金融模型、通知模型以及路由和通知仓库的基础结构
This commit is contained in:
@@ -835,35 +835,6 @@ func (AllocationRecordDetail) TableName() string {
|
||||
return "allocation_record_details"
|
||||
}
|
||||
|
||||
// NotificationType represents the type of notification
|
||||
type NotificationType string
|
||||
|
||||
const (
|
||||
NotificationTypeBudgetAlert NotificationType = "budget_alert" // 预算超支提醒
|
||||
NotificationTypeRecurring NotificationType = "recurring" // 周期交易提醒
|
||||
NotificationTypeSystem NotificationType = "system" // 系统公告
|
||||
NotificationTypePaymentReminder NotificationType = "payment_reminder" // 还款提醒
|
||||
NotificationTypeSavingsGoal NotificationType = "savings_goal" // 储蓄目标提醒
|
||||
)
|
||||
|
||||
// Notification represents a user notification
|
||||
// Feature: notification-center
|
||||
type Notification struct {
|
||||
ID uint `gorm:"primarykey" json:"id"`
|
||||
UserID uint `gorm:"not null;index" json:"user_id"`
|
||||
Type NotificationType `gorm:"size:30;not null;index" json:"type"`
|
||||
Title string `gorm:"size:200;not null" json:"title"`
|
||||
Content string `gorm:"size:1000;not null" json:"content"`
|
||||
IsRead bool `gorm:"default:false;index" json:"is_read"`
|
||||
RelatedID *uint `gorm:"index" json:"related_id,omitempty"` // 关联实体 ID (如预算、周期交易等)
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
}
|
||||
|
||||
// TableName specifies the table name for Notification
|
||||
func (Notification) TableName() string {
|
||||
return "notifications"
|
||||
}
|
||||
|
||||
// AllModels returns all models for database migration
|
||||
func AllModels() []interface{} {
|
||||
return []interface{}{
|
||||
|
||||
@@ -8,21 +8,26 @@ import (
|
||||
type NotificationType string
|
||||
|
||||
const (
|
||||
NotificationTypeSystem NotificationType = "system"
|
||||
NotificationTypeAlert NotificationType = "alert"
|
||||
NotificationTypeInfo NotificationType = "info"
|
||||
NotificationTypeSystem NotificationType = "system"
|
||||
NotificationTypeAlert NotificationType = "alert"
|
||||
NotificationTypeInfo NotificationType = "info"
|
||||
NotificationTypeBudgetAlert NotificationType = "budget_alert" // 预算超支提醒
|
||||
NotificationTypeRecurring NotificationType = "recurring" // 周期交易提醒
|
||||
NotificationTypePaymentReminder NotificationType = "payment_reminder" // 还款提醒
|
||||
NotificationTypeSavingsGoal NotificationType = "savings_goal" // 储蓄目标提醒
|
||||
)
|
||||
|
||||
// Notification represents a system notification for a user
|
||||
type Notification struct {
|
||||
BaseModel
|
||||
UserID uint `gorm:"not null;index" json:"user_id"`
|
||||
Title string `gorm:"size:200;not null" json:"title"`
|
||||
Content string `gorm:"type:text;not null" json:"content"`
|
||||
Type NotificationType `gorm:"size:20;not null;default:'system'" json:"type"`
|
||||
IsRead bool `gorm:"default:false" json:"is_read"`
|
||||
Link string `gorm:"size:255" json:"link,omitempty"` // Optional link to redirect
|
||||
ReadAt *time.Time `json:"read_at,omitempty"`
|
||||
UserID uint `gorm:"not null;index" json:"user_id"`
|
||||
Title string `gorm:"size:200;not null" json:"title"`
|
||||
Content string `gorm:"type:text;not null" json:"content"`
|
||||
Type NotificationType `gorm:"size:30;not null;default:'system';index" json:"type"`
|
||||
IsRead bool `gorm:"default:false;index" json:"is_read"`
|
||||
Link string `gorm:"size:255" json:"link,omitempty"` // Optional link to redirect
|
||||
ReadAt *time.Time `json:"read_at,omitempty"`
|
||||
RelatedID *uint `gorm:"index" json:"related_id,omitempty"` // 关联实体 ID (如预算、周期交易等)
|
||||
|
||||
// Relationships
|
||||
User User `gorm:"foreignKey:UserID" json:"-"`
|
||||
|
||||
Reference in New Issue
Block a user