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

namespace Exferia_EntityFramework.Script_Actualizacion
{
    class Scripts_Version_1315
    {
        public static Version G_VRS_VERSION = new Version("1.3.1.5");
        public static long G_LNG_VERSION = 1315;
        public static int G_INT_TIPO = 0;
        public static string G_STR_SCRIPT =
                                    //AÑADIR el campo idInstalacionCabecera a la tabla MYT_Partes_Notas
                                    "IF not exists " +
                                      "( " +
                                      "    SELECT * " +
                                      "    FROM INFORMATION_SCHEMA.COLUMNS " +
                                      "    WHERE COLUMN_NAME='idInstalacionCabecera' AND TABLE_NAME = 'MYT_Partes_Notas' " +
                                      ") " +
                                    "BEGIN " +
                                        " ALTER TABLE [MYT_Partes_Notas]ADD[idInstalacionCabecera] bigint NULL  " +
                                        //Relaciones
                                        " ALTER TABLE[MYT_Partes_Notas] WITH CHECK ADD  CONSTRAINT[FK_MYT_Partes_Notas_MYT_InstalacionesCabecera] FOREIGN KEY([idInstalacionCabecera]) REFERENCES[MYT_InstalacionesCabecera] ([id]) " +
                                        " ALTER TABLE[MYT_Partes_Notas] CHECK CONSTRAINT[FK_MYT_Partes_Notas_MYT_InstalacionesCabecera] " +
                                    "END " +
                                    //AÑADIR el campo idInstalacionLinea a la tabla MYT_Partes_Notas
                                    "IF not exists " +
                                      "( " +
                                      "    SELECT * " +
                                      "    FROM INFORMATION_SCHEMA.COLUMNS " +
                                      "    WHERE COLUMN_NAME='idInstalacionLinea' AND TABLE_NAME = 'MYT_Partes_Notas' " +
                                      ") " +
                                    "BEGIN " +
                                        " ALTER TABLE [MYT_Partes_Notas]ADD[idInstalacionLinea] bigint NULL  " +
                                        //Relaciones
                                        " ALTER TABLE[MYT_Partes_Notas] WITH CHECK ADD  CONSTRAINT[FK_MYT_Partes_Notas_MYT_InstalacionesLineas] FOREIGN KEY([idInstalacionLinea]) REFERENCES[MYT_InstalacionesLineas] ([id]) " +
                                        " ALTER TABLE[MYT_Partes_Notas] CHECK CONSTRAINT[FK_MYT_Partes_Notas_MYT_InstalacionesLineas] " +
                                    "END " +
                                    //AÑADIR el campo idInstalacionCabecera a la tabla MYT_Partes_TrabajosRealizados
                                    "IF not exists " +
                                      "( " +
                                      "    SELECT * " +
                                      "    FROM INFORMATION_SCHEMA.COLUMNS " +
                                      "    WHERE COLUMN_NAME='idInstalacionCabecera' AND TABLE_NAME = 'MYT_Partes_TrabajosRealizados' " +
                                      ") " +
                                    "BEGIN " +
                                        " ALTER TABLE [MYT_Partes_TrabajosRealizados]ADD[idInstalacionCabecera] bigint NULL  " +
                                        //Relaciones
                                        " ALTER TABLE[MYT_Partes_TrabajosRealizados] WITH CHECK ADD  CONSTRAINT[FK_MYT_Partes_TrabajosRealizados_MYT_InstalacionesCabecera] FOREIGN KEY([idInstalacionCabecera]) REFERENCES[MYT_InstalacionesCabecera] ([id]) " +
                                        " ALTER TABLE[MYT_Partes_TrabajosRealizados] CHECK CONSTRAINT[FK_MYT_Partes_TrabajosRealizados_MYT_InstalacionesCabecera] " +
                                    "END " +
                                    //AÑADIR el campo idInstalacionLinea a la tabla MYT_Partes_TrabajosRealizados
                                    "IF not exists " +
                                      "( " +
                                      "    SELECT * " +
                                      "    FROM INFORMATION_SCHEMA.COLUMNS " +
                                      "    WHERE COLUMN_NAME='idInstalacionLinea' AND TABLE_NAME = 'MYT_Partes_TrabajosRealizados' " +
                                      ") " +
                                    "BEGIN " +
                                        " ALTER TABLE [MYT_Partes_TrabajosRealizados]ADD[idInstalacionLinea] bigint NULL  " +
                                        //Relaciones
                                        " ALTER TABLE[MYT_Partes_TrabajosRealizados] WITH CHECK ADD  CONSTRAINT[FK_MYT_Partes_TrabajosRealizados_MYT_InstalacionesLineas] FOREIGN KEY([idInstalacionLinea]) REFERENCES[MYT_InstalacionesLineas] ([id]) " +
                                        " ALTER TABLE[MYT_Partes_TrabajosRealizados] CHECK CONSTRAINT[FK_MYT_Partes_TrabajosRealizados_MYT_InstalacionesLineas] " +
                                    "END " +
                                    //AÑADIR el campo idParteEstado a la tabla MYT_Partes_TrabajosRealizados
                                    "IF not exists " +
                                      "( " +
                                      "    SELECT * " +
                                      "    FROM INFORMATION_SCHEMA.COLUMNS " +
                                      "    WHERE COLUMN_NAME='idParteEstado' AND TABLE_NAME = 'MYT_Partes_TrabajosRealizados' " +
                                      ") " +
                                    "BEGIN " +
                                        " ALTER TABLE [MYT_Partes_TrabajosRealizados]ADD[idParteEstado] bigint NULL  " +
                                        //Relaciones
                                        " ALTER TABLE[MYT_Partes_TrabajosRealizados] WITH CHECK ADD  CONSTRAINT[FK_MYT_Partes_TrabajosRealizados_MYT_PartesEstados] FOREIGN KEY([idParteEstado]) REFERENCES[MYT_PartesEstados] ([id]) " +
                                        " ALTER TABLE[MYT_Partes_TrabajosRealizados] CHECK CONSTRAINT[FK_MYT_Partes_TrabajosRealizados_MYT_PartesEstados] " +
                                    "END " +
                                     //BORRAR campo firma a la tabla MYT_Partes_TrabajosRealizados
                                     "IF exists " +
                                      "( " +
                                      "    SELECT * " +
                                      "    FROM INFORMATION_SCHEMA.COLUMNS " +
                                      "    WHERE COLUMN_NAME='firma' AND TABLE_NAME = 'MYT_Partes_TrabajosRealizados' " +
                                      ") " +
                                    "BEGIN " +
                                        " ALTER TABLE MYT_Partes_TrabajosRealizados DROP COLUMN [firma] " +
                                    "END " +
                                     //BORRAR campo firmanteObservaciones a la tabla MYT_Partes_TrabajosRealizados
                                     "IF exists " +
                                      "( " +
                                      "    SELECT * " +
                                      "    FROM INFORMATION_SCHEMA.COLUMNS " +
                                      "    WHERE COLUMN_NAME='firmanteObservaciones' AND TABLE_NAME = 'MYT_Partes_TrabajosRealizados' " +
                                      ") " +
                                    "BEGIN " +
                                        " ALTER TABLE MYT_Partes_TrabajosRealizados DROP COLUMN [firmanteObservaciones] " +
                                    "END " +
                                     //BORRAR campo estado a la tabla MYT_Partes_TrabajosRealizados
                                     "IF exists " +
                                      "( " +
                                      "    SELECT * " +
                                      "    FROM INFORMATION_SCHEMA.COLUMNS " +
                                      "    WHERE COLUMN_NAME='estado' AND TABLE_NAME = 'MYT_Partes_TrabajosRealizados' " +
                                      ") " +
                                    "BEGIN " +
                                        " ALTER TABLE MYT_Partes_TrabajosRealizados DROP COLUMN [estado] " +
                                    "END " +
                                    //CREAR TABLA MYT_Partes_TrabajosRealizados_Firmas
                                    " IF not exists " +
                                    " ( " +
                                        " SELECT * " +
                                        " FROM INFORMATION_SCHEMA.TABLES " +
                                        " WHERE TABLE_NAME = 'MYT_Partes_TrabajosRealizados_Firmas' " +
                                    " ) " +
                                    " BEGIN " +
                                        " CREATE TABLE [MYT_Partes_TrabajosRealizados_Firmas] " +
                                        " ( " +
                                            " [id] [bigint] IDENTITY(1,1) NOT NULL, " +
                                            " [idTrabajoRealizado] [bigint] NOT NULL, " +
                                            " [idTerminal][bigint] NULL, " +
                                            " [idTecnico_Firma] [bigint] NULL, " +
                                            " [tecnicoPrincipal] [bit] NULL, " +
                                            " [cliente_Firma] [varchar](50) NULL, " +
                                            " [firma] [varbinary](max) NOT NULL, " +
                                            " [observaciones] [varchar](250) NULL, " +
                                            " [guid] [varchar](50) NULL, " +
                                            " [fechaBorrado][datetime]NULL, " +
                                        " CONSTRAINT[PK_MYT_Partes_TrabajosRealizados_Firmas] 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_Partes_TrabajosRealizados_Firmas] WITH CHECK ADD CONSTRAINT[FK_MYT_Partes_TrabajosRealizados_Firmas_MYT_Partes_TrabajosRealizados] FOREIGN KEY([idTrabajoRealizado]) REFERENCES[dbo].[MYT_Partes_TrabajosRealizados] ([id]) " +
                                        " ALTER TABLE [MYT_Partes_TrabajosRealizados_Firmas] CHECK CONSTRAINT[FK_MYT_Partes_TrabajosRealizados_Firmas_MYT_Partes_TrabajosRealizados] " +

