# =====================================================================
# Panel de administración (Decap CMS)
#
# USO LOCAL (en este computador):
#   npm run cms        → abre http://localhost:4321/admin/
#   Entra sin login y guarda directo en los archivos del proyecto.
#
# USO EN PRODUCCIÓN (cuando el sitio esté publicado en Netlify):
#   1. Activar "Identity" y "Git Gateway" en el panel de Netlify.
#   2. Eliminar (o comentar) la línea `local_backend: true`.
#   Cada persona invitada podrá entrar a territoriosconsultores.cl/admin
#   con su correo y publicar sin tocar código.
# =====================================================================

backend:
  name: git-gateway
  branch: main
  commit_messages:
    create: 'contenido: crear {{collection}} «{{slug}}»'
    update: 'contenido: actualizar {{collection}} «{{slug}}»'
    delete: 'contenido: eliminar {{collection}} «{{slug}}»'
    uploadMedia: 'media: subir {{path}}'
    deleteMedia: 'media: eliminar {{path}}'

# Permite usar el panel en el computador sin servidor remoto (npm run cms)
local_backend: true

locale: es
site_url: https://territoriosconsultores.cl
display_url: https://territoriosconsultores.cl
logo_url: /images/isotipo/isotipo.png

media_folder: 'public/images/subidas'
public_folder: '/images/subidas'

# Sin vista previa embebida (no carga los estilos reales del sitio y confunde)
editor:
  preview: false

