// Package snakegame handles snake game routes, SSE event streaming, and chat. package snakegame import ( "github.com/alexedwards/scs/v2" "github.com/go-chi/chi/v5" "github.com/nats-io/nats.go" "github.com/ryanhamamura/c4/snake" ) func SetupRoutes(router chi.Router, snakeStore *snake.SnakeStore, nc *nats.Conn, sessions *scs.SessionManager) error { router.Get("/snake/{game_id}", HandleSnakePage(snakeStore, sessions)) router.Get("/snake/{game_id}/events", HandleSnakeEvents(snakeStore, nc, sessions)) router.Route("/api/snake/{game_id}", func(r chi.Router) { r.Post("/dir", HandleSetDirection(snakeStore, sessions)) r.Post("/chat", HandleSendChat(snakeStore, nc, sessions)) r.Post("/join", HandleSetNickname(snakeStore, sessions)) r.Post("/rematch", HandleRematch(snakeStore, sessions)) }) return nil }