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"` MasterID uint `gorm:"index" json:"master_id"` 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 }