Files
ez-api/internal/model/log.go
2025-12-19 21:50:28 +08:00

26 lines
961 B
Go

package model
import "gorm.io/gorm"
// LogRecord stores lightweight metadata for auditing. Avoids full payload unless audit is triggered.
type LogRecord struct {
gorm.Model
Group string `json:"group"`
KeyID uint `json:"key_id"`
ModelName string `json:"model"`
ProviderID uint `json:"provider_id"`
ProviderType string `json:"provider_type"`
ProviderName string `json:"provider_name"`
StatusCode int `json:"status_code"`
LatencyMs int64 `json:"latency_ms"`
TokensIn int64 `json:"tokens_in"`
TokensOut int64 `json:"tokens_out"`
ErrorMessage string `json:"error_message"`
ClientIP string `json:"client_ip"`
RequestSize int64 `json:"request_size"`
ResponseSize int64 `json:"response_size"`
AuditReason string `json:"audit_reason"`
RequestBody string `json:"request_body"` // optional, only when audit triggered
ResponseBody string `json:"response_body"` // optional, only when audit triggered
}