package domain import ( "time" ) type AuditLog struct { ID int `json:"id"` UserID *int `json:"userId,omitempty"` // nil для неаутентифицированных действий Action string `json:"action"` // "login", "password_change", "recovery_initiated" EntityType string `json:"entityType"` // "user", "device", "session" EntityID *int `json:"entityId,omitempty"` IPAddress string `json:"ipAddress"` UserAgent string `json:"userAgent"` Metadata string `json:"metadata"` // JSON с дополнительными данными Status string `json:"status"` // "success", "failed" CreatedAt time.Time `json:"createdAt"` } type AuditFilter struct { UserID *int Action string EntityType string DateFrom time.Time DateTo time.Time Limit int Offset int }