Skip to main content

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;
}
slug
string
required
URL-friendly identifier (e.g., “cascada-de-atlahuitzia”)
titulo
string
required
Attraction name
subtitulo
string
required
Short subtitle or tagline
descripcionCorta
string
required
Brief description for cards and previews (1-2 sentences)
descripcionLarga
string[]
required
Detailed description paragraphs
imagen
string
required
Main image URL or path
galeria
string[]
Additional image URLs for photo gallery
categoria
CategoriaAtractivo
required
Category of attraction. See CategoriaAtractivo
ubicacion
string
Location description (e.g., “Centro de Zongolica, Veracruz”)
coordenadas
Coordenadas
Geographic coordinates { lat: number, lng: number }
horarios
InfoBlock[]
Operating hours and access information
costos
InfoBlock[]
Pricing information
stats
Stat[]
Key statistics displayed as badges
cta
CTA
Call-to-action button (e.g., “Ver en Google Maps”)
duracionSugerida
string
Suggested visit duration (e.g., “1-2 horas”)
dificultad
NivelDificultad
Physical difficulty level: “Baja” | “Media” | “Alta” | “Extrema”
recomendaciones
string[]
Visitor recommendations
accesibilidad
InfoAccesibilidad
Accessibility features (wheelchairs, parking, restrooms, etc.)
seguridadTips
string[]
Safety tips
queTraer
string[]
What to bring
mejorEpoca
string
Best time to visit
pdfGuia
string
URL to downloadable PDF guide
ultimaActualizacion
string
Last update date (ISO format)
destacado
boolean
Whether attraction is featured
familiaFriendly
boolean
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;
}
id
string
UUID - Primary key (auto-generated)
user_id
string
UUID - References user who created the route
user_name
string
Display name of route creator
route_name
string
Name given to the route by the user
atractivos
string[]
Array of attraction slugs included in the route
ticket_url
string
URL to the generated ticket/itinerary page
share_code
string
Unique code for sharing the route (used in URLs)
badges
string[]
Array of badge IDs earned with this route
created_at
string
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;
}
id
string
UUID - Primary key (auto-generated)
user_id
string
UUID - References user who unlocked the badge
badge_type
string
Badge identifier (e.g., “aventurero”, “explorador”, “guardian_naturaleza”)
unlocked_at
string
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";

Build docs developers (and LLMs) love