71 lines
4.3 KiB
Go
71 lines
4.3 KiB
Go
package models
|
|
|
|
import "time"
|
|
|
|
type TemplateConfig struct {
|
|
ID uint `gorm:"primaryKey;comment:主键ID" json:"id"`
|
|
ConfigData string `gorm:"type:json;column:config_data;not null;default:'{}';comment:请柬配置JSON" json:"config_data"`
|
|
UpdatedAt time.Time `gorm:"column:updated_at;comment:更新时间" json:"updated_at"`
|
|
}
|
|
|
|
func (TemplateConfig) TableName() string { return "template_configs" }
|
|
|
|
type UploadConfig struct {
|
|
ID uint `gorm:"primaryKey;comment:主键ID" json:"id"`
|
|
Provider string `gorm:"column:provider;size:20;not null;default:local;comment:上传方式 local|oss" json:"provider"`
|
|
AccessKeyID string `gorm:"column:access_key_id;size:255;not null;default:'';comment:OSS AccessKeyId" json:"accessKeyId"`
|
|
AccessKeySecret string `gorm:"column:access_key_secret;type:text;comment:OSS AccessKeySecret" json:"-"`
|
|
Bucket string `gorm:"column:bucket;size:255;not null;default:'';comment:OSS Bucket" json:"bucket"`
|
|
Folder string `gorm:"column:folder;size:255;not null;default:'';comment:上传目录前缀" json:"folder"`
|
|
Domain string `gorm:"column:domain;size:255;not null;default:'';comment:访问域名" json:"domain"`
|
|
Region string `gorm:"column:region;size:100;not null;default:'';comment:OSS Region" json:"region"`
|
|
Endpoint string `gorm:"column:endpoint;size:255;not null;default:'';comment:OSS Endpoint" json:"endpoint"`
|
|
UpdatedAt time.Time `gorm:"column:updated_at;comment:更新时间" json:"updated_at"`
|
|
}
|
|
|
|
func (UploadConfig) TableName() string { return "upload_configs" }
|
|
|
|
type Rsvp struct {
|
|
ID uint `gorm:"primaryKey;comment:主键ID" json:"id"`
|
|
Name string `gorm:"column:name;size:50;not null;default:'';comment:宾客姓名" json:"name"`
|
|
GuestCount string `gorm:"column:guest_count;size:20;not null;default:1;comment:出席人数标识" json:"guest_count"`
|
|
Wishes string `gorm:"column:wishes;type:text;comment:祝福语" json:"wishes"`
|
|
CreatedAt time.Time `gorm:"column:created_at;not null;comment:提交时间" json:"created_at"`
|
|
}
|
|
|
|
func (Rsvp) TableName() string { return "rsvps" }
|
|
|
|
type Danmaku struct {
|
|
ID uint `gorm:"primaryKey;comment:主键ID" json:"id"`
|
|
Name string `gorm:"column:name;size:50;not null;default:'';comment:发送者姓名" json:"name"`
|
|
Content string `gorm:"column:content;type:text;not null;comment:祝福内容" json:"content"`
|
|
Color string `gorm:"column:color;size:32;not null;default:champagne;comment:弹幕颜色key" json:"color"`
|
|
Source string `gorm:"column:source;size:20;not null;default:danmaku;comment:来源 danmaku|rsvp" json:"source"`
|
|
RsvpID *uint `gorm:"column:rsvp_id;comment:关联回执ID" json:"rsvp_id"`
|
|
Status string `gorm:"column:status;size:20;not null;default:pending;index;comment:审核状态 pending|approved|rejected" json:"status"`
|
|
CreatedAt time.Time `gorm:"column:created_at;not null;comment:创建时间" json:"created_at"`
|
|
}
|
|
|
|
func (Danmaku) TableName() string { return "danmakus" }
|
|
|
|
type SiteLike struct {
|
|
ID uint `gorm:"primaryKey;comment:主键ID" json:"id"`
|
|
ClientID string `gorm:"column:client_id;size:64;not null;default:'';index;comment:客户端标识" json:"client_id"`
|
|
CreatedAt time.Time `gorm:"column:created_at;not null;comment:点赞时间" json:"created_at"`
|
|
}
|
|
|
|
func (SiteLike) TableName() string { return "site_likes" }
|
|
|
|
// AiModerationCache 缓存 AI 审核通过/失败结果
|
|
type AiModerationCache struct {
|
|
ID uint `gorm:"primaryKey;comment:主键ID" json:"id"`
|
|
Content string `gorm:"column:content;type:text;not null;comment:姓名+祝福原文" json:"content"`
|
|
ContentHash string `gorm:"column:content_hash;size:64;not null;index:idx_ai_mod_type_hash,priority:2;comment:content的SHA256" json:"content_hash"`
|
|
Type string `gorm:"column:type;size:20;not null;index:idx_ai_mod_type_hash,priority:1;comment:类型 danmaku|rsvp" json:"type"`
|
|
Status string `gorm:"column:status;size:20;not null;default:rejected;comment:审核状态 approved|rejected" json:"status"`
|
|
Reason string `gorm:"column:reason;size:255;not null;default:'';comment:拒绝原因" json:"reason"`
|
|
CreatedAt time.Time `gorm:"column:created_at;not null;comment:创建时间" json:"created_at"`
|
|
}
|
|
|
|
func (AiModerationCache) TableName() string { return "ai_moderation_caches" }
|