package model import "time" // RDPSession RDP 图形会话记录,独立于 SSH 终端审计表便于后续录屏扩展 // Logan.Li type RDPSession 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"` Width int `gorm:"default:1280" json:"width"` Height int `gorm:"default:800" json:"height"` Status string `gorm:"size:32" json:"status"` // active, closed, failed // Logan.Li Duration int `json:"duration"` Error string `gorm:"size:500" json:"error,omitempty"` RecordData string `gorm:"type:mediumtext" json:"-"` // 图形帧录制 JSON,回放接口单独返回 // Logan.Li RecordSize int `json:"record_size"` // 录制字节数 // Logan.Li StartTime time.Time `json:"start_time"` EndTime *time.Time `json:"end_time"` CreatedAt time.Time `json:"created_at"` } func (RDPSession) TableName() string { return "sys_rdp_sessions" } // RDPSessionQuery Windows RDP 图形会话查询 // Logan.Li type RDPSessionQuery struct { ServerID uint `form:"server_id"` Username string `form:"username"` Status string `form:"status"` Keyword string `form:"keyword"` StartDate string `form:"start_date"` EndDate string `form:"end_date"` HasRecord string `form:"has_record"` Page int `form:"page,default=1"` PageSize int `form:"page_size,default=20"` }