DROP DATABASE IF EXISTS ideasnew;
CREATE DATABASE ideasnew
  CHARACTER SET utf8mb4
  COLLATE utf8mb4_general_ci;

USE ideasnew;

SET FOREIGN_KEY_CHECKS = 0;

CREATE TABLE Acabados (
  AcabID INT NOT NULL AUTO_INCREMENT,
  AcabadoDesc VARCHAR(50) DEFAULT NULL,
  AcabProdType VARCHAR(20) DEFAULT NULL,
  PRIMARY KEY (AcabID),
  INDEX idx_Acabados_ProdType (AcabProdType)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE Clientes (
  ClientID INT NOT NULL AUTO_INCREMENT,
  ClientNombre VARCHAR(200) DEFAULT NULL,
  ClientDireccion VARCHAR(200) DEFAULT NULL,
  ClientTelefono VARCHAR(30) DEFAULT NULL,
  ClientCorreo VARCHAR(100) DEFAULT NULL,
  ClientContacto VARCHAR(200) DEFAULT NULL,
  ClientVendedor INT DEFAULT NULL,
  ClientNIT VARCHAR(50) DEFAULT NULL,
  ClientPagoTipo VARCHAR(15) DEFAULT NULL,
  ClientPagoTiempo VARCHAR(20) DEFAULT NULL,
  ClientDeuda DECIMAL(18,2) DEFAULT 0.00,
  ClientHabilitado VARCHAR(1) DEFAULT NULL,
  ClientVentaHabilitado VARCHAR(1) DEFAULT NULL,
  ClientPctDescuento VARCHAR(5) DEFAULT NULL,
  PRIMARY KEY (ClientID),
  INDEX idx_Clientes_Nombre (ClientNombre),
  INDEX idx_Clientes_Vendedor (ClientVendedor),
  INDEX idx_Clientes_NIT (ClientNIT)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE Empleados (
  EmpID INT NOT NULL AUTO_INCREMENT,
  EmpApellido VARCHAR(30) DEFAULT NULL,
  EmpNombre VARCHAR(30) DEFAULT NULL,
  EmpUsuario VARCHAR(20) DEFAULT NULL,
  EmpContrasena VARCHAR(255) DEFAULT NULL,
  EmpTitulo VARCHAR(30) DEFAULT NULL,
  EmpFuncClientes SMALLINT DEFAULT NULL,
  EmpFuncImpresion SMALLINT DEFAULT NULL,
  EmpFuncConfiguracion SMALLINT DEFAULT NULL,
  EmpFuncEmpleados SMALLINT DEFAULT NULL,
  EmpFuncVentas SMALLINT DEFAULT NULL,
  EmpFuncReportes SMALLINT DEFAULT NULL,
  EmpFuncProductos SMALLINT DEFAULT NULL,
  EmpFuncConta SMALLINT DEFAULT NULL,
  EmpFuncImpuestos SMALLINT DEFAULT NULL,
  EmpFuncDesign SMALLINT DEFAULT NULL,
  EmpTel VARCHAR(20) DEFAULT NULL,
  EmpLinks VARCHAR(255) DEFAULT NULL,
  EmpFuncCompras TINYINT(1) NOT NULL DEFAULT 0,
  EmpFuncBodega TINYINT(1) NOT NULL DEFAULT 0,
  PRIMARY KEY (EmpID),
  UNIQUE KEY uq_Empleados_EmpUsuario (EmpUsuario),
  INDEX idx_Empleados_Nombre (EmpApellido, EmpNombre)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE Productos (
  ProdID INT NOT NULL AUTO_INCREMENT,
  ProdDesc VARCHAR(210) DEFAULT NULL,
  ProdType VARCHAR(20) DEFAULT NULL,
  ProdCost DECIMAL(18,2) DEFAULT 0.00,
  Detalles TEXT DEFAULT NULL,
  PRIMARY KEY (ProdID),
  INDEX idx_Productos_ProdDesc (ProdDesc),
  INDEX idx_Productos_ProdType (ProdType)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE Impresion (
  ImpressID INT NOT NULL AUTO_INCREMENT,
  ImpDesc VARCHAR(50) DEFAULT NULL,
  PRIMARY KEY (ImpressID),
  UNIQUE KEY uq_Impresion_ImpDesc (ImpDesc)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE Inventario (
  ItemID INT NOT NULL AUTO_INCREMENT,
  Codigo VARCHAR(100) NOT NULL,
  Descripcion TEXT NOT NULL,
  UnidadMedida VARCHAR(50) DEFAULT NULL,
  UltimaCompra DATETIME DEFAULT NULL,
  PrecioUltimaCompra DECIMAL(18,2) DEFAULT 0.00,
  ExistenciaActual DECIMAL(18,2) DEFAULT 0.00,
  ReorderThreshold DECIMAL(18,2) DEFAULT 0.00,
  Activo TINYINT(1) DEFAULT 1,
  FechaCreacion DATETIME DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (ItemID),
  INDEX idx_Inventario_Codigo (Codigo),
  INDEX idx_Inventario_Activo (Activo),
  FULLTEXT INDEX ft_Inventario_Descripcion (Descripcion)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE Vendor (
  VendorID INT NOT NULL AUTO_INCREMENT,
  Nombre VARCHAR(255) NOT NULL,
  Direccion TEXT DEFAULT NULL,
  Telefono VARCHAR(50) DEFAULT NULL,
  Email VARCHAR(150) DEFAULT NULL,
  ContactoPrincipal VARCHAR(150) DEFAULT NULL,
  Activo TINYINT(1) DEFAULT 1,
  FechaCreacion DATETIME DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (VendorID),
  INDEX idx_Vendor_Nombre (Nombre),
  INDEX idx_Vendor_Activo (Activo)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE Cotizacion (
  QuoteID INT NOT NULL AUTO_INCREMENT,
  ClientID INT DEFAULT NULL,
  FechaEntrega DATETIME DEFAULT NULL,
  Usuario VARCHAR(30) DEFAULT NULL,
  FechadeOrden DATETIME DEFAULT NULL,
  OrdenTotal DECIMAL(18,2) DEFAULT 0.00,
  FechaDeConversion DATETIME DEFAULT NULL,
  NumeroDeOrden INT DEFAULT NULL,
  UsuarioQueConvirtio VARCHAR(20) DEFAULT NULL,
  TiempoEntrega VARCHAR(50) DEFAULT NULL,
  Vigencia VARCHAR(30) DEFAULT NULL,
  Garantia VARCHAR(1) DEFAULT NULL,
  GarantiaTiempo TEXT DEFAULT NULL,
  DireccionEntrega VARCHAR(150) DEFAULT NULL,
  Credito VARCHAR(1) DEFAULT NULL,
  CreditoAprobado VARCHAR(50) DEFAULT NULL,
  Notas TEXT DEFAULT NULL,
  FechadeCambio DATETIME DEFAULT NULL,
  UsuarioCambio VARCHAR(20) DEFAULT NULL,
  Impreso VARCHAR(1) DEFAULT NULL,
  FechaImpresion DATE DEFAULT NULL,
  UsuarioImpresion VARCHAR(20) DEFAULT NULL,
  BodegaOrden INT NOT NULL DEFAULT 0,
  PRIMARY KEY (QuoteID),
  INDEX idx_Cotizacion_ClientID (ClientID),
  INDEX idx_Cotizacion_FechaOrden (FechadeOrden),
  INDEX idx_Cotizacion_NumeroDeOrden (NumeroDeOrden),
  INDEX idx_Cotizacion_BodegaOrden (BodegaOrden)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE CotizacionDetalles (
  CotDetID INT NOT NULL AUTO_INCREMENT,
  CotiID INT DEFAULT NULL,
  ProdID INT DEFAULT NULL,
  Cantidad DECIMAL(18,2) DEFAULT 0.00,
  Anchura DECIMAL(18,2) DEFAULT 0.00,
  Altura DECIMAL(18,2) DEFAULT 0.00,
  Precio_Unidad DECIMAL(18,2) DEFAULT 0.00,
  ProductoSubTotal DECIMAL(18,2) DEFAULT 0.00,
  PctDescuento DECIMAL(18,2) DEFAULT 0.00,
  Recargos DECIMAL(18,2) DEFAULT 0.00,
  PrecioMetro DECIMAL(18,2) DEFAULT 0.00,
  PrecioDescuento DECIMAL(18,2) DEFAULT 0.00,
  Version TEXT DEFAULT NULL,
  Detalles TEXT DEFAULT NULL,
  Impresion VARCHAR(100) DEFAULT NULL,
  Acabados VARCHAR(200) DEFAULT NULL,
  NotasImpresion TEXT DEFAULT NULL,
  PRIMARY KEY (CotDetID),
  INDEX idx_CotizacionDetalles_CotiID (CotiID),
  INDEX idx_CotizacionDetalles_ProdID (ProdID),
  INDEX idx_CotizacionDetalles_Coti_Prod (CotiID, ProdID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE Orden (
  OrderID INT NOT NULL AUTO_INCREMENT,
  QuoteID INT DEFAULT NULL,
  OrderDate DATE DEFAULT NULL,
  UserID VARCHAR(20) DEFAULT NULL,
  CreateDate DATE DEFAULT NULL,
  PONum VARCHAR(30) DEFAULT NULL,
  NumeroDeFactura VARCHAR(50) DEFAULT NULL,
  FechaFactura DATE DEFAULT NULL,
  UsuarioFactura VARCHAR(20) DEFAULT NULL,
  Pagada VARCHAR(1) DEFAULT NULL,
  ContraSena VARCHAR(50) DEFAULT NULL,
  FechaAPagar DATE DEFAULT NULL,
  UsuarioContra VARCHAR(20) DEFAULT NULL,
  FechaContra DATE DEFAULT NULL,
  Notas VARCHAR(300) DEFAULT NULL,
  NotasUsuario VARCHAR(20) DEFAULT NULL,
  NotasFecha DATE DEFAULT NULL,
  NotasVend VARCHAR(300) DEFAULT NULL,
  NotasVendUsuario VARCHAR(20) DEFAULT NULL,
  NotasVendFecha DATE DEFAULT NULL,
  PRIMARY KEY (OrderID),
  INDEX idx_Orden_QuoteID (QuoteID),
  INDEX idx_Orden_OrderDate (OrderDate),
  INDEX idx_Orden_NumeroDeFactura (NumeroDeFactura),
  INDEX idx_Orden_Pagada (Pagada),
  INDEX idx_Orden_FechaAPagar (FechaAPagar)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE Pagos (
  TransID INT NOT NULL AUTO_INCREMENT,
  OrderID INT DEFAULT NULL,
  Cantidad DECIMAL(18,2) DEFAULT 0.00,
  Fecha DATE DEFAULT NULL,
  TipoDePago VARCHAR(20) DEFAULT NULL,
  Usuario VARCHAR(20) DEFAULT NULL,
  Cheque VARCHAR(20) DEFAULT NULL,
  Recibo VARCHAR(20) DEFAULT NULL,
  Boleta VARCHAR(50) DEFAULT NULL,
  FechaBoleta DATE DEFAULT NULL,
  BoletaUsuario VARCHAR(20) DEFAULT NULL,
  ControlNum VARCHAR(20) DEFAULT NULL,
  PRIMARY KEY (TransID),
  INDEX idx_Pagos_OrderID (OrderID),
  INDEX idx_Pagos_Fecha (Fecha),
  INDEX idx_Pagos_TipoDePago (TipoDePago),
  INDEX idx_Pagos_ControlNum (ControlNum)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE anuladas (
  RecID INT NOT NULL AUTO_INCREMENT,
  FacturaID VARCHAR(30) DEFAULT NULL,
  OrderID INT DEFAULT NULL,
  FechaFactura DATE DEFAULT NULL,
  UsuarioFactura VARCHAR(20) DEFAULT NULL,
  FechaCancelada DATE DEFAULT NULL,
  UsuarioCancel VARCHAR(20) DEFAULT NULL,
  PRIMARY KEY (RecID),
  INDEX idx_anuladas_FacturaID (FacturaID),
  INDEX idx_anuladas_OrderID (OrderID),
  INDEX idx_anuladas_FechaCancelada (FechaCancelada)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE Depositos (
  DepID INT NOT NULL AUTO_INCREMENT,
  BoletaNum VARCHAR(20) DEFAULT NULL,
  Cantidad DECIMAL(18,2) DEFAULT 0.00,
  ControlNum VARCHAR(20) DEFAULT NULL,
  FechaBoleta DATE DEFAULT NULL,
  UsuarioBoleta VARCHAR(20) DEFAULT NULL,
  PRIMARY KEY (DepID),
  INDEX idx_Depositos_BoletaNum (BoletaNum),
  INDEX idx_Depositos_ControlNum (ControlNum),
  INDEX idx_Depositos_FechaBoleta (FechaBoleta)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE BodegaOrder (
  BodegaOrderID INT NOT NULL AUTO_INCREMENT,
  OrderID INT NOT NULL,
  UserID VARCHAR(255) NOT NULL,
  Status VARCHAR(50) NOT NULL DEFAULT 'Nuevo',
  Notes TEXT DEFAULT NULL,
  CreatedAt DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  UpdatedAt DATETIME DEFAULT NULL,
  UpdatedBy VARCHAR(255) DEFAULT NULL,
  PRIMARY KEY (BodegaOrderID),
  UNIQUE KEY uq_BodegaOrder_OrderID (OrderID),
  INDEX idx_BodegaOrder_Status (Status),
  INDEX idx_BodegaOrder_UserID (UserID),
  INDEX idx_BodegaOrder_CreatedAt (CreatedAt)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE BodegaOrderDetalles (
  BodegaOrderDetID INT NOT NULL AUTO_INCREMENT,
  BodegaOrderID INT NOT NULL,
  ItemID INT NOT NULL,
  Quantity DECIMAL(18,2) NOT NULL DEFAULT 0.00,
  ReceivedQty DECIMAL(18,2) DEFAULT 0.00,
  CreatedAt DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  ReceivedAt DATETIME DEFAULT NULL,
  ReceivedBy VARCHAR(255) DEFAULT NULL,
  PickedQuantity DECIMAL(18,2) DEFAULT 0.00,
  PRIMARY KEY (BodegaOrderDetID),
  INDEX idx_BodegaOrderDetalles_BodegaOrderID (BodegaOrderID),
  INDEX idx_BodegaOrderDetalles_ItemID (ItemID),
  CONSTRAINT FK_BodegaOrderDetalles_BodegaOrder
    FOREIGN KEY (BodegaOrderID)
    REFERENCES BodegaOrder (BodegaOrderID)
    ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE ComprasMaster (
  CompraID INT NOT NULL AUTO_INCREMENT,
  Fecha DATETIME NOT NULL,
  ProveedorID INT NOT NULL,
  Comprador VARCHAR(255) DEFAULT NULL,
  CotizacionReferencia VARCHAR(255) DEFAULT NULL,
  Notas TEXT DEFAULT NULL,
  Estado VARCHAR(50) DEFAULT 'Pendiente',
  FechaCreacion DATETIME DEFAULT CURRENT_TIMESTAMP,
  OrdenTotal DECIMAL(18,2) DEFAULT 0.00,
  CreateUser VARCHAR(20) DEFAULT NULL,
  ChangeUser VARCHAR(20) DEFAULT NULL,
  ChangeDate DATETIME DEFAULT NULL,
  ReceivedUser VARCHAR(50) DEFAULT NULL,
  ReceivedDate DATETIME DEFAULT NULL,
  PRIMARY KEY (CompraID),
  INDEX idx_ComprasMaster_Fecha (Fecha),
  INDEX idx_ComprasMaster_ProveedorID (ProveedorID),
  INDEX idx_ComprasMaster_Estado (Estado),
  INDEX idx_ComprasMaster_Comprador (Comprador)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE ComprasDetail (
  ID INT NOT NULL AUTO_INCREMENT,
  CompraID INT DEFAULT NULL,
  ItemID INT DEFAULT NULL,
  Cantidad DECIMAL(18,2) DEFAULT 0.00,
  PrecioUnitario DECIMAL(18,2) DEFAULT 0.00,
  Total DECIMAL(18,2) GENERATED ALWAYS AS (Cantidad * PrecioUnitario) STORED,
  Estado VARCHAR(50) DEFAULT 'Pendiente',
  QtyReceived DECIMAL(18,2) DEFAULT 0.00,
  QtyDifference DECIMAL(18,2) DEFAULT 0.00,
  PRIMARY KEY (ID),
  INDEX idx_ComprasDetail_CompraID (CompraID),
  INDEX idx_ComprasDetail_ItemID (ItemID),
  INDEX idx_ComprasDetail_Estado (Estado)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE ComprasAdjuntos (
  AdjuntoID INT NOT NULL AUTO_INCREMENT,
  CompraID INT NOT NULL,
  Tipo VARCHAR(50) NOT NULL,
  FileName VARCHAR(255) NOT NULL,
  FilePath VARCHAR(500) NOT NULL,
  UploadedAt DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  UploadedBy VARCHAR(255) DEFAULT NULL,
  PRIMARY KEY (AdjuntoID),
  INDEX idx_ComprasAdjuntos_CompraID (CompraID),
  INDEX idx_ComprasAdjuntos_Tipo (Tipo),
  CONSTRAINT FK_ComprasAdjuntos_ComprasMaster
    FOREIGN KEY (CompraID)
    REFERENCES ComprasMaster (CompraID)
    ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE CotDetAcabados (
  CotiID INT DEFAULT NULL,
  CotiDetallesID INT DEFAULT NULL,
  DetAcabProdID INT DEFAULT NULL,
  DetAcabID INT DEFAULT NULL,
  INDEX idx_CotDetAcabados_CotiID (CotiID),
  INDEX idx_CotDetAcabados_CotiDetallesID (CotiDetallesID),
  INDEX idx_CotDetAcabados_DetAcabID (DetAcabID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE CotDetImpresion (
  CotiID INT DEFAULT NULL,
  CotiDetallesID INT DEFAULT NULL,
  DetImpProdID INT DEFAULT NULL,
  DetImpID INT DEFAULT NULL,
  INDEX idx_CotDetImpresion_CotiID (CotiID),
  INDEX idx_CotDetImpresion_CotiDetallesID (CotiDetallesID),
  INDEX idx_CotDetImpresion_DetImpID (DetImpID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE Disenos (
  DesignID INT NOT NULL AUTO_INCREMENT,
  ClientID INT DEFAULT NULL,
  QuoteID INT DEFAULT NULL,
  OrdenID INT DEFAULT NULL,
  QuoteDetID INT DEFAULT NULL,
  FechaEntrega DATETIME DEFAULT NULL,
  Descripcion TEXT DEFAULT NULL,
  FechadeOrden DATETIME DEFAULT NULL,
  Usuario VARCHAR(30) DEFAULT NULL,
  Disenador VARCHAR(30) DEFAULT NULL,
  HoraInicio DATETIME DEFAULT NULL,
  HoraFinal DATETIME DEFAULT NULL,
  Estado VARCHAR(20) DEFAULT NULL,
  Observacion TEXT DEFAULT NULL,
  FechadeCambio DATETIME DEFAULT NULL,
  UsuarioCambio VARCHAR(30) DEFAULT NULL,
  PRIMARY KEY (DesignID),
  INDEX idx_Disenos_ClientID (ClientID),
  INDEX idx_Disenos_QuoteID (QuoteID),
  INDEX idx_Disenos_OrdenID (OrdenID),
  INDEX idx_Disenos_QuoteDetID (QuoteDetID),
  INDEX idx_Disenos_Estado (Estado),
  INDEX idx_Disenos_Disenador (Disenador),
  INDEX idx_Disenos_FechaEntrega (FechaEntrega)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE Entregas (
  EntregasID INT NOT NULL AUTO_INCREMENT,
  ClientID INT DEFAULT NULL,
  QuoteID INT DEFAULT NULL,
  OrdenID INT DEFAULT NULL,
  QuoteDetID INT DEFAULT NULL,
  FechaEntrega DATETIME DEFAULT NULL,
  Descripcion TEXT DEFAULT NULL,
  FechadeOrden DATETIME DEFAULT NULL,
  Usuario VARCHAR(30) DEFAULT NULL,
  Disenador VARCHAR(30) DEFAULT NULL,
  HoraInicio DATETIME DEFAULT NULL,
  HoraFinal DATETIME DEFAULT NULL,
  Estado VARCHAR(20) DEFAULT NULL,
  Observacion TEXT DEFAULT NULL,
  FechadeCambio DATETIME DEFAULT NULL,
  UsuarioCambio VARCHAR(30) DEFAULT NULL,
  TipoTrabajo VARCHAR(20) DEFAULT NULL,
  Dept VARCHAR(50) DEFAULT NULL,
  Documentos VARCHAR(255) DEFAULT NULL,
  Transporte VARCHAR(30) DEFAULT NULL,
  Contacto VARCHAR(110) DEFAULT NULL,
  Direccion VARCHAR(300) DEFAULT NULL,
  FormaPago VARCHAR(255) DEFAULT NULL,
  DoPrint TINYINT(1) DEFAULT NULL,
  PRIMARY KEY (EntregasID),
  INDEX idx_Entregas_ClientID (ClientID),
  INDEX idx_Entregas_QuoteID (QuoteID),
  INDEX idx_Entregas_OrdenID (OrdenID),
  INDEX idx_Entregas_QuoteDetID (QuoteDetID),
  INDEX idx_Entregas_Estado (Estado),
  INDEX idx_Entregas_Dept (Dept),
  INDEX idx_Entregas_FechaEntrega (FechaEntrega)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE EntregasDetalles (
  EntDetID INT NOT NULL AUTO_INCREMENT,
  EntregasID INT DEFAULT NULL,
  EntCotDetID INT DEFAULT NULL,
  PRIMARY KEY (EntDetID),
  INDEX idx_EntregasDetalles_EntregasID (EntregasID),
  INDEX idx_EntregasDetalles_EntCotDetID (EntCotDetID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE Herramientas (
  HerrID INT NOT NULL AUTO_INCREMENT,
  AssignedID VARCHAR(20) DEFAULT NULL,
  Descripcion VARCHAR(50) DEFAULT NULL,
  FechaCompra DATETIME DEFAULT NULL,
  Usuario VARCHAR(20) DEFAULT NULL,
  Precio DECIMAL(18,2) DEFAULT 0.00,
  Garantia VARCHAR(20) DEFAULT NULL,
  Marca VARCHAR(20) DEFAULT NULL,
  Estado VARCHAR(12) DEFAULT NULL,
  Factura VARCHAR(30) DEFAULT NULL,
  Notas TEXT DEFAULT NULL,
  PRIMARY KEY (HerrID),
  INDEX idx_Herramientas_AssignedID (AssignedID),
  INDEX idx_Herramientas_Estado (Estado),
  INDEX idx_Herramientas_Marca (Marca)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE HerramientaReqMain (
  ListID INT NOT NULL AUTO_INCREMENT,
  FechaCreada DATETIME DEFAULT NULL,
  Usuario VARCHAR(20) DEFAULT NULL,
  Cantidad VARCHAR(3) DEFAULT NULL,
  Instalador VARCHAR(20) DEFAULT NULL,
  Completa TINYINT(1) DEFAULT NULL,
  PRIMARY KEY (ListID),
  INDEX idx_HerramientaReqMain_FechaCreada (FechaCreada),
  INDEX idx_HerramientaReqMain_Usuario (Usuario),
  INDEX idx_HerramientaReqMain_Instalador (Instalador),
  INDEX idx_HerramientaReqMain_Completa (Completa)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE HerramientaReqDet (
  ReqID INT NOT NULL AUTO_INCREMENT,
  ListID INT DEFAULT NULL,
  HerraID INT DEFAULT NULL,
  FechaPedida DATETIME DEFAULT NULL,
  FechaRegresada DATETIME DEFAULT NULL,
  UsuarioPedido VARCHAR(20) DEFAULT NULL,
  UsuarioEntregado VARCHAR(20) DEFAULT NULL,
  FechaEntregada DATETIME DEFAULT NULL,
  PRIMARY KEY (ReqID),
  INDEX idx_HerramientaReqDet_ListID (ListID),
  INDEX idx_HerramientaReqDet_HerraID (HerraID),
  INDEX idx_HerramientaReqDet_FechaPedida (FechaPedida)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE Impresiones (
  PrintID INT NOT NULL AUTO_INCREMENT,
  OrderID INT DEFAULT NULL,
  ProdID INT DEFAULT NULL,
  Fecha DATE DEFAULT NULL,
  Usuario VARCHAR(20) DEFAULT NULL,
  Cantidad INT DEFAULT NULL,
  NewOrderID INT DEFAULT NULL,
  PRIMARY KEY (PrintID),
  INDEX idx_Impresiones_OrderID (OrderID),
  INDEX idx_Impresiones_ProdID (ProdID),
  INDEX idx_Impresiones_Fecha (Fecha),
  INDEX idx_Impresiones_NewOrderID (NewOrderID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE configuracion (
  Destino VARCHAR(20) DEFAULT NULL,
  Valor VARCHAR(150) DEFAULT NULL,
  UNIQUE KEY uq_configuracion_Destino (Destino)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE trabajos (
  trabajoID INT NOT NULL AUTO_INCREMENT,
  ClientID INT DEFAULT NULL,
  QuoteID INT DEFAULT NULL,
  OrdenID INT DEFAULT NULL,
  QuoteDetID INT DEFAULT NULL,
  FechaEntrega DATETIME DEFAULT NULL,
  Descripcion TEXT DEFAULT NULL,
  FechadeOrden DATETIME DEFAULT NULL,
  Usuario VARCHAR(30) DEFAULT NULL,
  Disenador VARCHAR(30) DEFAULT NULL,
  HoraInicio DATETIME DEFAULT NULL,
  HoraFinal DATETIME DEFAULT NULL,
  Estado VARCHAR(20) DEFAULT NULL,
  Observacion TEXT DEFAULT NULL,
  FechadeCambio DATETIME DEFAULT NULL,
  UsuarioCambio VARCHAR(30) DEFAULT NULL,
  TipoTrabajo VARCHAR(20) DEFAULT NULL,
  Dept VARCHAR(50) DEFAULT NULL,
  Documentos VARCHAR(50) DEFAULT NULL,
  Transporte VARCHAR(30) DEFAULT NULL,
  Contacto VARCHAR(100) DEFAULT NULL,
  Direccion VARCHAR(200) DEFAULT NULL,
  FormaPago VARCHAR(150) DEFAULT NULL,
  DoPrint TINYINT(1) DEFAULT NULL,
  PRIMARY KEY (trabajoID),
  INDEX idx_trabajos_ClientID (ClientID),
  INDEX idx_trabajos_QuoteID (QuoteID),
  INDEX idx_trabajos_OrdenID (OrdenID),
  INDEX idx_trabajos_QuoteDetID (QuoteDetID),
  INDEX idx_trabajos_Estado (Estado),
  INDEX idx_trabajos_Dept (Dept),
  INDEX idx_trabajos_FechaEntrega (FechaEntrega),
  INDEX idx_trabajos_Disenador (Disenador)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

CREATE TABLE trabajosDetalles (
  TrabajoDetID INT NOT NULL AUTO_INCREMENT,
  TrabajoID INT DEFAULT NULL,
  TrabajoCotDetID INT DEFAULT NULL,
  PRIMARY KEY (TrabajoDetID),
  INDEX idx_trabajosDetalles_TrabajoID (TrabajoID),
  INDEX idx_trabajosDetalles_TrabajoCotDetID (TrabajoCotDetID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

SET FOREIGN_KEY_CHECKS = 1;
