Files
2026-05-01 12:56:08 +08:00

134 lines
5.5 KiB
Go

package model
import (
"sundynix-micro-go/common/model"
"time"
)
// SundynixClient 客户端表
type SundynixClient struct {
model.BaseModel
ClientID string `gorm:"size:20;column:client_id" json:"clientId"`
Name string `gorm:"size:50;column:name" json:"name"`
GrantType string `gorm:"size:50;column:grant_type" json:"grantType"`
AdditionalInfo string `gorm:"type:text;column:additional_info" json:"additionalInfo"`
ActiveTimeout int64 `gorm:"column:active_timeout" json:"activeTimeout"`
}
func (SundynixClient) TableName() string {
return "sundynix_client"
}
// SundynixRole 角色表
type SundynixRole struct {
model.BaseModel
Name string `gorm:"size:20;column:name" json:"name"`
Code string `gorm:"size:20;column:code" json:"code"`
Sort int `gorm:"column:sort" json:"sort"`
Menus []*SundynixMenu `gorm:"many2many:sundynix_role_menu;joinForeignKey:role_id;joinReferences:menu_id" json:"menus"`
}
func (SundynixRole) TableName() string {
return "sundynix_role"
}
// SundynixMenu 菜单表
type SundynixMenu struct {
model.BaseModel
ParentID string `gorm:"size:100;default:'0';column:parent_id" json:"parentId"`
Category int `gorm:"column:category" json:"category"`
Name string `gorm:"size:20;column:name" json:"name"`
Title string `gorm:"size:20;column:title" json:"title"`
Code string `gorm:"size:50;column:code" json:"code"`
Path string `gorm:"size:100;column:path" json:"path"`
Permission string `gorm:"size:20;column:permission" json:"permission"`
Locale string `gorm:"size:50;column:locale" json:"locale"`
Icon string `gorm:"size:20;column:icon" json:"icon"`
Sort int `gorm:"column:sort" json:"sort"`
Children []*SundynixMenu `gorm:"-" json:"children"`
}
func (SundynixMenu) TableName() string {
return "sundynix_menu"
}
// SundynixRoleMenu 角色菜单关联表
type SundynixRoleMenu struct {
RoleID string `gorm:"size:50;primaryKey;column:role_id" json:"roleId"`
MenuID string `gorm:"size:50;primaryKey;column:menu_id" json:"menuId"`
}
func (SundynixRoleMenu) TableName() string {
return "sundynix_role_menu"
}
// SundynixOperationRecord 操作记录表
type SundynixOperationRecord struct {
model.BaseModel
ClientID string `gorm:"size:50;column:client_id;comment:客户端标识" json:"clientId"`
IP string `gorm:"column:ip;comment:请求ip" json:"ip"`
Method string `gorm:"column:method;comment:请求方法" json:"method"`
Path string `gorm:"column:path;comment:请求路径" json:"path"`
Status int `gorm:"column:status;comment:请求状态" json:"status"`
Latency time.Duration `gorm:"column:latency;comment:耗时(纳秒)" json:"latency"`
Agent string `gorm:"type:text;column:agent;comment:代理" json:"agent"`
ErrorMessage string `gorm:"column:error_message;comment:错误信息" json:"errorMessage"`
Body string `gorm:"type:text;column:body;comment:请求Body" json:"body"`
Resp string `gorm:"type:text;column:resp;comment:响应Body" json:"resp"`
UserID string `gorm:"column:user_id;comment:用户id" json:"userId"`
}
func (SundynixOperationRecord) TableName() string {
return "sundynix_operation_record"
}
// SundynixDict 字典表(新增)
type SundynixDict struct {
model.BaseModel
Type string `gorm:"size:50;column:type;comment:字典类型" json:"type"`
Label string `gorm:"size:100;column:label;comment:字典标签" json:"label"`
Value string `gorm:"size:100;column:value;comment:字典值" json:"value"`
Sort int `gorm:"column:sort;default:0;comment:排序" json:"sort"`
Desc string `gorm:"size:200;column:desc;comment:描述" json:"desc"`
}
func (SundynixDict) TableName() string {
return "sundynix_dict"
}
// SundynixUser 用户基础表
type SundynixUser struct {
model.BaseModel
TenantID string `gorm:"size:20;column:tenant_id" json:"tenantId"`
ClientID string `gorm:"size:20;column:client_id" json:"clientId"`
Name string `gorm:"size:100;column:name" json:"name"`
Account string `gorm:"size:50;column:account" json:"account"`
Password string `gorm:"size:100;column:password" json:"-"`
NickName string `gorm:"size:100;column:nick_name" json:"nickName"`
Phone string `gorm:"size:20;column:phone" json:"phone"`
SessionKey string `gorm:"size:80;column:session_key" json:"-"`
UnionID string `gorm:"size:80;column:union_id" json:"unionId"`
OpenID string `gorm:"size:80;column:open_id;index" json:"openId"`
SaOpenID string `gorm:"size:80;column:sa_open_id" json:"saOpenId"`
AvatarID string `gorm:"size:50;column:avatar_id" json:"avatarId"`
Gender int `gorm:"default:0;column:gender" json:"gender"`
LastLoginIP string `gorm:"size:20;column:last_login_ip" json:"lastLoginIp"`
LastLoginAt *time.Time `gorm:"column:last_login_at" json:"lastLoginAt"`
Roles []*SundynixRole `gorm:"many2many:sundynix_user_role;joinForeignKey:user_id;joinReferences:role_id" json:"roles"`
}
func (SundynixUser) TableName() string {
return "sundynix_user"
}
// SundynixUserRole 用户角色关联表
type SundynixUserRole struct {
UserID string `gorm:"size:50;primaryKey;column:user_id" json:"userId"`
RoleID string `gorm:"size:50;primaryKey;column:role_id" json:"roleId"`
}
func (SundynixUserRole) TableName() string {
return "sundynix_user_role"
}