USE usuarios_cepaim;
DROP VIEW IF EXISTS `vmunicipios_id`;

ALTER TABLE `usuarios_cepaim`.`acogida_alojamientos` ADD `id_servicio` SMALLINT UNSIGNED NULL DEFAULT NULL AFTER `proyecto`;

ALTER TABLE usuarios_cepaim.acogida_alojamientos ADD INDEX `aloj-centro-proyecto` (centro,proyecto);


ALTER TABLE usuarios_cepaim.notificaciones convert to character set utf8mb4 collate utf8mb4_spanish_ci;

-- Cambiar el campo caducado que es binario a char(1) : '1' y '0'
ALTER TABLE acogida_alojamientos CHANGE COLUMN caducado `caducado_binary` binary(1) NOT NULL DEFAULT '0';
-- enum para que no se pueda guardar cualquier valor
ALTER TABLE acogida_alojamientos ADD COLUMN caducado enum ('0','1') NOT NULL DEFAULT '0';
UPDATE acogida_alojamientos SET caducado = IF(caducado_binary = '1', '1', '0');
ALTER TABLE acogida_alojamientos DROP COLUMN `caducado_binary`;

-- Actualización de Localidades (id nuevo) y borrado de provincia (Ejecutar las consultas en este orden) */

ALTER TABLE usuarios_cepaim.municipios convert to character set utf8mb4 collate utf8mb4_spanish_ci;
ALTER TABLE usuarios_cepaim.municipios DROP PRIMARY KEY;
ALTER TABLE usuarios_cepaim.municipios ADD UNIQUE INDEX `prov-mun-unique` (prov_id,mun_id);
ALTER TABLE usuarios_cepaim.municipios ADD COLUMN id integer auto_increment primary key;

/*Consulta que debería ser ejecutada antes de eliminar la columna prov_des y cambiar el nombre loc_des a id_municipio*/
UPDATE usuarios_cepaim.acogida_acogidas_i a
INNER JOIN municipios m ON a.loc_des = m.mun_id AND a.prov_des = m.prov_id
SET a.loc_des = m.id
WHERE a.loc_des IS NOT NULL;

/*Cambiar nombre columna loc_des a id_municipio*/
ALTER TABLE `acogida_acogidas_i` CHANGE `loc_des` `id_municipio` CHAR(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_spanish_ci  DEFAULT NULL;
/*Borrar columna prov_des*/
ALTER TABLE `acogida_acogidas_i` DROP COLUMN prov_des;

--

ALTER TABLE usuarios_cepaim.acogida_acogidas_i change column id_actuacion `id_servicio` smallint(3) unsigned NULL;
UPDATE usuarios_cepaim.acogida_acogidas_i set id_servicio = null where id_servicio = 0;
ALTER TABLE usuarios_cepaim.acogida_acogidas_i ADD CONSTRAINT `fk-acogidas-servicios` FOREIGN KEY (`id_servicio`) REFERENCES `beneficiarios`.`proy_servicios` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE usuarios_cepaim.acogida_alojamientos ADD CONSTRAINT `fk-alojamientos-servicios` FOREIGN KEY (`id_servicio`) REFERENCES `beneficiarios`.`proy_servicios` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE;


-- Si queremos actualizar los servicios de los alojamientos ocupados
update acogida_alojamientos a inner join acogida_acogidas_i acog on a.id=acog.id_ubicacion set a.id_servicio=acog.id_servicio;

CREATE VIEW `vmunicipios_id` AS select `m`.`id` AS `id`, `m`.`prov_id` AS `cod_post`,`m`.`mun_id` AS `mun_id`,`m`.`nombre` AS `municipio`,`p`.`nombre` AS `provincia`,`c`.`nombre` AS `comunidad` from ((`municipios` `m` join `provincias_esp` `p`) join `comunidades_esp` `c`) where `m`.`prov_id` = `p`.`cod_post` and `p`.`comunidad` = `c`.`id`;



-- Actualización de los dispositivos de alojamiento

UPDATE acogida_alojamientos SET id_servicio=323 WHERE proyecto=1646;
UPDATE acogida_alojamientos SET id_servicio=311 WHERE proyecto=1621 AND centro!=37;
UPDATE acogida_alojamientos SET id_servicio=318 WHERE proyecto=1621 AND centro=37;