Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Jesus-Puertos/h-ayuntamiento/llms.txt
Use this file to discover all available pages before exploring further.
Overview
This page documents all tourism-related TypeScript types used in the Zongolica application, including attractions, routes, service providers, and related data structures.
Core Types
Atractivo
Represents a tourist attraction or place of interest.
interface Atractivo {
slug: string;
titulo: string;
subtitulo: string;
descripcionCorta: string;
descripcionLarga: string[];
imagen: string;
galeria?: string[];
categoria: CategoriaAtractivo;
ubicacion?: string;
coordenadas?: Coordenadas;
horarios?: InfoBlock[];
costos?: InfoBlock[];
stats?: Stat[];
cta?: CTA;
duracionSugerida?: string;
dificultad?: NivelDificultad;
recomendaciones?: string[];
accesibilidad?: InfoAccesibilidad;
seguridadTips?: string[];
queTraer?: string[];
mejorEpoca?: string;
pdfGuia?: string;
ultimaActualizacion?: string;
destacado?: boolean;
familiaFriendly?: boolean;
}
URL-friendly identifier (e.g., “cascada-de-atlahuitzia”)
Short subtitle or tagline
Brief description for cards and previews (1-2 sentences)
Detailed description paragraphs
Additional image URLs for photo gallery
categoria
CategoriaAtractivo
required
Location description (e.g., “Centro de Zongolica, Veracruz”)
Geographic coordinates { lat: number, lng: number }
Operating hours and access information
Key statistics displayed as badges
Call-to-action button (e.g., “Ver en Google Maps”)
Suggested visit duration (e.g., “1-2 horas”)
Physical difficulty level: “Baja” | “Media” | “Alta” | “Extrema”
Accessibility features (wheelchairs, parking, restrooms, etc.)
URL to downloadable PDF guide
Last update date (ISO format)
Whether attraction is featured
Whether attraction is family-friendly
Example
{
"slug": "la-pergola",
"titulo": "La Pérgola",
"subtitulo": "Capilla y mirador en el cerro Tlaltiticuinco",
"descripcionCorta": "Estructura arquitectónica de 1957 ubicada en lo alto del cerro.",
"descripcionLarga": [
"La Pérgola es una estructura arquitectónica exterior con columnas...",
"Fue diseñada por el padre Mariano Arce Morales..."
],
"imagen": "/turismo/atractivos/01-la-pergola/img-1.jpg",
"categoria": "Arquitectura",
"ubicacion": "Cerro Tlaltiticuinco, Zongolica, Veracruz",
"stats": [
{ "label": "Año", "value": "1957", "icon": "🏛️" },
{ "label": "Tipo", "value": "Capilla", "icon": "⛪" }
],
"duracionSugerida": "1-2 horas",
"dificultad": "Media",
"destacado": false,
"familiaFriendly": true
}
UserRoute
User-generated tourist route stored in the user_routes table.
interface UserRoute {
id: string;
user_id: string;
user_name?: string;
route_name: string;
atractivos: string[];
ticket_url: string;
share_code: string;
badges: string[];
created_at: string;
}
UUID - Primary key (auto-generated)
UUID - References user who created the route
Display name of route creator
Name given to the route by the user
Array of attraction slugs included in the route
URL to the generated ticket/itinerary page
Unique code for sharing the route (used in URLs)
Array of badge IDs earned with this route
ISO 8601 timestamp of route creation
Example
{
"id": "d4e5f6a7-b8c9-0123-def4-567890123456",
"user_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"user_name": "Juan Pérez",
"route_name": "Aventura en la Sierra",
"atractivos": ["la-pergola", "cascada-de-atlahuitzia", "el-calvario"],
"ticket_url": "https://zongolica.gob.mx/ruta/abc123",
"share_code": "abc123",
"badges": ["aventurero", "explorador"],
"created_at": "2024-03-15T14:30:00.000Z"
}
UserBadge
User achievement/badge stored in the user_badges table.
interface UserBadge {
id: string;
user_id: string;
badge_type: string;
unlocked_at: string;
}
UUID - Primary key (auto-generated)
UUID - References user who unlocked the badge
Badge identifier (e.g., “aventurero”, “explorador”, “guardian_naturaleza”)
ISO 8601 timestamp when badge was unlocked
Example
{
"id": "e5f6a7b8-c9d0-1234-ef56-789012345678",
"user_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"badge_type": "aventurero",
"unlocked_at": "2024-03-15T15:00:00.000Z"
}
Supporting Types
CategoriaAtractivo
Category types for tourist attractions.
type CategoriaAtractivo =
| "Naturaleza"
| "Cultura"
| "Gastronomía"
| "Miradores"
| "Senderismo"
| "Cascadas"
| "Arquitectura"
| "Centro Histórico"
| "Artesanías"
| "Otro";
NivelDificultad
Difficulty levels for routes and attractions.
type NivelDificultad = "Baja" | "Media" | "Alta" | "Extrema";
InfoBlock
Structured information block with title and items.
interface InfoBlock {
titulo: string;
items: string[];
}
Stat
Key statistic or data point displayed as a badge.
interface Stat {
label: string;
value: string;
icon?: string;
}
CTA
Call-to-action button configuration.
interface CTA {
label: string;
href: string;
icon?: string;
variant?: "primary" | "secondary" | "outline";
}
Coordenadas
Geographic coordinates.
interface Coordenadas {
lat: number;
lng: number;
}
InfoAccesibilidad
Accessibility information for attractions.
interface InfoAccesibilidad {
sillasRuedas: boolean;
estacionamiento: boolean;
sanitarios: boolean;
señalizacion: boolean;
guiaAdaptada: boolean;
notas?: string;
}
Route Types
RutaTuristica
Predefined tourist route.
interface RutaTuristica {
id: string;
nombre: string;
slug: string;
descripcion: string;
descripcionLarga?: string[];
insignia: string;
color: string;
colorSecundario?: string;
atractivos: string[];
duracion: string;
dificultad: NivelDificultad;
distancia?: string;
tipo: "Corta" | "Día completo" | "Familiar" | "Aventura" | "Cultural" | "Gastronómica";
incluye?: string[];
recomendaciones?: string[];
imagen?: string;
destacada?: boolean;
}
Service Provider Types
PrestadorServicio
Tourism service provider (guides, restaurants, hotels, etc.).
interface PrestadorServicio {
id: string;
slug: string;
nombre: string;
tipo: TipoServicio;
categoria: CategoriaPrestador;
subcategorias?: string[];
municipio?: string;
estado?: string;
direccion?: string;
googleMaps?: string;
coordenadas?: Coordenadas;
contacto?: string;
telefono?: string;
whatsapp?: string;
email?: string;
instagram?: string;
facebook?: string;
sitioWeb?: string;
descripcion: string;
descripcionLarga?: string[];
resena?: string;
imagen?: string;
fotografias?: string[];
icono?: string;
logo?: string;
servicios?: string[];
productosDestacados?: string[];
amenidades?: string[];
menu?: MenuSection[];
certificaciones?: string[];
tags?: string[];
calificacion?: number;
destacado?: boolean;
publicado?: boolean;
orden?: number;
}
TipoServicio
type TipoServicio =
| "Guías" | "Hospedaje" | "Transporte" | "Alimentos"
| "Artesanías" | "Aventura" | "cafeteria" | "restaurante"
| "hotel" | "guia_turistico" | "experiencia" | "artesano"
| "operador" | "recreacion" | "otro";
CategoriaPrestador
type CategoriaPrestador =
| "gastronomia" | "hospedaje" | "naturaleza" | "cultura"
| "aventura" | "bienestar" | "compras" | "servicios"
| "ecoturismo";