-- CREACIÓN DE TABLAS
CREATE TABLE Clientes (
id_cliente SERIAL PRIMARY KEY,
nombre_completo VARCHAR(100),
telefono VARCHAR(20),
correo_electronico VARCHAR(100),
direccion_entrega TEXT
);
CREATE TABLE Productos (
id_producto SERIAL PRIMARY KEY,
nombre_producto VARCHAR(100),
descripcion TEXT,
precio NUMERIC(10, 2)
);
CREATE TABLE Inventario (
id_inventario SERIAL PRIMARY KEY,
id_producto INT REFERENCES Productos(id_producto),
cantidad_stock INT,
ultima_actualizacion TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE Pedidos (
id_pedido SERIAL PRIMARY KEY,
id_cliente INT REFERENCES Clientes(id_cliente),
fecha_pedido DATE DEFAULT CURRENT_DATE,
estado_pedido VARCHAR(50), -- Pendiente, En preparación, En camino, Entregado
total NUMERIC(10, 2)
);
CREATE TABLE Detalle_Pedido (
id_detalle SERIAL PRIMARY KEY,
id_pedido INT REFERENCES Pedidos(id_pedido),
id_producto INT REFERENCES Productos(id_producto),
cantidad INT
);
CREATE TABLE Repartidores (
id_repartidor SERIAL PRIMARY KEY,
nombre_completo VARCHAR(100),
telefono VARCHAR(20),
vehiculo_asignado VARCHAR(50)
);
CREATE TABLE Seguimiento_Entregas (
id_seguimiento SERIAL PRIMARY KEY,
id_pedido INT UNIQUE REFERENCES Pedidos(id_pedido),
id_repartidor INT REFERENCES Repartidores(id_repartidor),
ubicacion_actual TEXT,
fecha_hora_actualizacion TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
estado_entrega VARCHAR(50) -- En ruta, Entregado, Problema en la entrega
);
-- INSERCIÓN DE DATOS DE PRUEBA
-- Clientes
INSERT INTO Clientes (nombre_completo, telefono, correo_electronico, direccion_entrega) VALUES
('SofÃa MartÃnez', '3111234567', 'sofia@example.com', 'Calle 10 #23-45'),
('Camilo Pérez', '3127654321', 'camilo@example.com', 'Carrera 7 #12-34'),
('Andrés Torres', '3109876543', 'andres@example.com', 'Av. Principal #45-67'),
('Andrea Muñoz', '3131122334', 'andrea@example.com', 'Calle 3 #22-11'),
('Lilian Castro', '3145566778', 'lilian@example.com', 'Calle 50 #10-01');
-- Productos
INSERT INTO Productos (nombre_producto, descripcion, precio) VALUES
('Desayuno sorpresa clásico', 'Incluye jugo, sándwich, fruta y tarjeta personalizada', 45.000),
('Caja de rosas', '12 rosas con decoración especial', 60.000),
('Arreglo frutal', 'Frutas variadas decoradas', 55.000),
('Peluches personalizados', 'Peluches con mensaje bordado', 35.000),
('Chocolates gourmet', 'Caja con 20 bombones artesanales', 50.000);
-- Inventario
INSERT INTO Inventario (id_producto, cantidad_stock) VALUES
(1, 10),
(2, 15),
(3, 8),
(4, 20),
(5, 12);
-- Repartidores
INSERT INTO Repartidores (nombre_completo, telefono, vehiculo_asignado) VALUES
('Nicolás RamÃrez', '3213344556', 'Moto YZF-125'),
('Esteban López', '3201122334', 'Carro Kia Picanto');
-- Pedidos
INSERT INTO Pedidos (id_cliente, estado_pedido, total) VALUES
(1, 'Pendiente', 95.000),
(2, 'En camino', 60.000),
(3, 'Entregado', 85.000);
-- Detalle_Pedido
INSERT INTO Detalle_Pedido (id_pedido, id_producto, cantidad) VALUES
(1, 1, 1),
(1, 2, 1),
(2, 2, 1),
(3, 3, 1),
(3, 4, 1);
-- Seguimiento de Entregas
INSERT INTO Seguimiento_Entregas (id_pedido, id_repartidor, ubicacion_actual, estado_entrega) VALUES
(1, 1, 'Cra 15 con Calle 20', 'En ruta'),
(2, 2, 'Av Panamericana', 'En ruta'),
(3, 1, 'Entregado a las 10:30am', 'Entregado');