You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
2.1 KiB
58 lines
2.1 KiB
-- Retira el catálogo de demostración que precedía a las grabaciones reales.
|
|
-- Los slugs son deliberadamente explícitos: la duración o el formato del audio
|
|
-- sirven para auditar, pero nunca deben convertirse en un criterio de borrado.
|
|
DO $$
|
|
BEGIN
|
|
IF EXISTS (
|
|
WITH principales AS (
|
|
SELECT id FROM cancion
|
|
WHERE version_de_id IS NULL AND slug IN (
|
|
'carta-sin-enviar', 'cinco-de-la-manana', 'como-si-nada',
|
|
'domingo-largo', 'dos-orillas', 'el-invierno-que-viene',
|
|
'el-ultimo-tren', 'la-ultima-carta', 'media-verdad',
|
|
'nadie-mira', 'preludio-i', 'preludio-ii', 'preludio-iii',
|
|
'ruido-blanco', 'the-long-way-home', 'tres-de-la-tarde',
|
|
'verano-tarde'
|
|
)
|
|
), objetivos AS (
|
|
SELECT id FROM principales
|
|
UNION ALL
|
|
SELECT c.id FROM cancion c
|
|
INNER JOIN principales p ON p.id = c.version_de_id
|
|
)
|
|
SELECT 1 FROM objetivos o
|
|
WHERE EXISTS (SELECT 1 FROM compra x WHERE x.cancion_id = o.id)
|
|
OR EXISTS (SELECT 1 FROM pedido_item x WHERE x.cancion_id = o.id)
|
|
) THEN
|
|
RAISE EXCEPTION 'No se puede borrar el catálogo provisional: tiene compras o pedidos';
|
|
END IF;
|
|
END
|
|
$$;
|
|
--> statement-breakpoint
|
|
|
|
DELETE FROM cancion
|
|
WHERE version_de_id IS NULL AND slug IN (
|
|
'carta-sin-enviar', 'cinco-de-la-manana', 'como-si-nada',
|
|
'domingo-largo', 'dos-orillas', 'el-invierno-que-viene',
|
|
'el-ultimo-tren', 'la-ultima-carta', 'media-verdad',
|
|
'nadie-mira', 'preludio-i', 'preludio-ii', 'preludio-iii',
|
|
'ruido-blanco', 'the-long-way-home', 'tres-de-la-tarde',
|
|
'verano-tarde'
|
|
);
|
|
--> statement-breakpoint
|
|
|
|
-- Los contenedores vacíos se retiran del catálogo público, pero no se
|
|
-- destruyen: pueden restaurarse si se recupera alguna de sus canciones.
|
|
UPDATE album
|
|
SET estado = 'retirado', actualizado_en = now()
|
|
WHERE slug IN ('como-si-nada', 'dos-orillas', 'preludios-para-piano', 'ruido-blanco')
|
|
AND NOT EXISTS (SELECT 1 FROM cancion c WHERE c.album_id = album.id);
|
|
--> statement-breakpoint
|
|
|
|
UPDATE artista
|
|
SET estado = 'retirado', actualizado_en = now()
|
|
WHERE slug IN ('andres-bermejo', 'coral-vidal', 'los-del-puerto', 'marta-cifuentes', 'nuria-lastra')
|
|
AND NOT EXISTS (
|
|
SELECT 1 FROM cancion_interprete ci WHERE ci.artista_id = artista.id
|
|
);
|