package events

// v0.32.0: TicketValidatorAdapter bridges the context-aware store.TicketStore
// to the middleware.TicketValidator interface (which has no context parameter).
// Replaces the in-memory TicketStore that lived in this file previously.

import (
	"context"
	"time"

	"switchboard-core/store"
)

// TicketValidatorAdapter satisfies middleware.TicketValidator using a
// store.TicketStore backend (PG or SQLite).
type TicketValidatorAdapter struct {
	Store store.TicketStore
}

// Validate atomically consumes a ticket. Satisfies middleware.TicketValidator.
func (a *TicketValidatorAdapter) Validate(ticketID string) (string, bool) {
	ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
	defer cancel()
	return a.Store.Validate(ctx, ticketID)
}