collections:
  # ==================================================================
  # CONTENIDO PERIÓDICO
  # ==================================================================
  - name: columnas
    label: 'Columnas'
    label_singular: 'Columna'
    description: 'Artículos de opinión y análisis. Se publican en /columnas.'
    folder: 'src/content/columnas'
    create: true
    slug: '{{year}}-{{month}}-{{slug}}'
    identifier_field: titulo
    summary: "{{titulo}} — {{fecha | date('DD/MM/YYYY')}}"
    sortable_fields: ['fecha', 'titulo']
    fields:
      - { label: 'Título', name: 'titulo', widget: 'string' }
      - { label: 'Fecha', name: 'fecha', widget: 'datetime', format: 'YYYY-MM-DD', time_format: false }
      - { label: 'Autor/a', name: 'autor', widget: 'string', default: 'Territorios Consultores' }
      - { label: 'Resumen (bajada)', name: 'resumen', widget: 'text', hint: '1 a 3 frases. Aparece en las tarjetas y en Google.' }
      - { label: 'Imagen de portada', name: 'imagen', widget: 'image', required: false, choose_url: true, hint: 'Opcional. Si además pones video, el video manda.' }
      - { label: 'Video de portada', name: 'video', widget: 'file', required: false, choose_url: true, hint: 'Opcional. Pega un link de YouTube o Vimeo con «Insertar desde URL», o sube un archivo mp4.' }
      - { label: 'Etiquetas', name: 'etiquetas', widget: 'list', required: false, hint: 'Ej: licencia social, minería, participación' }
      - { label: 'Borrador (no publicar todavía)', name: 'borrador', widget: 'boolean', default: false, required: false }
      - { label: 'Texto', name: 'body', widget: 'markdown', hint: 'Para insertar un video dentro del texto: pega el link de YouTube solo, en una línea aparte. El sitio lo convierte en reproductor.' }

  # ------------------------------------------------------------------
  - name: noticias
    label: 'Noticias'
    label_singular: 'Noticia'
    description: 'Novedades de la consultora. Se publican en /noticias.'
    folder: 'src/content/noticias'
    create: true
    slug: '{{year}}-{{month}}-{{slug}}'
    identifier_field: titulo
    summary: "{{titulo}} — {{fecha | date('DD/MM/YYYY')}}"
    sortable_fields: ['fecha', 'titulo']
    fields:
      - { label: 'Título', name: 'titulo', widget: 'string' }
      - { label: 'Fecha', name: 'fecha', widget: 'datetime', format: 'YYYY-MM-DD', time_format: false }
      - { label: 'Resumen (bajada)', name: 'resumen', widget: 'text' }
      - { label: 'Imagen', name: 'imagen', widget: 'image', required: false, choose_url: true, hint: 'Opcional. Si además pones video, el video manda.' }
      - { label: 'Video', name: 'video', widget: 'file', required: false, choose_url: true, hint: 'Opcional. Pega un link de YouTube o Vimeo con «Insertar desde URL», o sube un archivo mp4.' }
      - { label: 'Fuente (medio o institución)', name: 'fuente', widget: 'string', required: false }
      - { label: 'Enlace a la fuente', name: 'enlace', widget: 'string', required: false, hint: 'URL completa, ej: https://...' }
      - { label: 'Borrador (no publicar todavía)', name: 'borrador', widget: 'boolean', default: false, required: false }
      - { label: 'Texto', name: 'body', widget: 'markdown', hint: 'Para insertar un video dentro del texto: pega el link de YouTube solo, en una línea aparte.' }

  # ------------------------------------------------------------------
  - name: newsletters
    label: 'Newsletter'
    label_singular: 'Edición'
    description: 'Ediciones del boletín. El archivo público vive en /newsletter.'
    folder: 'src/content/newsletters'
    create: true
    slug: 'edicion-{{fields.numero}}'
    identifier_field: titulo
    summary: 'Nº {{numero}} — {{titulo}}'
    sortable_fields: ['numero', 'fecha']
    fields:
      - { label: 'Título de la edición', name: 'titulo', widget: 'string' }
      - { label: 'Número', name: 'numero', widget: 'number', value_type: 'int', min: 1 }
      - { label: 'Fecha', name: 'fecha', widget: 'datetime', format: 'YYYY-MM-DD', time_format: false }
      - { label: 'Resumen', name: 'resumen', widget: 'text' }
      - { label: 'Borrador (no publicar todavía)', name: 'borrador', widget: 'boolean', default: false, required: false }
      - { label: 'Contenido', name: 'body', widget: 'markdown', hint: 'Los links de YouTube pegados en línea propia se convierten en reproductor.' }

  # ==================================================================
  # EQUIPO — agregar, quitar, reordenar y editar integrantes
  # ==================================================================
  - name: equipo
    label: 'Equipo'
    label_singular: 'Integrante'
    description: 'Quiénes aparecen en la sección Equipo, en qué orden, con qué foto, biografía y video. Para sacar a alguien sin borrarlo, desactiva «Mostrar en el sitio».'
    folder: 'src/content/equipo'
    create: true
    slug: '{{slug}}'
    identifier_field: nombre
    summary: '{{orden}}. {{nombre}} — {{cargo}}'
    sortable_fields: ['orden', 'nombre']
    fields:
      - { label: 'Nombre', name: 'nombre', widget: 'string' }
      - { label: 'Cargo', name: 'cargo', widget: 'string', hint: 'Ej: Consultor Senior, Directora Consultora' }
      - { label: 'Ciudad', name: 'ciudad', widget: 'string', hint: 'Ej: Santiago, Lima - Madrid' }
      - { label: 'Correo', name: 'correo', widget: 'string', required: false }
      - { label: 'Fotografía', name: 'foto', widget: 'image', required: false, choose_url: true }
      - { label: 'Video de presentación', name: 'video', widget: 'file', required: false, choose_url: true, hint: 'Opcional. Link de YouTube/Vimeo (con «Insertar desde URL») o archivo mp4. Se muestra al abrir el perfil.' }
      - { label: 'Orden de aparición', name: 'orden', widget: 'number', value_type: 'int', default: 99, hint: 'Número más bajo aparece primero (1, 2, 3…).' }
      - { label: 'Mostrar en el sitio', name: 'activo', widget: 'boolean', default: true, hint: 'Desactívalo para ocultar el perfil sin borrarlo.' }
      - { label: 'Biografía', name: 'body', widget: 'markdown' }

  # ==================================================================
  # SECCIONES DE LA PÁGINA DE INICIO
  # ==================================================================
  - name: enfoques
    label: 'Inicio · Nuestro trabajo (tarjetas)'
    label_singular: 'Tarjeta'
    description: 'Las tarjetas de la sección «Nuestro trabajo» del inicio. Puedes editarlas, reordenarlas, agregar o quitar.'
    folder: 'src/content/enfoques'
    create: true
    slug: '{{slug}}'
    identifier_field: titulo
    summary: '{{orden}}. {{titulo}}'
    sortable_fields: ['orden', 'titulo']
    fields:
      - { label: 'Título', name: 'titulo', widget: 'string' }
      - { label: 'Resumen (visible en la tarjeta)', name: 'resumen', widget: 'text' }
      - label: 'Ícono'
        name: 'icono'
        widget: 'select'
        default: 'acuerdo'
        options:
          - { label: 'Acuerdo (manos / vínculo)', value: 'acuerdo' }
          - { label: 'Mapa (territorio)', value: 'mapa' }
          - { label: 'Lupa (análisis)', value: 'lupa' }
      - { label: 'Orden de aparición', name: 'orden', widget: 'number', value_type: 'int', default: 99 }
      - { label: 'Texto extendido (se ve al abrir «Conocer más»)', name: 'body', widget: 'markdown' }

  # ------------------------------------------------------------------
  - name: servicios
    label: 'Inicio · Áreas de servicios'
    label_singular: 'Área'
    description: 'Las tres (o más) áreas de la sección «Servicios y productos».'
    folder: 'src/content/servicios'
    create: true
    slug: '{{slug}}'
    identifier_field: titulo
    summary: '{{orden}}. {{titulo}}'
    sortable_fields: ['orden']
    fields:
      - { label: 'Título del área', name: 'titulo', widget: 'string' }
      - { label: 'Bajada (descripción corta)', name: 'bajada', widget: 'text' }
      - { label: 'Orden de aparición', name: 'orden', widget: 'number', value_type: 'int', default: 99 }
      - { label: 'Listado de servicios y productos', name: 'items', widget: 'list', hint: 'Un servicio por línea' }
      - { label: 'Texto adicional (opcional)', name: 'body', widget: 'markdown', required: false }

  # ==================================================================
  # PÁGINAS Y AJUSTES (textos fijos del sitio)
  # ==================================================================
  - name: ajustes
    label: 'Páginas y ajustes'
    description: 'Textos de la página de inicio, datos de contacto, redes sociales y newsletter.'
    files:
      - name: inicio
        label: 'Página de inicio (textos)'
        file: 'src/data/inicio.json'
        fields:
          - label: 'Portada (hero)'
            name: 'hero'
            widget: 'object'
            fields:
              - { label: 'Etiqueta superior', name: 'etiqueta', widget: 'string' }
              - { label: 'Título principal', name: 'titulo', widget: 'string' }
              - { label: 'Palabra destacada (en cursiva cobre)', name: 'palabra_destacada', widget: 'string', required: false, hint: 'Debe existir dentro del título. Déjalo vacío para no destacar nada.' }
              - { label: 'Texto de presentación', name: 'texto', widget: 'text' }
              - label: 'Botón principal'
                name: 'boton_principal'
                widget: 'object'
                fields:
                  - { label: 'Texto', name: 'texto', widget: 'string' }
                  - { label: 'Enlace', name: 'enlace', widget: 'string', hint: 'Ej: #trabajo, /columnas/, https://...' }
              - label: 'Botón secundario'
                name: 'boton_secundario'
                widget: 'object'
                fields:
                  - { label: 'Texto', name: 'texto', widget: 'string' }
                  - { label: 'Enlace', name: 'enlace', widget: 'string' }
          - label: 'Sección «Nuestro trabajo»'
            name: 'trabajo'
            widget: 'object'
            fields:
              - { label: 'Título', name: 'titulo', widget: 'string' }
              - { label: 'Bajada', name: 'bajada', widget: 'text' }
          - label: 'Sección «Quiénes somos»'
            name: 'somos'
            widget: 'object'
            fields:
              - { label: 'Título', name: 'titulo', widget: 'string' }
              - { label: 'Párrafos', name: 'parrafos', widget: 'list', field: { label: 'Párrafo', name: 'parrafo', widget: 'text' } }
              - { label: 'Texto del botón', name: 'boton_texto', widget: 'string' }
              - { label: 'Imagen', name: 'imagen', widget: 'image', choose_url: true }
              - { label: 'Leyenda de la imagen', name: 'leyenda', widget: 'string', required: false }
          - label: 'Sección «Equipo» (encabezado)'
            name: 'equipo'
            widget: 'object'
            fields:
              - { label: 'Título', name: 'titulo', widget: 'string' }
              - { label: 'Bajada', name: 'bajada', widget: 'text' }
          - label: 'Sección «Servicios» (encabezado)'
            name: 'servicios'
            widget: 'object'
            fields:
              - { label: 'Título', name: 'titulo', widget: 'string' }
              - { label: 'Bajada', name: 'bajada', widget: 'text' }
          - label: 'Sección «Actualidad» (encabezado)'
            name: 'actualidad'
            widget: 'object'
            fields:
              - { label: 'Título', name: 'titulo', widget: 'string' }

      - name: sitio
        label: 'Ajustes generales (contacto, redes, newsletter)'
        file: 'src/data/sitio.json'
        fields:
          - { label: 'Nombre del sitio', name: 'nombre', widget: 'string' }
          - { label: 'Descripción para Google (SEO)', name: 'descripcion_seo', widget: 'text', hint: '1 a 2 frases. Aparece bajo el título en los buscadores.' }
          - { label: 'Correo de contacto', name: 'correo_contacto', widget: 'string', hint: 'Se usa en «Escríbenos», el pie de página y el newsletter.' }
          - { label: 'Lema del pie de página', name: 'lema_footer', widget: 'text' }
          - { label: 'Ciudades (portada y pie de página)', name: 'ciudades', widget: 'list', hint: 'Una ciudad por línea.' }
          - label: 'Redes sociales'
            name: 'redes'
            widget: 'list'
            summary: '{{fields.nombre}}'
            fields:
              - { label: 'Nombre', name: 'nombre', widget: 'string', hint: 'Ej: Facebook, X (Twitter), Instagram, LinkedIn, YouTube' }
              - { label: 'URL', name: 'url', widget: 'string' }
          - label: 'Newsletter (bloque de suscripción)'
            name: 'newsletter'
            widget: 'object'
            fields:
              - { label: 'Título', name: 'titulo', widget: 'string' }
              - { label: 'Bajada', name: 'bajada', widget: 'text' }
              - { label: 'Nota al pie del formulario', name: 'nota', widget: 'string' }
              - { label: 'URL del proveedor de envío (opcional)', name: 'accion_proveedor', widget: 'string', required: false, hint: 'URL del formulario de Mailchimp/Buttondown/Brevo. Si queda vacío, el botón abre el correo del visitante con la solicitud redactada.' }
