Documentación · Apéndices

Referencia de base de datos y almacenamiento

Este apéndice enumera las tablas de base de datos personalizadas, los tipos de contenido personalizados (post types), las taxonomías y las ubicaciones de almacenamiento utilizadas por el plugin ADP Car Market Hub.

Cuándo utilizar este documento

Utilice esta referencia al planificar copias de seguridad, crear informes, diagnosticar problemas de esquema o auditar qué datos conserva el plugin. Para conocer el modelo de entidad conceptual y los detalles del esquema, consulte Database Schema, Data Model y Custom Post Types And Taxonomies.

Descripción general

El plugin almacena datos en cinco lugares:

  1. Tablas de base de datos personalizadas para vehículos, eventos de analítica, suscripciones de alertas de búsqueda y tareas/recursos de Content Studio.
  2. Tipos de contenido personalizados para vehículos, leads y ubicaciones, almacenados en wp_posts y wp_postmeta.
  3. Taxonomías personalizadas almacenadas en wp_terms, wp_term_taxonomy y wp_term_relationships.
  4. Opciones de WordPress en wp_options (todas con el prefijo as24ci_). Consulte la Referencia de ajustes.
  5. Transients para cachés y bloqueos de corta duración.

Tablas de base de datos personalizadas

Todas las tablas utilizan el prefijo WordPress (normalmente wp_). Las cinco tablas personalizadas se eliminan al desinstalar, independientemente de as24ci_delete_data_on_uninstall, ya que pueden contener datos personales o de visitantes.

Sufijo de tablaPropietarioOpción de versión de esquemaPropósito
as24_vehiclesAS24CI\Vehicle_Repositoryas24ci_vehicles_db_versionUna fila por vehículo importado, indexada para consultas de archivo.
as24ci_analyticsAS24CI\Analyticsas24ci_analytics_db_versionEventos de analítica (visualizaciones, búsquedas con filtro, aperturas de contacto, envíos de leads).
as24ci_search_agentsAS24CI\Search_Agentas24ci_search_agent_db_versionSuscripciones de alertas de búsqueda de visitantes (Smart Stock Alerts).
as24ci_content_studio_jobsAS24CI\Content_Studio_Repositoryas24ci_content_studio_db_versionUna fila por tarea de generación de Content Studio.
as24ci_content_studio_assetsAS24CI\Content_Studio_Repositoryas24ci_content_studio_db_versionRecursos generados de Content Studio, vinculados a una tarea por job_id.

as24_vehicles (repositorio de vehículos)

Contiene una fila por vehículo, vinculada a su entrada as24ci_car mediante post_id. La columna as24_id contiene el identificador de anuncio de AutoScout24. Ambas columnas tienen índices únicos. Las columnas destacadas incluyen make, model, version_full_name, condition_type, body_type, fuel_type, transmission_type, drive_type, color_exterior, color_interior, mileage, cubic_capacity, range_km, first_registration, power_kw, power_hp, co2_emission, price, list_price, currency, emission_standard, energy_label, battery_capacity, vin, status, is_live, had_accident, equipment_codes, equipment_standard, equipment_optional, images, raw_data, manual_overrides, content_hash, imported_at, updated_at.

Los índices incluyen claves únicas en as24_id y post_id, además de índices secundarios en make/model, price, mileage, first_reg_year, fuel_type/condition_type, status/is_live y content_hash. Consulte Database Schema para ver la lista completa de columnas y tipos.

as24ci_analytics (eventos de analítica)

Almacena una fila por evento rastreado. Columnas: id, post_id (0 para eventos globales), event_type, extra_data (JSON opcional), created_at. Los índices cubren (post_id, event_type, created_at), (event_type, created_at) y created_at. Las inserciones solo ocurren cuando la analítica está habilitada. Una tarea de retención diaria se ejecuta a través del gancho de cron as24ci_daily_cleanup y elimina las filas más antiguas que la ventana de retención configurada.

as24ci_search_agents (Smart Stock Alerts)

Almacena las suscripciones de los visitantes. Columnas: id, name, email, criteria, token, frequency, status (pending, active, inactive, paused), created_at, confirmed_at. Los índices cubren status y token. Debido a que la tabla contiene datos personales, se elimina al desinstalar independientemente de la configuración de limpieza.

