package main

import (
	"context"
	"encoding/json"
	"fmt"
	"time"

	"github.com/aws/aws-sdk-go-v2/service/sqs/types"
	"github.com/google/uuid"
)

// HandleDummy is blissfully unaware of SQS, and could therefore be used as a handler for another message queue.
func HandleDummy(_ context.Context, enc *json.Encoder,
	msgID uuid.UUID, sentTime time.Time, msg []byte, meta map[string]types.MessageAttributeValue) error {
	type EventBody struct {
		EventID   uuid.UUID      `json:"event_id"`
		EventTime time.Time      `json:"event_time"`
		Data      map[string]int `json:"data,omitempty"`
		Meta      map[string]types.MessageAttributeValue
	}
	evt := EventBody{
		EventID:   msgID,
		EventTime: sentTime,
		Meta:      meta,
	}
	if err := json.Unmarshal(msg, &evt.Data); err != nil {
		return fmt.Errorf("error parsing body as JSON: %w", err)
	}

	enc.Encode(evt)
	return nil
}