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
}
