From f762db1bd0b69ac2e5c8e94c84d25d10b9b46248 Mon Sep 17 00:00:00 2001 From: marsalva Date: Sun, 8 Feb 2026 12:33:06 +0000 Subject: [PATCH] Actualizar servicios.html --- servicios.html | 845 ++++++++++++++++++++++++++++--------------------- 1 file changed, 485 insertions(+), 360 deletions(-) diff --git a/servicios.html b/servicios.html index 0b4f9bb..55e4872 100644 --- a/servicios.html +++ b/servicios.html @@ -1,387 +1,512 @@ -import express from "express"; -import cors from "cors"; -import bcrypt from "bcryptjs"; -import jwt from "jsonwebtoken"; -import pg from "pg"; + + + + + + Servicios - IntegraRepara + + + + -const { Pool } = pg; -const app = express(); + + + -app.use(cors()); -app.use(express.json()); +
+ +
+
+ +
+ +
+
+
+

+ Servicios Activos +

+

Gestiona las reparaciones y sus estados.

+
+ +
-const { - DATABASE_URL, - JWT_SECRET, - EVOLUTION_BASE_URL, - EVOLUTION_API_KEY, - EVOLUTION_INSTANCE, -} = process.env; +
+ + + + + + + + + + + + + +
FechaCliente / DirecciónDetalleEstado
Cargando servicios...
+
+
-if (!DATABASE_URL || !JWT_SECRET) { - console.error("❌ ERROR FATAL: Faltan variables de entorno"); - process.exit(1); -} + - // 3. TABLA SERVICIOS (Con FK a status) - await client.query(` - CREATE TABLE IF NOT EXISTS services ( - id SERIAL PRIMARY KEY, - owner_id INT REFERENCES users(id) ON DELETE CASCADE, - client_id INT REFERENCES clients(id) ON DELETE SET NULL, - status_id INT REFERENCES service_statuses(id) ON DELETE SET NULL, -- NUEVO: ID del estado - title TEXT, - description TEXT, - contact_phone TEXT NOT NULL, - contact_name TEXT NOT NULL, - address TEXT NOT NULL, - email TEXT, - scheduled_date DATE DEFAULT CURRENT_DATE, - scheduled_time TIME DEFAULT CURRENT_TIME, - duration_minutes INT DEFAULT 30, - is_urgent BOOLEAN DEFAULT FALSE, - is_company BOOLEAN DEFAULT FALSE, - company_id INT REFERENCES companies(id) ON DELETE SET NULL, - company_ref TEXT, - internal_notes TEXT, - client_notes TEXT, - closed_at TIMESTAMP, - created_at TIMESTAMP DEFAULT NOW() - ); - `); + - // 4. NUEVO: TABLA LOGS DE ESTADOS (TRAZABILIDAD) - await client.query(` - CREATE TABLE IF NOT EXISTS service_logs ( - id SERIAL PRIMARY KEY, - service_id INT REFERENCES services(id) ON DELETE CASCADE, - user_id INT REFERENCES users(id) ON DELETE SET NULL, -- Quién hizo el cambio - old_status_id INT REFERENCES service_statuses(id), - new_status_id INT REFERENCES service_statuses(id), - comment TEXT, -- Comentario del cambio (ej: "Cliente no estaba") - created_at TIMESTAMP DEFAULT NOW() - ); - `); +
+
+
- // 5. PARCHES Y DATOS POR DEFECTO - try { await client.query(`ALTER TABLE users DROP CONSTRAINT IF EXISTS users_phone_key`); } catch (e) {} - try { await client.query(`ALTER TABLE users DROP CONSTRAINT IF EXISTS users_email_key`); } catch (e) {} +
Msg
- await client.query(` - DO $$ BEGIN - IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name='services' AND column_name='status_id') THEN - ALTER TABLE services ADD COLUMN status_id INT REFERENCES service_statuses(id) ON DELETE SET NULL; - END IF; - END $$; - `); + + + + \ No newline at end of file