using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Exferia_EntityFramework.Script_Actualizacion
{
    class Scripts_Version_1183
    {
        public static Version G_VRS_VERSION = new Version("1.1.8.3");
        public static long G_LNG_VERSION = 1183;
        public static int G_INT_TIPO = 0;
        public static string G_STR_SCRIPT =
                                    //CREAR TABLA HPV_AgrupacionesTerminales
                                    " IF not exists " +
                                    " ( " +
                                        " SELECT * " +
                                        " FROM INFORMATION_SCHEMA.TABLES " +
                                        " WHERE TABLE_NAME = 'HPV_AgrupacionesTerminales' " +
                                    " ) " +
                                    " BEGIN " +
                                        " CREATE TABLE [HPV_AgrupacionesTerminales] " +
                                        " ( " +
                                            " [id] [bigint] IDENTITY(1,1) NOT NULL, " +
                                            " [codigo] [varchar] (10) NOT NULL, " +
                                            " [descripcion] [varchar](50) NOT NULL, " +
                                            " [idEmpresa][bigint] NOT NULL, " +
                                            " [fechaBorrado] [datetime] NULL, " +
                                        " CONSTRAINT[PK_HPV_AgrupacionesTerminales] PRIMARY KEY CLUSTERED " +
                                        " ( " +
                                        " [id] ASC " +
                                        " )WITH(PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON[PRIMARY] " +
                                        " ) ON[PRIMARY] " +
                                        //Relaciones
                                        " ALTER TABLE [HPV_AgrupacionesTerminales] WITH CHECK ADD CONSTRAINT[FK_HPV_AgrupacionesTerminales_GEN_Empresas] FOREIGN KEY([idEmpresa]) REFERENCES [GEN_Empresas] ([id]) " +
                                        " ALTER TABLE [HPV_AgrupacionesTerminales] CHECK CONSTRAINT[FK_HPV_AgrupacionesTerminales_GEN_Empresas] " +
                                    " END " +
                                    //CREAR OPCION HPV_AGRUPACIONESTERMINALES
                                    "IF not exists " +
                                    "( " +
                                        "SELECT * " +
                                        "FROM PRV_Opciones " +
                                        "WHERE opcion = 'HPV_AGRUPACIONESTERMINALES' " +
                                    ") " +
                                    "BEGIN " +
                                        "INSERT INTO " + nameof(PRV_OpcionesDetalle) + " (" + nameof(PRV_OpcionesDetalle.opcion) + "," + nameof(PRV_OpcionesDetalle.descripcion_TituloListado) + "," + nameof(PRV_OpcionesDetalle.descripcion_TituloMantenimiento) + "," + nameof(PRV_OpcionesDetalle.descripcion_Plural) + "," + nameof(PRV_OpcionesDetalle.descripcion_Singular) + "," + nameof(PRV_OpcionesDetalle.camposMostrar_TituloMantenimiento) + ") VALUES('HPV_AGRUPACIONESTERMINALES','Agrupaciones de terminales','Agrupación de terminal','Agrupaciones de terminales','Agrupación de terminal', 'codigo,descripcion') " +
                                        "INSERT INTO " + nameof(PRV_Opciones) + " (" + nameof(PRV_Opciones.opcion) + "," + nameof(PRV_Opciones.libreria) + "," + nameof(PRV_Opciones.descripcionAMostrar) + "," + nameof(PRV_Opciones.mostrable_Arbol) + "," + nameof(PRV_Opciones.fechaCreacion) + ") VALUES('HPV_AGRUPACIONESTERMINALES','Exferia_HotelPuntoVenta','Agrupaciones de terminales',1,GETDATE()) " +
                                        "INSERT INTO " + nameof(PRV_Opcion_Objeto_Permiso) + " (" + nameof(PRV_Opcion_Objeto_Permiso.opcion) + "," + nameof(PRV_Opcion_Objeto_Permiso.idPermiso) + "," + nameof(PRV_Opcion_Objeto_Permiso.idObjeto) + "," + nameof(PRV_Opcion_Objeto_Permiso.opcionPadre) + "," + nameof(PRV_Opcion_Objeto_Permiso.mostrar) + ") VALUES('HPV_AGRUPACIONESTERMINALES',1, NULL,NULL,1) " +
                                        "INSERT INTO " + nameof(PRV_Opcion_Objeto_Permiso) + " (" + nameof(PRV_Opcion_Objeto_Permiso.opcion) + "," + nameof(PRV_Opcion_Objeto_Permiso.idPermiso) + "," + nameof(PRV_Opcion_Objeto_Permiso.idObjeto) + "," + nameof(PRV_Opcion_Objeto_Permiso.opcionPadre) + "," + nameof(PRV_Opcion_Objeto_Permiso.mostrar) + ") VALUES('HPV_AGRUPACIONESTERMINALES',2, NULL,NULL,1) " +
                                        "INSERT INTO " + nameof(PRV_Opcion_Objeto_Permiso) + " (" + nameof(PRV_Opcion_Objeto_Permiso.opcion) + "," + nameof(PRV_Opcion_Objeto_Permiso.idPermiso) + "," + nameof(PRV_Opcion_Objeto_Permiso.idObjeto) + "," + nameof(PRV_Opcion_Objeto_Permiso.opcionPadre) + "," + nameof(PRV_Opcion_Objeto_Permiso.mostrar) + ") VALUES('HPV_AGRUPACIONESTERMINALES',3, NULL,NULL,1) " +
                                        "INSERT INTO " + nameof(PRV_Opcion_Objeto_Permiso) + " (" + nameof(PRV_Opcion_Objeto_Permiso.opcion) + "," + nameof(PRV_Opcion_Objeto_Permiso.idPermiso) + "," + nameof(PRV_Opcion_Objeto_Permiso.idObjeto) + "," + nameof(PRV_Opcion_Objeto_Permiso.opcionPadre) + "," + nameof(PRV_Opcion_Objeto_Permiso.mostrar) + ") VALUES('HPV_AGRUPACIONESTERMINALES',4, NULL,NULL,1) " +
                                        "INSERT INTO " + nameof(PRV_Opcion_Objeto_Permiso) + " (" + nameof(PRV_Opcion_Objeto_Permiso.opcion) + "," + nameof(PRV_Opcion_Objeto_Permiso.idPermiso) + "," + nameof(PRV_Opcion_Objeto_Permiso.idObjeto) + "," + nameof(PRV_Opcion_Objeto_Permiso.opcionPadre) + "," + nameof(PRV_Opcion_Objeto_Permiso.mostrar) + ") VALUES('HPV_AGRUPACIONESTERMINALES',5, NULL,NULL,1) " +
                                        "INSERT INTO " + nameof(PRV_Opcion_Objeto_Permiso) + " (" + nameof(PRV_Opcion_Objeto_Permiso.opcion) + "," + nameof(PRV_Opcion_Objeto_Permiso.idPermiso) + "," + nameof(PRV_Opcion_Objeto_Permiso.idObjeto) + "," + nameof(PRV_Opcion_Objeto_Permiso.opcionPadre) + "," + nameof(PRV_Opcion_Objeto_Permiso.mostrar) + ") VALUES('HPV_AGRUPACIONESTERMINALES',6, NULL,NULL,1) " +
                                        "INSERT INTO " + nameof(PRV_Opcion_Objeto_Permiso) + " (" + nameof(PRV_Opcion_Objeto_Permiso.opcion) + "," + nameof(PRV_Opcion_Objeto_Permiso.idPermiso) + "," + nameof(PRV_Opcion_Objeto_Permiso.idObjeto) + "," + nameof(PRV_Opcion_Objeto_Permiso.opcionPadre) + "," + nameof(PRV_Opcion_Objeto_Permiso.mostrar) + ") VALUES('HPV_AGRUPACIONESTERMINALES',7, NULL,NULL,1) " +
                                        "INSERT INTO " + nameof(PRV_Opcion_Objeto_Permiso) + " (" + nameof(PRV_Opcion_Objeto_Permiso.opcion) + "," + nameof(PRV_Opcion_Objeto_Permiso.idPermiso) + "," + nameof(PRV_Opcion_Objeto_Permiso.idObjeto) + "," + nameof(PRV_Opcion_Objeto_Permiso.opcionPadre) + "," + nameof(PRV_Opcion_Objeto_Permiso.mostrar) + ") VALUES('HPV_AGRUPACIONESTERMINALES',8, NULL,NULL,1) " +
                                        "INSERT INTO " + nameof(PRV_Opcion_Objeto_Permiso) + " (" + nameof(PRV_Opcion_Objeto_Permiso.opcion) + "," + nameof(PRV_Opcion_Objeto_Permiso.idPermiso) + "," + nameof(PRV_Opcion_Objeto_Permiso.idObjeto) + "," + nameof(PRV_Opcion_Objeto_Permiso.opcionPadre) + "," + nameof(PRV_Opcion_Objeto_Permiso.mostrar) + ") VALUES('HPV_AGRUPACIONESTERMINALES',9, NULL,NULL,1) " +
                                    " END " +
                                    //CREAR TABLA HPV_Terminales_AgrupacionesTerminales
                                    " IF not exists " +
                                    " ( " +
                                        " SELECT * " +
                                        " FROM INFORMATION_SCHEMA.TABLES " +
                                        " WHERE TABLE_NAME = 'HPV_Terminales_AgrupacionesTerminales' " +
                                    " ) " +
                                    " BEGIN " +
                                        " CREATE TABLE[dbo].[HPV_Terminales_AgrupacionesTerminales] " +
                                        " ( " +
                                            " [idTerminal] [bigint] NOT NULL, " +
                                            " [idAgrupacionTerminal] [bigint] NOT NULL, " +
                                            " [observaciones] [varchar](200) NULL, " +
                                        " CONSTRAINT[PK_HPV_Terminales_AgrupacionesTerminales] PRIMARY KEY CLUSTERED " +
                                        " ( " +
                                        " [idTerminal] ASC, " +
                                        " [idAgrupacionTerminal] ASC " +
                                        " )WITH(PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON[PRIMARY] " +
                                        " ) ON[PRIMARY] " +
                                        //Relaciones
                                        " ALTER TABLE[dbo].[HPV_Terminales_AgrupacionesTerminales] WITH CHECK ADD CONSTRAINT[FK_HPV_Terminales_AgrupacionesTerminales_HPV_Terminales] FOREIGN KEY([idTerminal]) REFERENCES[dbo].[HPV_Terminales] ([id]) " +
                                        " ALTER TABLE[dbo].[HPV_Terminales_AgrupacionesTerminales] CHECK CONSTRAINT[FK_HPV_Terminales_AgrupacionesTerminales_HPV_Terminales] " +

                                        " ALTER TABLE[dbo].[HPV_Terminales_AgrupacionesTerminales] WITH CHECK ADD CONSTRAINT[FK_HPV_Terminales_AgrupacionesTerminales_HPV_AgrupacionesTerminales] FOREIGN KEY([idAgrupacionTerminal]) REFERENCES[dbo].[HPV_AgrupacionesTerminales] ([id]) " +
                                        " ALTER TABLE[dbo].[HPV_Terminales_AgrupacionesTerminales] CHECK CONSTRAINT[FK_HPV_Terminales_AgrupacionesTerminales_HPV_AgrupacionesTerminales] " +
                                    " END " +
                                     //AÑADIR el campo codigoValidacion a la tabla HPV_Terminales
                                     "IF not exists " +
                                      "( " +
                                      "    SELECT * " +
                                      "    FROM INFORMATION_SCHEMA.COLUMNS " +
                                      "    WHERE COLUMN_NAME='codigoValidacion' AND TABLE_NAME = 'HPV_Terminales' " +
                                      ") " +
                                    "BEGIN " +
                                        " ALTER TABLE [HPV_Terminales] ADD [codigoValidacion] varchar(50) NULL " +
                                    "END " +
                                     //AÑADIR el campo codigoValidacionUtilizado a la tabla HPV_Terminales
                                     "IF not exists " +
                                      "( " +
                                      "    SELECT * " +
                                      "    FROM INFORMATION_SCHEMA.COLUMNS " +
                                      "    WHERE COLUMN_NAME='codigoValidacionUtilizado' AND TABLE_NAME = 'HPV_Terminales' " +
                                      ") " +
                                    "BEGIN " +
                                        " ALTER TABLE [HPV_Terminales] ADD [codigoValidacionUtilizado] bit NULL " +
                                    "END " +
                                    //CREAR TABLA HPV_Terminales_ValidacionesHistorico
                                    " IF not exists " +
                                    " ( " +
                                        " SELECT * " +
                                        " FROM INFORMATION_SCHEMA.TABLES " +
                                        " WHERE TABLE_NAME = 'HPV_Terminales_ValidacionesHistorico' " +
                                    " ) " +
                                    " BEGIN " +
                                        " CREATE TABLE [HPV_Terminales_ValidacionesHistorico] " +
                                        " ( " +
                                            " [id] [bigint] IDENTITY(1,1) NOT NULL, " +
                                            " [clave] [varchar] (50) NOT NULL, " +
                                            " [fechaHora] [datetime] NOT NULL, " +
                                            " [idTerminal][bigint] NOT NULL, " +
                                            " [MAC][varchar](100) NULL, " +
                                        " CONSTRAINT[PK_HPV_Terminales_ValidacionesHistorico] PRIMARY KEY CLUSTERED " +
                                        " ( " +
                                        " [id] ASC " +
                                        " )WITH(PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON[PRIMARY] " +
                                        " ) ON[PRIMARY] " +
                                        //Relaciones
                                        " ALTER TABLE [HPV_Terminales_ValidacionesHistorico] WITH CHECK ADD CONSTRAINT[FK_HPV_Terminales_ValidacionesHistorico_HPV_Terminales] FOREIGN KEY([idTerminal]) REFERENCES [HPV_Terminales] ([id]) ON DELETE CASCADE " +
                                        " ALTER TABLE [HPV_Terminales_ValidacionesHistorico] CHECK CONSTRAINT[FK_HPV_Terminales_ValidacionesHistorico_HPV_Terminales] " +
                                    
                                    " END ";

    }
}
