功能更新
This commit is contained in:
50
internal/model/admin.go
Normal file
50
internal/model/admin.go
Normal file
@@ -0,0 +1,50 @@
|
||||
package model
|
||||
|
||||
// UserDailyActive 对应 user_daily_active。
|
||||
type UserDailyActive struct {
|
||||
UserID int64 `gorm:"primaryKey" json:"userId"`
|
||||
ActiveDate string `gorm:"primaryKey;size:10" json:"activeDate"`
|
||||
LastIP string `gorm:"column:last_ip;size:64;not null;default:''" json:"lastIp"`
|
||||
LastSeenAt string `gorm:"column:last_seen_at;size:32;not null;default:''" json:"lastSeenAt"`
|
||||
}
|
||||
|
||||
func (UserDailyActive) TableName() string { return "user_daily_active" }
|
||||
|
||||
// AIUsageDaily 对应 ai_usage_daily。
|
||||
type AIUsageDaily struct {
|
||||
UserID int64 `gorm:"primaryKey" json:"userId"`
|
||||
TeamID int64 `gorm:"primaryKey;default:0" json:"teamId"`
|
||||
UsageDate string `gorm:"primaryKey;size:10" json:"usageDate"`
|
||||
Provider string `gorm:"primaryKey;size:32;not null;default:''" json:"provider"`
|
||||
PromptTokens int64 `gorm:"not null;default:0" json:"promptTokens"`
|
||||
CompletionTokens int64 `gorm:"not null;default:0" json:"completionTokens"`
|
||||
Calls int `gorm:"not null;default:0" json:"calls"`
|
||||
Estimated int `gorm:"not null;default:0" json:"estimated"`
|
||||
}
|
||||
|
||||
func (AIUsageDaily) TableName() string { return "ai_usage_daily" }
|
||||
|
||||
// AppRelease 对应 app_releases。
|
||||
type AppRelease struct {
|
||||
ID int64 `gorm:"primaryKey" json:"id"`
|
||||
Version string `gorm:"size:32;not null" json:"version"`
|
||||
Channel string `gorm:"size:16;not null;default:stable" json:"channel"`
|
||||
Filename string `gorm:"size:255;not null" json:"filename"`
|
||||
SHA256 string `gorm:"column:sha256;size:64;not null;default:''" json:"sha256"`
|
||||
SizeBytes int64 `gorm:"column:size_bytes;not null;default:0" json:"sizeBytes"`
|
||||
Changelog string `gorm:"type:mediumtext;not null" json:"changelog"`
|
||||
CreatedAt string `gorm:"size:32;not null" json:"createdAt"`
|
||||
IsLatest int `gorm:"column:is_latest;not null;default:0" json:"isLatest"`
|
||||
}
|
||||
|
||||
func (AppRelease) TableName() string { return "app_releases" }
|
||||
|
||||
// AdminStepup 对应 admin_stepup。
|
||||
type AdminStepup struct {
|
||||
UserID int64 `gorm:"primaryKey" json:"userId"`
|
||||
TokenHash string `gorm:"column:token_hash;size:64;not null" json:"-"`
|
||||
ClientIP string `gorm:"column:client_ip;size:64;not null;default:''" json:"clientIp"`
|
||||
ExpiresAt string `gorm:"column:expires_at;size:32;not null" json:"expiresAt"`
|
||||
}
|
||||
|
||||
func (AdminStepup) TableName() string { return "admin_stepup" }
|
||||
12
internal/model/avatar_history.go
Normal file
12
internal/model/avatar_history.go
Normal file
@@ -0,0 +1,12 @@
|
||||
package model
|
||||
|
||||
// UserAvatarHistory 用户头像历史,对应 user_avatar_history。
|
||||
type UserAvatarHistory struct {
|
||||
ID int64 `gorm:"primaryKey;autoIncrement" json:"id"`
|
||||
UserID int64 `gorm:"not null;index:idx_uah_user_id" json:"userId"`
|
||||
Mode string `gorm:"size:16;not null;default:url" json:"mode"` // url | base64
|
||||
Value string `gorm:"type:mediumtext;not null" json:"value"`
|
||||
CreatedAt string `gorm:"size:32;not null" json:"createdAt"`
|
||||
}
|
||||
|
||||
func (UserAvatarHistory) TableName() string { return "user_avatar_history" }
|
||||
15
internal/model/profile.go
Normal file
15
internal/model/profile.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package model
|
||||
|
||||
// UserProfile 对应 user_profiles。
|
||||
type UserProfile struct {
|
||||
UserID int64 `gorm:"primaryKey" json:"userId"`
|
||||
Nickname string `gorm:"size:64;not null;default:''" json:"nickname"`
|
||||
Title string `gorm:"size:64;not null;default:''" json:"title"`
|
||||
Email string `gorm:"size:128;not null;default:''" json:"email"`
|
||||
Bio string `gorm:"size:500;not null;default:''" json:"bio"`
|
||||
TechTags string `gorm:"size:1000;not null;default:'[]'" json:"techTags"`
|
||||
AvatarThumb string `gorm:"type:mediumtext;not null" json:"avatarThumb"`
|
||||
UpdatedAt string `gorm:"size:32;not null" json:"updatedAt"`
|
||||
}
|
||||
|
||||
func (UserProfile) TableName() string { return "user_profiles" }
|
||||
62
internal/model/sync.go
Normal file
62
internal/model/sync.go
Normal file
@@ -0,0 +1,62 @@
|
||||
package model
|
||||
|
||||
// SyncTodo 对应 sync_todos。
|
||||
type SyncTodo struct {
|
||||
UserID int64 `gorm:"primaryKey" json:"userId"`
|
||||
UUID string `gorm:"primaryKey;size:36" json:"uuid"`
|
||||
Title string `gorm:"type:text;not null" json:"title"`
|
||||
Content string `gorm:"type:mediumtext;not null" json:"content"`
|
||||
ProjectName string `gorm:"size:255;not null;default:''" json:"projectName"`
|
||||
DueAt string `gorm:"size:32;not null;default:''" json:"dueAt"`
|
||||
Priority string `gorm:"size:16;not null;default:medium" json:"priority"`
|
||||
Status string `gorm:"size:16;not null;default:open" json:"status"`
|
||||
History string `gorm:"type:mediumtext;not null" json:"history"`
|
||||
TeamID int64 `gorm:"not null;default:0;index" json:"teamId"`
|
||||
CreatedAt string `gorm:"size:32;not null;default:''" json:"createdAt"`
|
||||
UpdatedAt string `gorm:"size:32;not null" json:"updatedAt"`
|
||||
Deleted int `gorm:"not null;default:0" json:"deleted"`
|
||||
}
|
||||
|
||||
func (SyncTodo) TableName() string { return "sync_todos" }
|
||||
|
||||
// SyncTicket 对应 sync_tickets。
|
||||
type SyncTicket struct {
|
||||
UserID int64 `gorm:"primaryKey" json:"userId"`
|
||||
UUID string `gorm:"primaryKey;size:36" json:"uuid"`
|
||||
Title string `gorm:"type:text;not null" json:"title"`
|
||||
Description string `gorm:"type:mediumtext;not null" json:"description"`
|
||||
Type string `gorm:"size:16;not null;default:task" json:"type"`
|
||||
ProjectName string `gorm:"size:255;not null;default:''" json:"projectName"`
|
||||
StartAt string `gorm:"size:32;not null;default:''" json:"startAt"`
|
||||
DueAt string `gorm:"size:32;not null;default:''" json:"dueAt"`
|
||||
Status string `gorm:"size:16;not null;default:open" json:"status"`
|
||||
Priority string `gorm:"size:16;not null;default:medium" json:"priority"`
|
||||
History string `gorm:"type:mediumtext;not null" json:"history"`
|
||||
TeamID int64 `gorm:"not null;default:0;index" json:"teamId"`
|
||||
CreatedAt string `gorm:"size:32;not null;default:''" json:"createdAt"`
|
||||
UpdatedAt string `gorm:"size:32;not null" json:"updatedAt"`
|
||||
Deleted int `gorm:"not null;default:0" json:"deleted"`
|
||||
}
|
||||
|
||||
func (SyncTicket) TableName() string { return "sync_tickets" }
|
||||
|
||||
// SyncNote 对应 sync_notes。
|
||||
type SyncNote struct {
|
||||
UserID int64 `gorm:"primaryKey" json:"userId"`
|
||||
UUID string `gorm:"primaryKey;size:36" json:"uuid"`
|
||||
Content string `gorm:"type:mediumtext;not null" json:"content"`
|
||||
UpdatedAt string `gorm:"size:32;not null" json:"updatedAt"`
|
||||
Deleted int `gorm:"not null;default:0" json:"deleted"`
|
||||
}
|
||||
|
||||
func (SyncNote) TableName() string { return "sync_notes" }
|
||||
|
||||
// SyncSetting 对应 sync_settings。
|
||||
type SyncSetting struct {
|
||||
UserID int64 `gorm:"primaryKey" json:"userId"`
|
||||
Name string `gorm:"primaryKey;size:64" json:"name"`
|
||||
Value string `gorm:"type:mediumtext;not null" json:"value"`
|
||||
UpdatedAt string `gorm:"size:32;not null" json:"updatedAt"`
|
||||
}
|
||||
|
||||
func (SyncSetting) TableName() string { return "sync_settings" }
|
||||
80
internal/model/team.go
Normal file
80
internal/model/team.go
Normal file
@@ -0,0 +1,80 @@
|
||||
package model
|
||||
|
||||
// Team 对应 teams。
|
||||
type Team struct {
|
||||
ID int64 `gorm:"primaryKey" json:"id"`
|
||||
Name string `gorm:"size:64;not null" json:"name"`
|
||||
OwnerID int64 `gorm:"not null" json:"ownerId"`
|
||||
DigestTime string `gorm:"size:8;not null;default:21:00" json:"digestTime"`
|
||||
AIBanned int `gorm:"column:ai_banned;not null;default:0" json:"aiBanned"`
|
||||
CreatedAt string `gorm:"size:32;not null" json:"createdAt"`
|
||||
}
|
||||
|
||||
func (Team) TableName() string { return "teams" }
|
||||
|
||||
// TeamMember 对应 team_members。
|
||||
type TeamMember struct {
|
||||
TeamID int64 `gorm:"primaryKey" json:"teamId"`
|
||||
UserID int64 `gorm:"primaryKey" json:"userId"`
|
||||
Role string `gorm:"size:16;not null;default:member" json:"role"`
|
||||
JoinedAt string `gorm:"size:32;not null" json:"joinedAt"`
|
||||
}
|
||||
|
||||
func (TeamMember) TableName() string { return "team_members" }
|
||||
|
||||
// TeamTask 对应 team_tasks。
|
||||
type TeamTask struct {
|
||||
ID int64 `gorm:"primaryKey" json:"id"`
|
||||
TeamID int64 `gorm:"not null;index" json:"teamId"`
|
||||
Kind string `gorm:"size:16;not null;default:todo" json:"kind"`
|
||||
Title string `gorm:"type:text;not null" json:"title"`
|
||||
Description string `gorm:"type:mediumtext;not null" json:"description"`
|
||||
Priority string `gorm:"size:16;not null;default:medium" json:"priority"`
|
||||
Status string `gorm:"size:16;not null;default:open" json:"status"`
|
||||
CreatorID int64 `gorm:"not null" json:"creatorId"`
|
||||
AssigneeID int64 `gorm:"not null;default:0;index" json:"assigneeId"`
|
||||
StartAt string `gorm:"size:32;not null;default:''" json:"startAt"`
|
||||
DueAt string `gorm:"size:32;not null;default:''" json:"dueAt"`
|
||||
UrgedAt string `gorm:"size:32;not null;default:''" json:"urgedAt"`
|
||||
History string `gorm:"type:mediumtext;not null" json:"history"`
|
||||
UpdatedAt string `gorm:"size:32;not null" json:"updatedAt"`
|
||||
Deleted int `gorm:"not null;default:0" json:"deleted"`
|
||||
}
|
||||
|
||||
func (TeamTask) TableName() string { return "team_tasks" }
|
||||
|
||||
// TeamReport 对应 team_reports。
|
||||
type TeamReport struct {
|
||||
TeamID int64 `gorm:"primaryKey" json:"teamId"`
|
||||
UserID int64 `gorm:"primaryKey" json:"userId"`
|
||||
Date string `gorm:"primaryKey;size:10" json:"date"`
|
||||
Content string `gorm:"type:mediumtext;not null" json:"content"`
|
||||
SubmittedAt string `gorm:"size:32;not null" json:"submittedAt"`
|
||||
}
|
||||
|
||||
func (TeamReport) TableName() string { return "team_reports" }
|
||||
|
||||
// TeamDigest 对应 team_digests。
|
||||
type TeamDigest struct {
|
||||
TeamID int64 `gorm:"primaryKey" json:"teamId"`
|
||||
Date string `gorm:"primaryKey;size:10" json:"date"`
|
||||
Content string `gorm:"type:mediumtext;not null" json:"content"`
|
||||
Provider string `gorm:"size:32;not null;default:''" json:"provider"`
|
||||
GeneratedAt string `gorm:"size:32;not null" json:"generatedAt"`
|
||||
}
|
||||
|
||||
func (TeamDigest) TableName() string { return "team_digests" }
|
||||
|
||||
// TeamNotice 对应 team_notices。
|
||||
type TeamNotice struct {
|
||||
ID int64 `gorm:"primaryKey" json:"id"`
|
||||
TeamID int64 `gorm:"not null" json:"teamId"`
|
||||
ToUser int64 `gorm:"not null;index" json:"toUser"`
|
||||
FromUser int64 `gorm:"not null" json:"fromUser"`
|
||||
Kind string `gorm:"size:16;not null" json:"kind"`
|
||||
RefID string `gorm:"size:64;not null;default:''" json:"refId"`
|
||||
Content string `gorm:"type:text;not null" json:"content"`
|
||||
CreatedAt string `gorm:"size:32;not null" json:"createdAt"`
|
||||
}
|
||||
|
||||
func (TeamNotice) TableName() string { return "team_notices" }
|
||||
17
internal/model/user.go
Normal file
17
internal/model/user.go
Normal file
@@ -0,0 +1,17 @@
|
||||
package model
|
||||
|
||||
// User 对应 users 表。
|
||||
type User struct {
|
||||
ID int64 `gorm:"primaryKey" json:"id"`
|
||||
Username string `gorm:"size:64;uniqueIndex;not null" json:"username"`
|
||||
PasswordHash string `gorm:"size:100;not null" json:"-"`
|
||||
TOTPSecret string `gorm:"column:totp_secret;size:64;not null;default:''" json:"-"`
|
||||
TOTPEnabled int `gorm:"column:totp_enabled;not null;default:0" json:"totpEnabled"`
|
||||
LastLoginIP string `gorm:"column:last_login_ip;size:64;not null;default:''" json:"lastLoginIp"`
|
||||
LastSeenAt string `gorm:"column:last_seen_at;size:32;not null;default:''" json:"lastSeenAt"`
|
||||
AIBanned int `gorm:"column:ai_banned;not null;default:0" json:"aiBanned"`
|
||||
Disabled int `gorm:"not null;default:0" json:"disabled"`
|
||||
CreatedAt string `gorm:"size:32;not null" json:"createdAt"`
|
||||
}
|
||||
|
||||
func (User) TableName() string { return "users" }
|
||||
Reference in New Issue
Block a user