解决合并后出现的问题,为swagger提供禁用选项,暂时移除wiki

This commit is contained in:
2025-12-26 01:15:17 +08:00
parent 44f007936e
commit 85a9463913
90 changed files with 602 additions and 20104 deletions

View File

@@ -5,6 +5,7 @@ import (
)
// AuditLog 审计日志模型
// @Description 系统操作审计日志记录
type AuditLog struct {
ID int64 `gorm:"column:id;primaryKey;autoIncrement" json:"id"`
UserID *int64 `gorm:"column:user_id;type:bigint;index:idx_audit_logs_user_created,priority:1" json:"user_id,omitempty"`
@@ -27,6 +28,7 @@ func (AuditLog) TableName() string {
}
// CasbinRule Casbin 权限规则模型
// @Description Casbin权限控制规则数据
type CasbinRule struct {
ID int64 `gorm:"column:id;primaryKey;autoIncrement" json:"id"`
PType string `gorm:"column:ptype;type:varchar(100);not null;index:idx_casbin_ptype;uniqueIndex:uk_casbin_rule,priority:1" json:"ptype"`

View File

@@ -7,6 +7,7 @@ import (
)
// BaseModel 基础模型
// @Description 通用基础模型包含ID和时间戳字段
// 包含 uint 类型的 ID 和标准时间字段,但时间字段不通过 JSON 返回给前端
type BaseModel struct {
// ID 主键
@@ -21,11 +22,3 @@ type BaseModel struct {
// DeletedAt 删除时间 (软删除,不返回给前端)
DeletedAt gorm.DeletedAt `gorm:"index;column:deleted_at" json:"-"`
}

View File

@@ -3,12 +3,13 @@ package model
import "time"
// Client 客户端实体用于管理Token版本
// @Description Yggdrasil客户端Token管理数据
type Client struct {
UUID string `gorm:"column:uuid;type:varchar(36);primaryKey" json:"uuid"` // Client UUID
ClientToken string `gorm:"column:client_token;type:varchar(64);not null;uniqueIndex" json:"client_token"` // 客户端Token
UserID int64 `gorm:"column:user_id;not null;index:idx_clients_user_id" json:"user_id"` // 用户ID
UUID string `gorm:"column:uuid;type:varchar(36);primaryKey" json:"uuid"` // Client UUID
ClientToken string `gorm:"column:client_token;type:varchar(64);not null;uniqueIndex" json:"client_token"` // 客户端Token
UserID int64 `gorm:"column:user_id;not null;index:idx_clients_user_id" json:"user_id"` // 用户ID
ProfileID string `gorm:"column:profile_id;type:varchar(36);index:idx_clients_profile_id" json:"profile_id,omitempty"` // 选中的Profile
Version int `gorm:"column:version;not null;default:0;index:idx_clients_version" json:"version"` // 版本号
Version int `gorm:"column:version;not null;default:0;index:idx_clients_version" json:"version"` // 版本号
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;not null;default:CURRENT_TIMESTAMP" json:"created_at"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;not null;default:CURRENT_TIMESTAMP" json:"updated_at"`
@@ -21,18 +22,3 @@ type Client struct {
func (Client) TableName() string {
return "clients"
}

View File

@@ -5,6 +5,7 @@ import (
)
// Profile Minecraft 档案模型
// @Description Minecraft角色档案数据模型
type Profile struct {
UUID string `gorm:"column:uuid;type:varchar(36);primaryKey" json:"uuid"`
UserID int64 `gorm:"column:user_id;not null;index:idx_profiles_user_created,priority:1" json:"user_id"`
@@ -28,6 +29,7 @@ func (Profile) TableName() string {
}
// ProfileResponse 档案响应(包含完整的皮肤/披风信息)
// @Description Minecraft档案完整响应数据
type ProfileResponse struct {
UUID string `json:"uuid"`
Name string `json:"name"`
@@ -37,22 +39,27 @@ type ProfileResponse struct {
}
// ProfileTexturesData Minecraft 材质数据结构
// @Description Minecraft档案材质数据
type ProfileTexturesData struct {
Skin *ProfileTexture `json:"SKIN,omitempty"`
Cape *ProfileTexture `json:"CAPE,omitempty"`
}
// ProfileTexture 单个材质信息
// @Description 单个材质的详细信息
type ProfileTexture struct {
URL string `json:"url"`
Metadata *ProfileTextureMetadata `json:"metadata,omitempty"`
}
// ProfileTextureMetadata 材质元数据
// @Description 材质的元数据信息
type ProfileTextureMetadata struct {
Model string `json:"model,omitempty"` // "slim" or "classic"
}
// KeyPair RSA密钥对
// @Description 用于Yggdrasil认证的RSA密钥对
type KeyPair struct {
PrivateKey string `json:"private_key" bson:"private_key"`
PublicKey string `json:"public_key" bson:"public_key"`

View File

@@ -3,6 +3,7 @@ package model
import "os"
// Response 通用API响应结构
// @Description 标准API响应格式
type Response struct {
Code int `json:"code"` // 业务状态码
Message string `json:"message"` // 响应消息
@@ -10,6 +11,7 @@ type Response struct {
}
// PaginationResponse 分页响应结构
// @Description 分页数据响应格式
type PaginationResponse struct {
Code int `json:"code"`
Message string `json:"message"`
@@ -20,6 +22,7 @@ type PaginationResponse struct {
}
// ErrorResponse 错误响应
// @Description API错误响应格式
type ErrorResponse struct {
Code int `json:"code"`
Message string `json:"message"`

View File

@@ -5,6 +5,7 @@ import (
)
// TextureType 材质类型
// @Description 材质类型枚举SKIN(皮肤)或CAPE(披风)
type TextureType string
const (
@@ -13,6 +14,7 @@ const (
)
// Texture 材质模型
// @Description Minecraft材质数据模型
type Texture struct {
ID int64 `gorm:"column:id;primaryKey;autoIncrement" json:"id"`
UploaderID int64 `gorm:"column:uploader_id;not null;index:idx_textures_uploader_status,priority:1;index:idx_textures_uploader_created,priority:1" json:"uploader_id"`
@@ -40,6 +42,7 @@ func (Texture) TableName() string {
}
// UserTextureFavorite 用户材质收藏
// @Description 用户收藏材质关联表
type UserTextureFavorite struct {
ID int64 `gorm:"column:id;primaryKey;autoIncrement" json:"id"`
UserID int64 `gorm:"column:user_id;not null;uniqueIndex:uk_user_texture,priority:1;index:idx_favorites_user_created,priority:1" json:"user_id"`
@@ -57,6 +60,7 @@ func (UserTextureFavorite) TableName() string {
}
// TextureDownloadLog 材质下载记录
// @Description 材质下载日志记录
type TextureDownloadLog struct {
ID int64 `gorm:"column:id;primaryKey;autoIncrement" json:"id"`
TextureID int64 `gorm:"column:texture_id;not null;index:idx_download_logs_texture_created,priority:1" json:"texture_id"`

View File

@@ -7,6 +7,7 @@ import (
)
// User 用户模型
// @Description 用户账户数据模型
type User struct {
ID int64 `gorm:"column:id;primaryKey;autoIncrement" json:"id"`
Username string `gorm:"column:username;type:varchar(255);not null;uniqueIndex:idx_user_username_status,priority:1" json:"username"`
@@ -16,7 +17,7 @@ type User struct {
Points int `gorm:"column:points;type:integer;not null;default:0;index:idx_user_points,sort:desc" json:"points"`
Role string `gorm:"column:role;type:varchar(50);not null;default:'user';index:idx_user_role_status,priority:1" json:"role"`
Status int16 `gorm:"column:status;type:smallint;not null;default:1;index:idx_user_username_status,priority:2;index:idx_user_email_status,priority:2;index:idx_user_role_status,priority:2" json:"status"` // 1:正常, 0:禁用, -1:删除
Properties *datatypes.JSON `gorm:"column:properties;type:jsonb" json:"properties,omitempty"` // JSON数据存储为PostgreSQL的JSONB类型
Properties *datatypes.JSON `gorm:"column:properties;type:jsonb" json:"properties,omitempty" swaggertype:"string"` // JSON数据存储为PostgreSQL的JSONB类型
LastLoginAt *time.Time `gorm:"column:last_login_at;type:timestamp;index:idx_user_last_login,sort:desc" json:"last_login_at,omitempty"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;not null;default:CURRENT_TIMESTAMP;index:idx_user_created_at,sort:desc" json:"created_at"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;not null;default:CURRENT_TIMESTAMP" json:"updated_at"`
@@ -28,6 +29,7 @@ func (User) TableName() string {
}
// UserPointLog 用户积分变更记录
// @Description 用户积分变动日志记录
type UserPointLog struct {
ID int64 `gorm:"column:id;primaryKey;autoIncrement" json:"id"`
UserID int64 `gorm:"column:user_id;not null;index:idx_point_logs_user_created,priority:1" json:"user_id"`
@@ -52,6 +54,7 @@ func (UserPointLog) TableName() string {
}
// UserLoginLog 用户登录日志
// @Description 用户登录历史记录
type UserLoginLog struct {
ID int64 `gorm:"column:id;primaryKey;autoIncrement" json:"id"`
UserID int64 `gorm:"column:user_id;not null;index:idx_login_logs_user_created,priority:1" json:"user_id"`

View File

@@ -13,6 +13,7 @@ import (
const passwordChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
// Yggdrasil ygg密码与用户id绑定
// @Description Yggdrasil认证密码数据模型
type Yggdrasil struct {
ID int64 `gorm:"column:id;primaryKey;not null" json:"id"`
Password string `gorm:"column:password;type:varchar(255);not null" json:"-"` // 加密后的密码,不返回给前端