package models import "time" // TerminalSession SSH终端会话记录(JumpServer 式终端审计) // Logan.Li type TerminalSession struct { ID uint `gorm:"primarykey" json:"id"` UserID *uint `json:"user_id"` Username string `gorm:"size:64" json:"username"` ServerID uint `json:"server_id"` ServerName string `gorm:"size:128" json:"server_name"` ServerIP string `gorm:"size:64" json:"server_ip"` ServerPort int `json:"server_port"` ClientIP string `gorm:"size:64" json:"client_ip"` Status string `gorm:"size:32" json:"status"` // active, closed, failed Duration int `json:"duration"` // seconds RecordData string `gorm:"type:text" json:"-"` // 终端录制原始输出(不直接返回 JSON) RecordSize int `json:"record_size"` // 录制字节数 StartTime time.Time `json:"start_time"` EndTime *time.Time `json:"end_time"` CreatedAt time.Time `json:"created_at"` } // TableName 表名 func (TerminalSession) TableName() string { return "terminal_sessions" } // TerminalSessionQuery 终端会话查询 type TerminalSessionQuery struct { ServerID uint `form:"server_id"` Username string `form:"username"` Status string `form:"status"` Page int `form:"page,default=1"` PageSize int `form:"page_size,default=20"` }