                                        " ALTER TABLE [MYT_Partes_TrabajosRealizados_Firmas] WITH CHECK ADD CONSTRAINT[FK_MYT_Partes_TrabajosRealizados_Firmas_GEN_Terminales] FOREIGN KEY([idTerminal]) REFERENCES[dbo].[GEN_Terminales] ([id]) " +
                                        " ALTER TABLE [MYT_Partes_TrabajosRealizados_Firmas] CHECK CONSTRAINT[FK_MYT_Partes_TrabajosRealizados_Firmas_GEN_Terminales] " +

                                        " ALTER TABLE [MYT_Partes_TrabajosRealizados_Firmas] WITH CHECK ADD CONSTRAINT[FK_MYT_Partes_TrabajosRealizados_Firmas_MYT_Tecnicos] FOREIGN KEY([idTecnico_Firma]) REFERENCES[dbo].[MYT_Tecnicos] ([id]) " +
                                        " ALTER TABLE [MYT_Partes_TrabajosRealizados_Firmas] CHECK CONSTRAINT[FK_MYT_Partes_TrabajosRealizados_Firmas_MYT_Tecnicos] " +
                                    " END " +
                                    //AÑADIR el campo codigoValidacion a la tabla GEN_Terminales
                                    "IF not exists " +
                                      "( " +
                                      "    SELECT * " +
                                      "    FROM INFORMATION_SCHEMA.COLUMNS " +
                                      "    WHERE COLUMN_NAME='codigoValidacion' AND TABLE_NAME = 'GEN_Terminales' " +
                                      ") " +
                                    "BEGIN " +
                                        " ALTER TABLE [GEN_Terminales]ADD[codigoValidacion] varchar(50) NULL  " +
                                    "END " +
                                    //AÑADIR el campo codigoValidacionUtilizado a la tabla GEN_Terminales
                                    "IF not exists " +
                                      "( " +
                                      "    SELECT * " +
                                      "    FROM INFORMATION_SCHEMA.COLUMNS " +
                                      "    WHERE COLUMN_NAME='codigoValidacionUtilizado' AND TABLE_NAME = 'GEN_Terminales' " +
                                      ") " +
                                    "BEGIN " +
                                        " ALTER TABLE [GEN_Terminales]ADD[codigoValidacionUtilizado] bit NULL  " +
                                    "END " +
                                    //CREAR TABLA GEN_Terminales_ValidacionesHistorico
                                    " IF not exists " +
                                    " ( " +
                                        " SELECT * " +
                                        " FROM INFORMATION_SCHEMA.TABLES " +
                                        " WHERE TABLE_NAME = 'GEN_Terminales_ValidacionesHistorico' " +
                                    " ) " +
                                    " BEGIN " +
                                        " CREATE TABLE[dbo].[GEN_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_GEN_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[dbo].[GEN_Terminales_ValidacionesHistorico] WITH CHECK ADD CONSTRAINT[FK_GEN_Terminales_ValidacionesHistorico_GEN_Terminales] FOREIGN KEY([idTerminal]) REFERENCES[dbo].[GEN_Terminales] ([id]) ON DELETE CASCADE " +
                                        " ALTER TABLE[dbo].[GEN_Terminales_ValidacionesHistorico] CHECK CONSTRAINT[FK_GEN_Terminales_ValidacionesHistorico_GEN_Terminales] " +
                                    " END ";


    }
}
