Modulo nuevo (solo admin) para dar de alta desarrollos sin tocar codigo: - CRUD de la ficha, modelos e inventario (alta manual y generador por rango) - Reglas del cotizador por desarrollo, editables y persistidas en la BD - El cotizador consume las reglas desde /desarrollos/reglas-cotizador y cae a las constantes con aviso cuando un desarrollo aun no tiene reglas guardadas - Micrositio publico en /d/:clave (sin sesion) con ficha, modelos y disponibilidad; jamas expone datos de clientes ni cotizaciones Integracion: - La landing monta el modulo en el grid (clave 'desarrollos', solo admin) y el micrositio fuera del login; el rol manager NO accede (matriz y API con 403) - La tabla de roles de Configuracion ahora lista todos los modulos - Se alinea la FK de ReglaCotizadorDesarrollo con la BD viva (Desarrollo.id) Verificado: 708 pruebas del API, 115 del cotizador y 89 de la landing en verde; 12/12 cotizaciones identicas antes y despues del cambio de reglas; prueba en vivo del API con alta, modelos, inventario, reglas, micrositio y baja (30/30).
15 lines
689 B
TypeScript
15 lines
689 B
TypeScript
import type { Request, Response } from 'express'
|
|
import { getReglasEfectivas } from '../services/reglas-desarrollo.service.js'
|
|
|
|
/**
|
|
* GET /api/desarrollos/reglas-cotizador — reglas comerciales EFECTIVAS por
|
|
* desarrollo (las configuradas por el admin en la BD, con respaldo en las
|
|
* constantes históricas para los desarrollos sin reglas guardadas).
|
|
*
|
|
* Autenticado y disponible para cualquier rol que cotice (el middleware de auth
|
|
* cubre todo /api salvo las rutas públicas). Devuelve el mapa `reglasPorDesarrollo`.
|
|
*/
|
|
export async function reglasCotizadorEndpoint(_req: Request, res: Response): Promise<void> {
|
|
res.json({ reglasPorDesarrollo: await getReglasEfectivas() })
|
|
}
|