/** * =========================================== * DATOS DEL EVENTO — ZoukLambadaBCN * =========================================== * * Este archivo centraliza datos "no traducibles" del evento: * fechas, URLs, embeds, imágenes y arrays estructurados. * * El texto visible (títulos, descripciones, labels) vive en: * `src/locales/*.json` y se consume vía i18n. * * NOTA: Las imágenes deben colocarse en src/assets/ e importarse. */ import arielyasmin from "@/assets/staff/arielyasmin.jpg"; import hilaleo from "@/assets/staff/hilaleo.jpg"; import matheuslydia from "@/assets/staff/matheuslydia.jpg"; import omeradva from "@/assets/staff/omeradva.jpg"; import pablolena from "@/assets/staff/pablolena.jpg"; import djbiel from "@/assets/staff/djbiel.jpg"; import djwinx from "@/assets/staff/djwinx.jpg"; import djklebynho from "@/assets/staff/djklebynho.jpg"; import letialex from "@/assets/staff/letialex.jpg"; import djcathie from "@/assets/staff/djcathie.jpg"; // ---- INFORMACIÓN GENERAL DEL EVENTO ---- export const EVENT_INFO = { /** Fecha del evento — formato ISO para el countdown */ date: "2026-09-04T12:00:00", venue: "[Nombre del Venue]", venueAddress: "[Dirección del venue, Barcelona]", /** Google Maps embed URL — reemplazar con la URL real */ mapEmbedUrl: "https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2993.5!2d2.1734!3d41.3851!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x0%3A0x0!2zNDHCsDIzJzA2LjQiTiAywrAxMCcyNC4yIkU!5e0!3m2!1ses!2ses!4v1234567890", }; // ---- WEBHOOK N8N ---- /** * CONFIGURACIÓN DEL WEBHOOK: * * 1. En n8n, crea un nuevo workflow con un nodo "Webhook" * 2. Configura el webhook como POST * 3. Copia la URL generada y pégala aquí abajo * 4. En n8n, conecta el webhook a tu destino (Google Sheets, Airtable, etc.) * * Ejemplo de payload que se envía: * { * "name": "Juan García", * "email": "juan@example.com", * "seats": "2", * "country": "España", * "comment": "Primera vez en el festival" * } */ export const WEBHOOK_URL = "https://n8n.hacecalor.net/webhook/event-reservation"; /** * CLAVE DE AUTENTICACIÓN: * * Si activas "Header Auth" en n8n, asegúrate de que el nombre del header * sea "X-Webhook-Secret" y que este valor coincida con el que pongas allí. */ export const WEBHOOK_SECRET = "oWkS4cAgj0LVgIbnO3cGKTePPLnRAIAa5NTvXahx5z0="; export const ABOUT_ORG = { socials: { instagram: "https://instagram.com/zouklambadabcn", facebook: "https://facebook.com/zouklambadabcn", youtube: "https://youtube.com/@zouklambadabcn", }, }; // ---- STAFF DEL EVENTO ---- /** * Para añadir un nuevo miembro del staff, * simplemente agrega un nuevo objeto al array. */ export const STAFF = [ { id: "1", name: "[Pablo & Lena]", role: "Instructor" as const, description: "[Breve biografía del instructor]", /** Reemplazar con ruta a foto real */ image: pablolena, socials: { instagram: "", }, }, { id: "2", name: "[Ariel & Yasmin]", role: "Instructor" as const, description: "[Breve biografía del instructor]", image: arielyasmin, socials: { instagram: "", }, }, { id: "3", name: "[Hila & Leo]", role: "Instructor" as const, description: "[Breve biografía del instructor]", image: hilaleo, socials: { instagram: "", }, }, { id: "4", name: "[Matheus & Lydia]", role: "Instructor" as const, description: "[Breve biografía del instructor]", image: matheuslydia, socials: { instagram: "", }, }, { id: "5", name: "[Omer & Adva]", role: "Instructor" as const, description: "[Breve biografía del instructor]", image: omeradva, socials: { instagram: "", }, }, { id: "6", name: "[DJ Biel]", role: "DJ" as const, description: "[Breve biografía del DJ]", image: djbiel, socials: { instagram: "", soundcloud: "", }, }, { id: "7", name: "[DJ WinX]", role: "DJ" as const, description: "[Breve biografía del DJ]", image: djwinx, socials: { instagram: "", soundcloud: "", }, }, { id: "8", name: "[DJ Klebynho]", role: "DJ" as const, description: "[Breve biografía del DJ]", image: djklebynho, socials: { instagram: "", soundcloud: "", }, }, { id: "9", name: "[Leticia & Alex]", role: "Instructor" as const, description: "[Breve biografía del instructor]", image: letialex, socials: { instagram: "", }, }, { id: "10", name: "[DJ Cathie]", role: "DJ" as const, description: "[Breve biografía del DJ]", image: djcathie, socials: { instagram: "", soundcloud: "", }, }, ]; // ---- PROGRAMA DEL EVENTO ---- export const SCHEDULE = [ { day: "Viernes 20 Junio", events: [ { time: "18:00 – 19:30", title: "[Workshop 1]", type: "workshop" as const }, { time: "19:30 – 20:00", title: "Pausa", type: "break" as const }, { time: "20:00 – 21:30", title: "[Workshop 2]", type: "workshop" as const }, { time: "22:00 – 03:00", title: "Social Dance + DJ Set", type: "social" as const }, ], }, { day: "Sábado 21 Junio", events: [ { time: "12:00 – 13:30", title: "[Workshop 3]", type: "workshop" as const }, { time: "14:00 – 15:30", title: "[Workshop 4]", type: "workshop" as const }, { time: "16:00 – 17:30", title: "[Workshop 5]", type: "workshop" as const }, { time: "21:00 – 22:00", title: "Shows en Vivo", type: "show" as const }, { time: "22:00 – 04:00", title: "Social Dance + DJ Sets", type: "social" as const }, ], }, { day: "Domingo 22 Junio", events: [ { time: "12:00 – 13:30", title: "[Workshop 6]", type: "workshop" as const }, { time: "14:00 – 15:30", title: "[Workshop 7]", type: "workshop" as const }, { time: "17:00 – 22:00", title: "Farewell Party", type: "social" as const }, ], }, ]; // ---- HABITACIONES DE HOTEL ---- /** * Para añadir habitaciones, agrega objetos al array. * El botón "Reservar" abre el link en nueva pestaña. */ export const HOTEL_ROOMS = [ { id: "1", name: "[Habitación Individual]", price: "[XX€/noche]", description: "[Descripción breve de la habitación]", /** Reemplazar con URL de imagen real */ image: "", link: "https://hotel-example.com/booking", }, { id: "2", name: "[Habitación Doble]", price: "[XX€/noche]", description: "[Descripción breve de la habitación]", image: "", link: "https://hotel-example.com/booking", }, { id: "3", name: "[Suite]", price: "[XX€/noche]", description: "[Descripción breve de la habitación]", image: "", link: "https://hotel-example.com/booking", }, ]; // ---- INFORMACIÓN PRÁCTICA ---- export const PRACTICAL_INFO = { airports: [ { name: "Aeropuerto de Barcelona-El Prat (BCN)", distance: "~15 km del venue" }, { name: "Aeropuerto de Girona (GRO)", distance: "~100 km del venue" }, { name: "Aeropuerto de Reus (REU)", distance: "~110 km del venue" }, ], howToGet: [ { method: "Metro", details: "[Línea y parada más cercana]" }, { method: "Bus", details: "[Líneas de bus cercanas]" }, { method: "Taxi/Uber", details: "Disponible desde cualquier punto de Barcelona" }, ], }; // ---- GALERÍA ---- /** * Añade URLs o importaciones de imágenes. * Para importar: import img from "@/assets/gallery/photo1.jpg" */ export const GALLERY_IMAGES = [ { src: "", alt: "[Descripción foto 1]" }, { src: "", alt: "[Descripción foto 2]" }, { src: "", alt: "[Descripción foto 3]" }, { src: "", alt: "[Descripción foto 4]" }, { src: "", alt: "[Descripción foto 5]" }, { src: "", alt: "[Descripción foto 6]" }, ]; // ---- PAQUETES MIXTOS (Room + Pass) ---- export type RoomType = "individual" | "double" | "suite"; export type PassType = "full" | "party" | "single"; export const ROOM_TYPES: { id: RoomType }[] = [ { id: "individual" }, { id: "double" }, { id: "suite" }, ]; export const MIXED_BOOKING_PACKAGES = [ { id: "full" as PassType, label: "full", roomPrices: { individual: 0, double: 0, suite: 0 } }, { id: "party" as PassType, label: "party", roomPrices: { individual: 0, double: 0, suite: 0 } }, { id: "single" as PassType, label: "single", roomPrices: { individual: 0, double: 0, suite: 0 } }, ]; // ---- SECCIONES VISIBLES ---- export const SECTIONS = { about: true, org: true, staff: true, profesores: true, schedule: true, booking: false, mixed_booking: true, hotel: true, practical: true, gallery: true, }; // ---- NAVEGACIÓN ---- const HREF_TO_SECTION: Record = { "#about": "about", "#staff": "staff", "#schedule": "schedule", "#booking": "booking", "#mixed-booking": "mixed_booking", "#hotel": "hotel", "#info": "practical", "#gallery": "gallery", }; export const NAV_LINKS = ( [ { href: "#about" }, { href: "#staff" }, { href: "#schedule" }, { href: "#booking" }, { href: "#mixed-booking" }, { href: "#hotel" }, { href: "#info" }, { href: "#gallery" }, ] as const ).filter((link) => SECTIONS[HREF_TO_SECTION[link.href]]);