package routes

import (
	"github.com/gofiber/fiber/v2"
	"github.com/sujit-baniya/fiber-boilerplate/rest/controllers"
	apiControllers "github.com/sujit-baniya/fiber-boilerplate/rest/controllers/api"
	"github.com/sujit-baniya/fiber-boilerplate/rest/middlewares"
)

func RutasPublicas(web fiber.Router) {
	web.Get("/", controllers.Landing)
	web.Get("/index", controllers.Index)
	//web.Get("/login", controllers.Login)
	web.Get("/ping", Pong)
	web.Get("/all-routes", AllRoutes)
	web.Get("/do/verify-email", middlewares.ValidateConfirmToken, controllers.VerifyRegisteredEmail)

	// ─── Webhooks públicos (sin autenticación) ────────────────────────────
	// Bold requiere respuesta HTTP 200 rápida, sin middleware de sesión.
	web.Post("/webhooks/bold", apiControllers.BoldWebhook)
	// dLocal requiere respuesta HTTP 200 inmediata.
	web.Post("/webhooks/dlocal", apiControllers.DlocalWebhook)

	// ─── Página de confirmación de pago ───────────────────────────────────
	web.Get("/pago-exitoso", apiControllers.PagoExitosoPage)
	// Ruta fuera del prefijo /api para evitar que AuthApi() la intercepte
	web.Get("/pago/estado", apiControllers.PagoEstadoAPI)
	// ─── Documentación pública ────────────────────────────────────────────────
	web.Get("/docs/:saas", controllers.DocsPublicoIndex)
	web.Get("/docs/:saas/:slug", controllers.DocsPublicaPagina)

	// ─── Página de estado del sistema (Atlassian Statuspage) ────────────────
	web.Get("/status", controllers.StatusPage)
}

