package model import ( "time" ) // LogDataSource 日志数据源连接配置(Loki / Elasticsearch) // 平台不存储海量日志,仅存连接信息与告警策略 // Logan.Li type LogDataSource struct { ID uint `gorm:"primaryKey;autoIncrement;comment:主键ID" json:"id"` Name string `gorm:"type:varchar(128);not null;uniqueIndex;comment:数据源名称" json:"name"` Type string `gorm:"type:varchar(32);not null;index;comment:类型 loki/elasticsearch" json:"type"` URL string `gorm:"type:varchar(512);not null;comment:服务地址" json:"url"` BasicAuth bool `gorm:"default:false;comment:基础认证" json:"basic_auth"` BasicAuthUser string `gorm:"type:varchar(128);comment:认证用户名" json:"basic_auth_user,omitempty"` BasicAuthPass string `gorm:"type:varchar(256);comment:认证密码" json:"basic_auth_pass,omitempty"` SkipTLSVerify bool `gorm:"default:false;comment:跳过TLS验证" json:"skip_tls_verify"` DefaultIndex string `gorm:"type:varchar(128);comment:ES默认索引" json:"default_index,omitempty"` IsDefault bool `gorm:"default:false;index;comment:是否默认" json:"is_default"` Status int `gorm:"default:1;comment:状态 1启用 0禁用" json:"status"` CreatedAt time.Time `gorm:"not null;comment:创建时间" json:"created_at"` UpdatedAt time.Time `gorm:"not null;comment:更新时间" json:"updated_at"` DeletedAt *time.Time `gorm:"index;comment:删除时间" json:"deleted_at,omitempty"` } func (LogDataSource) TableName() string { return "monitor_log_datasources" } // CreateLogDSReq 创建日志数据源 // Logan.Li type CreateLogDSReq struct { Name string `json:"name" binding:"required"` Type string `json:"type" binding:"required"` URL string `json:"url" binding:"required"` BasicAuth bool `json:"basic_auth"` BasicAuthUser string `json:"basic_auth_user"` BasicAuthPass string `json:"basic_auth_pass"` SkipTLSVerify bool `json:"skip_tls_verify"` DefaultIndex string `json:"default_index"` IsDefault bool `json:"is_default"` } // UpdateLogDSReq 更新日志数据源 // Logan.Li type UpdateLogDSReq struct { Name *string `json:"name"` Type *string `json:"type"` URL *string `json:"url"` BasicAuth *bool `json:"basic_auth"` BasicAuthUser *string `json:"basic_auth_user"` BasicAuthPass *string `json:"basic_auth_pass"` SkipTLSVerify *bool `json:"skip_tls_verify"` DefaultIndex *string `json:"default_index"` IsDefault *bool `json:"is_default"` Status *int `json:"status"` } // TestLogDSReq 测试连接 // Logan.Li type TestLogDSReq struct { Type string `json:"type" binding:"required"` URL string `json:"url" binding:"required"` BasicAuth bool `json:"basic_auth"` BasicAuthUser string `json:"basic_auth_user"` BasicAuthPass string `json:"basic_auth_pass"` SkipTLSVerify bool `json:"skip_tls_verify"` }