package store import "context" // TicketStore manages short-lived, single-use WebSocket auth tickets. // v0.32.0: replaces in-memory sync.Map for cross-pod ticket validation. type TicketStore interface { // Issue creates a single-use ticket for the given user. // Returns the opaque ticket ID (128-bit hex). Issue(ctx context.Context, userID string) (string, error) // Validate atomically consumes a ticket and returns the user ID. // Returns ("", false) if the ticket is invalid, expired, or already consumed. Validate(ctx context.Context, ticketID string) (string, bool) // Reap removes expired tickets. Returns the count deleted. Reap(ctx context.Context) (int, error) }