using Exferia_Aplicacion.General;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static Exferia_Aplicacion.General.Enumerados;

namespace Exferia_EntityFramework.Script_Actualizacion
{
    public class Scripts_Version_1152
    {
        public static Version G_VRS_VERSION = new Version("1.1.5.2");
        public static long G_LNG_VERSION = 1152;
        public static int G_INT_TIPO = 0;
        public static string G_STR_SCRIPT =
                                    // CREAR TABLA MYT_Infraestructuras
                                    " IF not exists " +
                                    " ( " +
                                        " SELECT * " +
                                        " FROM INFORMATION_SCHEMA.TABLES " +
                                        " WHERE TABLE_NAME = 'MYT_Infraestructuras' " +
                                    " ) " +
                                    " BEGIN " +
                                        " CREATE TABLE [MYT_Infraestructuras] " +
                                        " ( " +
                                            " [id][bigint] IDENTITY(1,1) NOT NULL, " +
                                            " [codigo] varchar(10) NOT NULL, " +
                                            " [descripcion] varchar(50) NOT NULL, " +
                                            " [fechaBorrado] datetime NULL, " +
                                        " CONSTRAINT[PK_MYT_Infraestructuras] 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] " +
                                    " END " +
                                    //CREAR OPCION MYT_INFRAESTRUCTURAS
                                    "IF not exists " +
                                    "( " +
                                        "SELECT * " +
                                        "FROM PRV_Opciones " +
                                        "WHERE opcion = 'MYT_INFRAESTRUCTURAS' " +
                                    ") " +
                                    "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('MYT_INFRAESTRUCTURAS','Infraestructuras','Infraestructura','Infraestructuras','Infraestructura', '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('MYT_INFRAESTRUCTURAS','Exferia_Mythos','Infraestructuras',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('MYT_INFRAESTRUCTURAS',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('MYT_INFRAESTRUCTURAS',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('MYT_INFRAESTRUCTURAS',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('MYT_INFRAESTRUCTURAS',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('MYT_INFRAESTRUCTURAS',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('MYT_INFRAESTRUCTURAS',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('MYT_INFRAESTRUCTURAS',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('MYT_INFRAESTRUCTURAS',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('MYT_INFRAESTRUCTURAS',9, NULL,NULL,1) " +
                                    " END " +
                                    // CREAR TABLA MYT_InfraestructurasSecciones
                                    " IF not exists " +
                                    " ( " +
                                        " SELECT * " +
                                        " FROM INFORMATION_SCHEMA.TABLES " +
                                        " WHERE TABLE_NAME = 'MYT_InfraestructurasSecciones' " +
                                    " ) " +
                                    " BEGIN " +
                                        " CREATE TABLE [MYT_InfraestructurasSecciones] " +
                                        " ( " +
                                            " [id][bigint] IDENTITY(1,1) NOT NULL, " +
                                            " [idInfraestructura] [bigint]NOT NULL, " +
                                            " [descripcion] varchar(50) NOT NULL, " +
                                            " [relacionTablaModelos] bit NOT NULL, " +
                                            " [orden] int NOT NULL, " +
                                            " [fechaBorrado] datetime NULL, " +
                                        " CONSTRAINT[PK_MYT_InfraestructurasSecciones] 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 MYT_InfraestructurasSecciones WITH CHECK ADD CONSTRAINT[FK_MYT_InfraestructurasSecciones_MYT_Infraestructuras] FOREIGN KEY([idInfraestructura])REFERENCES [MYT_Infraestructuras] ([id])ON DELETE CASCADE " +
                                        " ALTER TABLE MYT_InfraestructurasSecciones CHECK CONSTRAINT[FK_MYT_InfraestructurasSecciones_MYT_Infraestructuras] " +
                                    " END " +
                                    //CREAR OPCION MYT_INFRAESTRUCTURASSECCIONES
                                    "IF not exists " +
                                    "( " +
                                        "SELECT * " +
                                        "FROM PRV_Opciones " +
                                        "WHERE opcion = 'MYT_INFRAESTRUCTURASSECCIONES' " +
                                    ") " +
                                    "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('MYT_INFRAESTRUCTURASSECCIONES','Secciones','Sección','Secciones','Sección', '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('MYT_INFRAESTRUCTURASSECCIONES','Exferia_Mythos','Secciones',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('MYT_INFRAESTRUCTURASSECCIONES',1, NULL,'MYT_INFRAESTRUCTURAS',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('MYT_INFRAESTRUCTURASSECCIONES',2, NULL,'MYT_INFRAESTRUCTURAS',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('MYT_INFRAESTRUCTURASSECCIONES',4, NULL,'MYT_INFRAESTRUCTURAS',1) " +
                                    " END " +
                                    // CREAR TABLA MYT_InfraestructurasElementos
                                    " IF not exists " +
                                    " ( " +
                                        " SELECT * " +
                                        " FROM INFORMATION_SCHEMA.TABLES " +
                                        " WHERE TABLE_NAME = 'MYT_InfraestructurasElementos' " +
                                    " ) " +
                                    " BEGIN " +
                                        " CREATE TABLE [MYT_InfraestructurasElementos] " +
                                        " ( " +
                                            " [id][bigint] IDENTITY(1,1) NOT NULL, " +
                                            " [idInfraestructuraSeccion] [bigint]NOT NULL, " +
                                            " [descripcion] varchar(50) NOT NULL, " +
                                            " [tipo] int NOT NULL, " +
                                            " [orden] int NOT NULL, " +
                                            " [fechaBorrado] datetime NULL, " +
                                        " CONSTRAINT[PK_MYT_InfraestructurasElementos] 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 MYT_InfraestructurasElementos WITH CHECK ADD CONSTRAINT[FK_MYT_InfraestructurasElementos_MYT_InfraestructurasSecciones] FOREIGN KEY([idInfraestructuraSeccion])REFERENCES [MYT_InfraestructurasSecciones] ([id])ON DELETE CASCADE " +
                                        " ALTER TABLE MYT_InfraestructurasElementos CHECK CONSTRAINT[FK_MYT_InfraestructurasElementos_MYT_InfraestructurasSecciones] " +
                                    " END " +
                                    //CREAR OPCION MYT_INFRAESTRUCTURASELEMENTOS
                                    "IF not exists " +
                                    "( " +
                                        "SELECT * " +
                                        "FROM PRV_Opciones " +
                                        "WHERE opcion = 'MYT_INFRAESTRUCTURASELEMENTOS' " +
                                    ") " +
                                    "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('MYT_INFRAESTRUCTURASELEMENTOS','Elementos','Elemento','Elementos','Elemento', '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('MYT_INFRAESTRUCTURASELEMENTOS','Exferia_Mythos','Elementos',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('MYT_INFRAESTRUCTURASELEMENTOS',1, NULL,'MYT_INFRAESTRUCTURASSECCIONES',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('MYT_INFRAESTRUCTURASELEMENTOS',2, NULL,'MYT_INFRAESTRUCTURASSECCIONES',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('MYT_INFRAESTRUCTURASELEMENTOS',4, NULL,'MYT_INFRAESTRUCTURASSECCIONES',1) " +
                                    " END " +
                                    // CREAR TABLA MYT_InfraestructurasOpciones
                                    " IF not exists " +
                                    " ( " +
                                        " SELECT * " +
                                        " FROM INFORMATION_SCHEMA.TABLES " +
                                        " WHERE TABLE_NAME = 'MYT_InfraestructurasOpciones' " +
                                    " ) " +
                                    " BEGIN " +
                                        " CREATE TABLE [MYT_InfraestructurasOpciones] " +
                                        " ( " +
                                            " [id][bigint] IDENTITY(1,1) NOT NULL, " +
                                            " [idInfraestructuraElemento] [bigint]NOT NULL, " +
                                            " [descripcion] varchar(50) NOT NULL, " +
                                            " [orden] int NOT NULL, " +
                                            " [fechaBorrado] datetime NULL, " +
                                        " CONSTRAINT[PK_MYT_InfraestructurasOpciones] 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 MYT_InfraestructurasOpciones WITH CHECK ADD CONSTRAINT[FK_MYT_InfraestructurasOpciones_MYT_InfraestructurasElementos] FOREIGN KEY([idInfraestructuraElemento])REFERENCES [MYT_InfraestructurasElementos] ([id])ON DELETE CASCADE " +
                                        " ALTER TABLE MYT_InfraestructurasOpciones CHECK CONSTRAINT[FK_MYT_InfraestructurasOpciones_MYT_InfraestructurasElementos] " +
                                    " END " +
                                    //CREAR OPCION MYT_INFRAESTRUCTURASOPCIONES
                                    "IF not exists " +
                                    "( " +
                                        "SELECT * " +
                                        "FROM PRV_Opciones " +
                                        "WHERE opcion = 'MYT_INFRAESTRUCTURASOPCIONES' " +
                                    ") " +
                                    "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('MYT_INFRAESTRUCTURASOPCIONES','Opciones','Opción','Opciones','Opción', '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('MYT_INFRAESTRUCTURASOPCIONES','Exferia_Mythos','Opciones',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('MYT_INFRAESTRUCTURASOPCIONES',1, NULL,'MYT_INFRAESTRUCTURASELEMENTOS',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('MYT_INFRAESTRUCTURASOPCIONES',2, NULL,'MYT_INFRAESTRUCTURASELEMENTOS',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('MYT_INFRAESTRUCTURASOPCIONES',4, NULL,'MYT_INFRAESTRUCTURASELEMENTOS',1) " +
                                    " END ";


    }
}
