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.
78 lines
3.7 KiB
78 lines
3.7 KiB
ALTER TABLE "plan_suscripcion" DROP CONSTRAINT "plan_suscripcion_calidad_escucha_conocida";--> statement-breakpoint
|
|
ALTER TABLE "plan_suscripcion" ALTER COLUMN "calidad_escucha" DROP NOT NULL;--> statement-breakpoint
|
|
ALTER TABLE "plan_suscripcion" ADD COLUMN "ambito" text DEFAULT 'musica' NOT NULL;--> statement-breakpoint
|
|
ALTER TABLE "plan_suscripcion" ADD COLUMN "acceso_contenido_taller" boolean DEFAULT false NOT NULL;--> statement-breakpoint
|
|
ALTER TABLE "plan_suscripcion" ADD COLUMN "descarga_material_taller" boolean DEFAULT false NOT NULL;--> statement-breakpoint
|
|
ALTER TABLE "plan_suscripcion" ADD CONSTRAINT "plan_suscripcion_ambito_conocido" CHECK ("plan_suscripcion"."ambito" in ('musica', 'taller_letras'));--> statement-breakpoint
|
|
ALTER TABLE "plan_suscripcion" ADD CONSTRAINT "plan_suscripcion_capacidades_segun_ambito" CHECK ((
|
|
"plan_suscripcion"."ambito" = 'musica'
|
|
and "plan_suscripcion"."calidad_escucha" is not null
|
|
and not "plan_suscripcion"."acceso_contenido_taller"
|
|
and not "plan_suscripcion"."descarga_material_taller"
|
|
) or (
|
|
"plan_suscripcion"."ambito" = 'taller_letras'
|
|
and "plan_suscripcion"."calidad_escucha" is null
|
|
and not "plan_suscripcion"."incluye_publicidad"
|
|
and "plan_suscripcion"."descargas_incluidas" = 0
|
|
and "plan_suscripcion"."calidad_descarga" is null
|
|
and not "plan_suscripcion"."acceso_versiones"
|
|
));--> statement-breakpoint
|
|
ALTER TABLE "plan_suscripcion" ADD CONSTRAINT "plan_suscripcion_calidad_escucha_conocida" CHECK ("plan_suscripcion"."calidad_escucha" is null or "plan_suscripcion"."calidad_escucha" in ('media', 'alta'));
|
|
--> statement-breakpoint
|
|
UPDATE "plan_suscripcion"
|
|
SET
|
|
"descripcion" = CASE "codigo"
|
|
WHEN 'follower' THEN 'Para descubrir el catálogo a tu ritmo, crear tus listas y apoyar el proyecto desde el primer día.'
|
|
WHEN 'friend' THEN 'Una escucha sin interrupciones para quienes quieren llevarse sus canciones favoritas.'
|
|
WHEN 'vip' THEN 'La experiencia musical más completa: más descargas y acceso a las distintas versiones de cada canción.'
|
|
END,
|
|
"prestaciones" = '["Favoritos y listas de reproducción"]'::jsonb,
|
|
"actualizado_en" = now()
|
|
WHERE "codigo" IN ('follower', 'friend', 'vip');
|
|
--> statement-breakpoint
|
|
INSERT INTO "plan_suscripcion" (
|
|
"id", "codigo", "nombre", "descripcion", "nivel", "precio_centimos", "moneda",
|
|
"periodicidad", "intervalos", "ambito", "incluye_publicidad", "calidad_escucha",
|
|
"descargas_incluidas", "calidad_descarga", "acceso_versiones",
|
|
"acceso_contenido_taller", "descarga_material_taller", "prestaciones", "estado"
|
|
) VALUES (
|
|
'08af3913-6788-47b9-ad50-ce2371d0f05d',
|
|
'taller-letras',
|
|
'Taller de letras',
|
|
'Un año para profundizar en la escritura de canciones, avanzar a tu ritmo y conservar todos los materiales.',
|
|
1,
|
|
990,
|
|
'eur',
|
|
'ano',
|
|
1,
|
|
'taller_letras',
|
|
false,
|
|
null,
|
|
0,
|
|
null,
|
|
false,
|
|
true,
|
|
true,
|
|
'["Aprendizaje a tu ritmo"]'::jsonb,
|
|
'disponible'
|
|
)
|
|
ON CONFLICT ("codigo") DO UPDATE SET
|
|
"nombre" = EXCLUDED."nombre",
|
|
"descripcion" = EXCLUDED."descripcion",
|
|
"nivel" = EXCLUDED."nivel",
|
|
"precio_centimos" = EXCLUDED."precio_centimos",
|
|
"moneda" = EXCLUDED."moneda",
|
|
"periodicidad" = EXCLUDED."periodicidad",
|
|
"intervalos" = EXCLUDED."intervalos",
|
|
"ambito" = EXCLUDED."ambito",
|
|
"incluye_publicidad" = EXCLUDED."incluye_publicidad",
|
|
"calidad_escucha" = EXCLUDED."calidad_escucha",
|
|
"descargas_incluidas" = EXCLUDED."descargas_incluidas",
|
|
"calidad_descarga" = EXCLUDED."calidad_descarga",
|
|
"acceso_versiones" = EXCLUDED."acceso_versiones",
|
|
"acceso_contenido_taller" = EXCLUDED."acceso_contenido_taller",
|
|
"descarga_material_taller" = EXCLUDED."descarga_material_taller",
|
|
"prestaciones" = EXCLUDED."prestaciones",
|
|
"estado" = EXCLUDED."estado",
|
|
"actualizado_en" = now();
|