as24ci_content_studio_jobs (tareas de Content Studio)

Almacena una fila por tarea de generación de Content Studio. Las columnas incluyen id, vehicle_post_id, vehicle_snapshot_hash, content_type, platform_preset, output_format, preset_key, status (draft, queued, processing, ready, failed), prompt_payload, provider, model, language, tone, attempts, last_error, created_by, created_at, updated_at, started_at, completed_at. Los índices cubren vehicle_post_id, (status, created_at), platform_preset y content_type.

as24ci_content_studio_assets (recursos de Content Studio)

Almacena los recursos generados vinculados a una tarea por job_id. Las columnas incluyen id, job_id, vehicle_post_id, asset_type, file_path, file_url, mime_type, file_size, width, height, duration_seconds, caption, hashtags, alt_text, thumbnail_path, payload_json, scheduled_at, schedule_status (unscheduled, scheduled), created_at. Los índices cubren job_id, vehicle_post_id, asset_type, created_at, schedule_status y scheduled_at.

Tipos de contenido personalizados

Tipo de contenidoPúblicoTiene archivoAlmacenado enPropósito
as24ci_carwp_posts, wp_postmeta (ancla) + tabla personalizada {prefix}as24_vehicles (datos de campos)Vehículos importados. Vinculado uno a uno con una fila en as24_vehicles por post_id.
as24ci_leadNoNowp_posts, wp_postmetaEnvíos de formularios de contacto y solicitudes de prueba de conducción.

Las ubicaciones de los concesionarios no son un tipo de contenido personalizado. Se almacenan como un único array en la opción as24ci_locations de WordPress y se renderizan a través de los shortcodes de ubicación/horarios de apertura.

Las taxonomías de as24ci_car y los campos de vehículos más utilizados se duplican en los metadatos de la entrada con el prefijo _as24ci_ para garantizar la compatibilidad con el tema (por ejemplo, _as24ci_listing_id, _as24ci_make, _as24ci_model, _as24ci_price, _as24ci_mileage, _as24ci_image_ids, _as24ci_manual_image_ids).

Las entradas de as24ci_lead contienen claves meta como _as24ci_lead_name, _as24ci_lead_email, _as24ci_lead_phone, _as24ci_lead_message, _as24ci_lead_vehicle_id, _as24ci_lead_vehicle_title, _as24ci_lead_date, _as24ci_lead_is_test_drive, _as24ci_lead_appointment_date, _as24ci_lead_status.

Taxonomías de vehículos

El plugin registra 15 taxonomías de atributos de vehículos, todas asociadas a as24ci_car:

  • Marca
  • Modelo
  • Tipo de carrocería
  • Estado
  • Tipo de combustible
  • Transmisión
  • Tracción
  • Color exterior
  • Color interior
  • Normativa de emisiones
  • Etiqueta energética
  • Categoría del vehículo
  • Disposición de los cilindros
  • Tipo de garantía
  • Detalles de la garantía

Verifique los slugs exactos en AS24CI\Taxonomies (consulte Custom Post Types And Taxonomies) antes de publicar código que dependa de las taxonomías.

Tablas principales de WordPress utilizadas

El plugin no modifica el esquema de las tablas principales de WordPress. Las utiliza de la siguiente manera:

  • wp_posts — almacena los tipos de contenido as24ci_car y as24ci_lead. (Las ubicaciones no son un tipo de contenido; residen en la opción as24ci_locations).
  • wp_postmeta — almacena los metadatos de la entrada para compatibilidad con versiones anteriores y el estado de los leads.
  • wp_terms, wp_term_taxonomy, wp_term_relationships — almacenan las 15 taxonomías de vehículos.
  • wp_options — almacena todos los ajustes del plugin, los marcadores de versión del esquema y los IDs de las páginas creadas durante la activación.
  • wp_users y wp_usermeta — se utilizan indirectamente a través de las capacidades de WordPress y los metadatos de usuario del perfil del concesionario.

Capacidades y roles

