package routes

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

func PortalRoutes(app fiber.Router) {
	// ─── Rutas públicas ────────────────────────────────────────────────────────
	app.Get("/portal/login", controllers.PortalLoginPage)
	app.Post("/portal/login", controllers.PortalLoginPost)
	app.Get("/portal/logout", controllers.PortalLogout)

	// ─── Rutas protegidas ──────────────────────────────────────────────────────
	portal := app.Group("/portal").Use(middlewares.PortalAuth())

	portal.Get("/dashboard", controllers.PortalDashboard)
	portal.Get("/proyecto/:slug", controllers.PortalProyecto)

	// API JSON para Alpine.js
	portal.Get("/api/proyectos", controllers.PortalGetProyectos)
	portal.Get("/api/proyecto/:slug", controllers.PortalGetProyectoData)

	// Tickets
	portal.Post("/tickets", controllers.PortalCrearTicket)
	portal.Post("/tickets/:id/mensaje", controllers.PortalResponderTicket)

	// Descargas
	portal.Get("/entregables/:id/download", controllers.PortalDownloadEntregable)
	portal.Get("/facturas/:id/download", controllers.PortalDownloadFactura)
}
