diff --git a/server.js b/server.js index b90dcab..04cfa9b 100644 --- a/server.js +++ b/server.js @@ -1038,8 +1038,32 @@ app.post("/config/company", authMiddleware, async (req, res) => { const client = // ========================================== app.get("/guilds", authMiddleware, async (req, res) => { try { - // AHORA DEVOLVEMOS TAMBIƉN LAS PALABRAS CLAVE - const q = await pool.query("SELECT id, name, ia_keywords FROM guilds WHERE owner_id=$1 ORDER BY name ASC", [req.user.accountId]); + let q = await pool.query("SELECT id, name, ia_keywords FROM guilds WHERE owner_id=$1 ORDER BY name ASC", [req.user.accountId]); + + // šŸš€ MAGIA SAAS: Si el usuario es nuevo y no tiene gremios, le inyectamos los predeterminados con la IA ya entrenada + if (q.rowCount === 0) { + const defaults = [ + { n: "ELECTRICISTA", kw: '["electric", "cortocircuito", "cuadro electrico", "salto de plomos", "apagon", "diferencial", "icp", "magnetotermico", "chispazo", "sin luz", "cableado", "derivacion", "no hay luz", "salta el termico"]' }, + { n: "FONTANERIA", kw: '["fontaner", "fuga de agua", "tuberia", "atasco", "desatasco", "bote sifonico", "llave de paso", "calentador", "termo", "radiador", "caldera", "gotera", "inundacion", "filtracion", "bajante", "humedad"]' }, + { n: "CRISTALERIA", kw: '["cristal", "vidrio", "ventana rota", "escaparate", "luna", "espejo", "climalit", "doble acristalamiento", "velux", "rotura"]' }, + { n: "PERSIANAS", kw: '["motor persiana", "eje persiana", "persianista", "persiana atascada", "rotura de persiana", "domotica persiana"]' }, + { n: "CARPINTERIA", kw: '["carpinter", "puerta de madera", "bisagra", "marco", "rodapie", "tarima", "armario", "cepillar puerta", "cajon", "encimera", "madera hinchada"]' }, + { n: "ALBAƑILERIA", kw: '["albaƱil", "cemento", "yeso", "ladrillo", "azulejo", "desconchado", "grieta", "muro", "alicatado"]' }, + { n: "MANITAS ELECTRICISTA", kw: '["manitas electric", "cambiar bombilla", "colgar lampara", "instalar foco", "fluorescente", "casquillo", "lampara del dormitorio", "cambiar enchufe", "embellecedor"]' }, + { n: "MANITAS FONTANERIA", kw: '["manitas fontaner", "cambiar grifo", "sellar baƱera", "silicona", "latiguillo", "alcachofa", "tapon", "cambiar cisterna", "descargador"]' }, + { n: "MANITAS PERSIANAS", kw: '["manitas persian", "cambiar cinta", "cuerda persiana", "recogedor", "atasco persiana", "lamas rotas", "persiana descolgada"]' }, + { n: "MANITAS GENERAL", kw: '["bombin", "colgar cuadro", "soporte tv", "estanteria", "montar mueble", "ikea", "cortina", "riel", "estor", "agujero", "taladro", "picaporte", "colgar espejo"]' } + ]; + + // Insertamos la copia personal para este cliente + for (const g of defaults) { + await pool.query("INSERT INTO guilds (owner_id, name, ia_keywords) VALUES ($1, $2, $3::jsonb)", [req.user.accountId, g.n, g.kw]); + } + + // Volvemos a consultar ahora que ya los tiene + q = await pool.query("SELECT id, name, ia_keywords FROM guilds WHERE owner_id=$1 ORDER BY name ASC", [req.user.accountId]); + } + res.json({ ok: true, guilds: q.rows }); } catch (e) { res.status(500).json({ ok: false });