package audit import ( "context" "encoding/json" "github.com/jackc/pgx/v5/pgtype" "github.com/lab/security-governance-core/internal/db" ) type Logger struct { queries *db.Queries } func NewLogger(queries *db.Queries) *Logger { return &Logger{queries: queries} } func (l *Logger) Log(ctx context.Context, actorID, action, resourceType, resourceID string, details interface{}) error { detailsJSON, err := json.Marshal(details) if err != nil { return err } _, err = l.queries.CreateAuditLog(ctx, db.CreateAuditLogParams{ ActorID: actorID, Action: action, ResourceType: pgtype.Text{String: resourceType, Valid: resourceType != ""}, ResourceID: pgtype.Text{String: resourceID, Valid: resourceID != ""}, Details: detailsJSON, }) return err }