-
+app.use(cors());
+app.use(express.json());
-
-
+const { Pool } = pg;
+const app = express();
-
-
-
- - Servicios Activos -
-Gestiona las reparaciones y sus estados.
-
-
-
-
-
- | Fecha | -Cliente / Dirección | -Detalle | -Estado | -- |
|---|---|---|---|---|
| Cargando servicios... | ||||
-
+const {
+ DATABASE_URL,
+ JWT_SECRET,
+ EVOLUTION_BASE_URL,
+ EVOLUTION_API_KEY,
+ EVOLUTION_INSTANCE,
+} = process.env;
-
+ console.log("✅ DB Lista.");
+ } catch (e) { console.error("❌ Error DB:", e); } finally { client.release(); }
+}
-
+// ESTADOS, CLIENTES, COMPAÑIAS
+app.get("/statuses", authMiddleware, async (req, res) => {
+ try {
+ let q = await pool.query("SELECT * FROM service_statuses WHERE owner_id=$1 ORDER BY id ASC", [req.user.accountId]);
+ if (q.rowCount === 0) {
+ const defaults = [{name:'Pendiente',c:'gray',d:true,f:false},{name:'En Proceso',c:'blue',d:false,f:false},{name:'Terminado',c:'green',d:false,f:true},{name:'Cancelado',c:'red',d:false,f:true}];
+ for (const s of defaults) await pool.query("INSERT INTO service_statuses (owner_id,name,color,is_default,is_final) VALUES ($1,$2,$3,$4,$5)", [req.user.accountId,s.name,s.c,s.d,s.f]);
+ q = await pool.query("SELECT * FROM service_statuses WHERE owner_id=$1 ORDER BY id ASC", [req.user.accountId]);
+ }
+ res.json({ ok: true, statuses: q.rows });
+ } catch (e) { res.status(500).json({ ok: false }); }
+});
+app.get("/clients/search", authMiddleware, async (req, res) => {
+ try { const { phone } = req.query; const p = normalizePhone(phone); if(!p) return res.json({ok:true,client:null}); const q = await pool.query("SELECT * FROM clients WHERE phone=$1 AND owner_id=$2 LIMIT 1", [p, req.user.accountId]); res.json({ ok: true, client: q.rows[0] || null }); } catch (e) { res.status(500).json({ ok: false }); }
+});
+app.get("/companies", authMiddleware, async (req, res) => { try { const q = await pool.query("SELECT * FROM companies WHERE owner_id=$1 ORDER BY name ASC", [req.user.accountId]); res.json({ ok: true, companies: q.rows }); } catch (e) { res.status(500).json({ ok: false }); } });
+app.post("/companies", authMiddleware, async (req, res) => { try { const { name } = req.body; await pool.query("INSERT INTO companies (name, owner_id) VALUES ($1, $2)", [name, req.user.accountId]); res.json({ ok: true }); } catch (e) { res.status(500).json({ ok: false }); } });
-