El plugin gestiona un conjunto de capacidades personalizadas almacenadas en wp_user_roles (la opción estándar de WordPress):

  • Rol personalizado: as24ci_editor.
  • Capacidades personalizadas: el conjunto de capacidades as24ci_car y as24ci_cars, además de la capacidad de gestión del plugin manage_as24_imports.

Transients

Se utilizan para cachés de corta duración y bloqueos entre peticiones.

TransientTTL (aprox.)Propósito
as24ci_cron_import_running~40 minBloqueo de ejecución única para el ejecutor de importación.
as24ci_image_queue_running~10 minBloqueo de ejecución única para el procesador de la cola de imágenes.
as24ci_batch_queuen/aCarga útil de la cola de lotes pendientes para el Batch-Wizard.
as24ci_access_tokenExpiración del tokenCaché del token de acceso OAuth.
as24ci_gemini_modelsEspecífico del proveedorLista de modelos Gemini gestionados en caché.
as24ci_dashboard_page_data, as24ci_dashboard_api_status_v2n/aCachés del Dashboard.
as24ci_dw_overview, as24ci_dw_ai_monitor, as24ci_dw_performance, as24ci_dw_recent_leads, as24ci_dw_pricing_inteln/aCachés de widgets del Dashboard.
as24ci_analytics_tab_{view}n/aCachés de la pestaña de analítica.
as24ci_health_ping_{service}n/aCachés de ping de comprobación de estado.
as24ci_import_{job_id}n/aRegistro de progreso por importación.
as24ci_ai_kb_index_v1, as24ci_docs_v1_{path}, as24ci_models_cache_{hash}n/aCachés de documentación / base de conocimientos de IA.
as24ci_rate_{email}n/aLímite de frecuencia por correo electrónico del formulario de contacto.
as24ci_analytics_market_inteln/aCaché del motor de precios.

Los bloqueos obsoletos (más antiguos que el TTL) se limpian automáticamente en la siguiente ejecución.

Almacenamiento en el sistema de archivos

  • Las imágenes importadas se almacenan como adjuntos estándar de WordPress en el directorio de subidas WordPress. Se referencian desde los vehículos a través de _as24ci_image_ids.
  • Las imágenes de la galería subidas manualmente se referencian a través de _as24ci_manual_image_ids. El desinstalador nunca las elimina automáticamente.
  • Los logs del plugin se escriben en un archivo de registro gestionado por el plugin con rotación automática al alcanzar un límite de 10 MB. La ruta exacta se muestra en la pestaña de administración Logs.

Comportamiento al desinstalar

uninstall.php siempre:

  • Elimina las cinco tablas personalizadas ({prefix}as24_vehicles, {prefix}as24ci_analytics, {prefix}as24ci_search_agents, {prefix}as24ci_content_studio_jobs, {prefix}as24ci_content_studio_assets).
  • Elimina las opciones de versión de esquema correspondientes.
  • Elimina el bloqueo de importación y los transients del token OAuth.
  • Limpia los eventos de cron programados del plugin.

Se eliminan solo cuando as24ci_delete_data_on_uninstall es '1':

  • Todas las entradas de as24ci_car.
  • Todas las entradas de as24ci_lead.
  • Los archivos adjuntos importados referenciados en _as24ci_image_ids.
  • Las páginas cuyos IDs están almacenados en as24ci_page_archive_id, as24ci_page_compare_id y as24ci_page_favorites_id.

Nunca se eliminan automáticamente:

  • Las imágenes subidas manualmente referenciadas en _as24ci_manual_image_ids.
  • Los metadatos del perfil de usuario del concesionario (las claves de metadatos de usuario as24ci_seller_*).

En instalaciones multisitio, se aplica la misma lógica para cada sitio.

Notas operativas

  • Las actualizaciones de esquema son idempotentes. Cada clase propietaria comprueba su opción de versión de esquema y sale rápidamente si la tabla ya coincide con la versión esperada.
  • Existen consultas directas de wpdb contra las tablas personalizadas en las rutas de código del repositorio, analítica, agente de búsqueda y desinstalación. El código personalizado que omita el repositorio debe tratar el esquema como parte del contrato interno del plugin.
  • Trate las columnas raw_data, equipment_* y images como blobs opacos y acceda a ellos a través de los ayudantes del repositorio cuando sea posible.

Documentos relacionados