import type { ComponentMetadata } from '../interfaces/types';

export const metadata: ComponentMetadata = {
  component_name: 'Paginacion_2025_Paris',
  category: 'Contenido de Texto',
  name: 'Paginación con modo URL path o query y trailing slash configurable 2025',
  description: 'Componente de paginación con dos modos de URL alternables: "path" (/page/2/) o "query" (/?page=2). Incluye control de trailing slash, página actual, total de páginas, total de elementos y elementos por página. Se puede definir una URL base (p. ej. /blog) como raíz del paginado. En modo "query" el trailing slash determina si queda /?page=2 o ?page=2',
  framework: 'Astro',
  priority: 1,
  tags: ['paginacion', 'navegacion', 'paginado', 'listado'],
  fields: [
    {
      name: 'urlMode',
      type: 'select',
      help: 'Formato de las URLs de paginación: "path" para /page/2/ o "query" para /?page=2',
      label: 'Modo de URL',
      mandatory: false,
      options: ['path', 'query'],
      options_labels: ['Path (/page/2)', 'Query string (?page=2)'],
      example_value: 'path'
    },
    {
      name: 'currentPage',
      type: 'text',
      help: 'Introduce el número de la página actual',
      label: 'Página actual',
      mandatory: false,
      example_value: '1'
    },
    {
      name: 'totalPages',
      type: 'text',
      help: 'Introduce el número total de páginas',
      label: 'Total de páginas',
      mandatory: false,
      example_value: '10'
    },
    {
      name: 'totalItems',
      type: 'text',
      help: 'Introduce el número total de elementos',
      label: 'Total de elementos',
      mandatory: false,
      example_value: '100'
    },
    {
      name: 'itemsPerPage',
      type: 'text',
      help: 'Introduce el número de elementos por página',
      label: 'Elementos por página',
      mandatory: false,
      example_value: '10'
    },
    {
      name: 'baseUrl',
      type: 'text',
      help: 'Introduce la URL base para la paginación',
      label: 'URL base',
      mandatory: false,
      example_value: '/blog'
    },
    {
      name: 'trailingSlash',
      type: 'boolean',
      help: 'Indica si las URLs de paginación deben incluir / al final del path. En modo "query" determina si queda url.es/?page=2 o url.es?page=2',
      label: 'Trailing slash',
      mandatory: false,
      example_value: 'false'
    }
  ]
};
