package events

import (
	"context"
)

type EventState struct {
	Ctx   context.Context
	Done  chan struct{} `json:"-"`
	Error error
}

func NewEventState(ctx context.Context) *EventState {
	return &EventState{
		Ctx:  ctx,
		Done: make(chan struct{}),
	}
}

func (s *EventState) Close() {
	s.Error = s.Ctx.Err()
	close(s.Done)
}

type NewOrder struct {
	ID int
}

type CreateOrderEvent struct {
	NewOrder   *NewOrder
	ProductIDs []int
	State      *EventState
}
