-- Script de Actualización de Inventario
-- Ejecutar en la pestaña SQL de phpMyAdmin

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";

-- --------------------------------------------------------
-- 1. Tabla de Categorías
-- --------------------------------------------------------
CREATE TABLE IF NOT EXISTS `inv_categorias` (
  `idcategoria` int(11) NOT NULL AUTO_INCREMENT,
  `nombre` varchar(100) NOT NULL,
  `descripcion` text DEFAULT NULL,
  `tipo` varchar(50) DEFAULT 'MEDICAMENTO' COMMENT 'MEDICAMENTO, INSUMO, EQUIPO',
  `estado` tinyint(1) DEFAULT 1,
  PRIMARY KEY (`idcategoria`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------
-- 2. Tabla de Proveedores
-- --------------------------------------------------------
CREATE TABLE IF NOT EXISTS `inv_proveedores` (
  `idproveedor` int(11) NOT NULL AUTO_INCREMENT,
  `razon_social` varchar(150) NOT NULL,
  `ruc` varchar(20) DEFAULT NULL,
  `contacto` varchar(100) DEFAULT NULL,
  `telefono` varchar(20) DEFAULT NULL,
  `email` varchar(100) DEFAULT NULL,
  `direccion` text DEFAULT NULL,
  `ciudad` varchar(100) DEFAULT NULL,
  `observaciones` text DEFAULT NULL,
  `estado` tinyint(1) DEFAULT 1,
  PRIMARY KEY (`idproveedor`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------
-- 3. Tabla de Productos (Con campos críticos para alertas)
-- --------------------------------------------------------
CREATE TABLE IF NOT EXISTS `inv_productos` (
  `idproducto` int(11) NOT NULL AUTO_INCREMENT,
  `codigo` varchar(50) NOT NULL,
  `nombre` varchar(150) NOT NULL,
  `descripcion` text DEFAULT NULL,
  `idcategoria` int(11) DEFAULT NULL,
  `tipo_producto` varchar(50) DEFAULT 'MEDICAMENTO',
  `principio_activo` varchar(150) DEFAULT NULL,
  `concentracion` varchar(100) DEFAULT NULL,
  `presentacion` varchar(100) DEFAULT NULL,
  `registro_sanitario` varchar(100) DEFAULT NULL,
  `requiere_receta` tinyint(1) DEFAULT 0,
  
  -- Campos de Inventario
  `stock_actual` decimal(10,2) DEFAULT 0.00,
  `stock_minimo` decimal(10,2) DEFAULT 5.00,
  `stock_maximo` decimal(10,2) DEFAULT 100.00,
  `unidad_medida` varchar(50) DEFAULT 'UNIDAD',
  
  -- Campos de Precio
  `precio_compra` decimal(10,2) DEFAULT 0.00,
  `precio_venta` decimal(10,2) DEFAULT 0.00,
  `precio_venta_publico` decimal(10,2) DEFAULT 0.00,
  
  -- Ubicación y Trazabilidad (ALERTAS)
  `ubicacion` varchar(100) DEFAULT NULL,
  `lote` varchar(50) DEFAULT NULL,
  `fecha_vencimiento` date DEFAULT NULL,
  `idproveedor` int(11) DEFAULT NULL,
  
  `observaciones` text DEFAULT NULL,
  `fecha_registro` datetime DEFAULT current_timestamp(),
  `estado` tinyint(1) DEFAULT 1,
  PRIMARY KEY (`idproducto`),
  UNIQUE KEY `codigo` (`codigo`),
  KEY `idcategoria` (`idcategoria`),
  KEY `idproveedor` (`idproveedor`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------
-- 4. Tabla de Movimientos (Kardex)
-- --------------------------------------------------------
CREATE TABLE IF NOT EXISTS `inv_movimientos` (
  `idmovimiento` int(11) NOT NULL AUTO_INCREMENT,
  `tipo_movimiento` enum('ENTRADA','SALIDA','AJUSTE') NOT NULL,
  `numero_documento` varchar(50) DEFAULT NULL,
  `fecha_movimiento` datetime DEFAULT current_timestamp(),
  `idusuario` int(11) NOT NULL,
  `idproveedor` int(11) DEFAULT NULL,
  `total` decimal(10,2) DEFAULT 0.00,
  `observaciones` text DEFAULT NULL,
  `estado` tinyint(1) DEFAULT 1,
  PRIMARY KEY (`idmovimiento`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `inv_movimientos_detalle` (
  `iddetalle` int(11) NOT NULL AUTO_INCREMENT,
  `idmovimiento` int(11) NOT NULL,
  `idproducto` int(11) NOT NULL,
  `cantidad` decimal(10,2) NOT NULL,
  `precio_unitario` decimal(10,2) DEFAULT 0.00,
  `lote` varchar(50) DEFAULT NULL,
  `fecha_vencimiento` date DEFAULT NULL,
  PRIMARY KEY (`iddetalle`),
  KEY `idmovimiento` (`idmovimiento`),
  KEY `idproducto` (`idproducto`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

COMMIT;
