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:
- 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.
- Tipos de contenido personalizados para vehículos, leads y ubicaciones, almacenados en
wp_postsywp_postmeta. - Taxonomías personalizadas almacenadas en
wp_terms,wp_term_taxonomyywp_term_relationships. - Opciones de WordPress en
wp_options(todas con el prefijoas24ci_). Consulte la Referencia de ajustes. - 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 tabla | Propietario | Opción de versión de esquema | Propósito |
|---|---|---|---|
as24_vehicles | AS24CI\Vehicle_Repository | as24ci_vehicles_db_version | Una fila por vehículo importado, indexada para consultas de archivo. |
as24ci_analytics | AS24CI\Analytics | as24ci_analytics_db_version | Eventos de analítica (visualizaciones, búsquedas con filtro, aperturas de contacto, envíos de leads). |
as24ci_search_agents | AS24CI\Search_Agent | as24ci_search_agent_db_version | Suscripciones de alertas de búsqueda de visitantes (Smart Stock Alerts). |
as24ci_content_studio_jobs | AS24CI\Content_Studio_Repository | as24ci_content_studio_db_version | Una fila por tarea de generación de Content Studio. |
as24ci_content_studio_assets | AS24CI\Content_Studio_Repository | as24ci_content_studio_db_version | Recursos 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 contenido | Público | Tiene archivo | Almacenado en | Propósito |
|---|---|---|---|---|
as24ci_car | Sí | Sí | wp_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_lead | No | No | wp_posts, wp_postmeta | Enví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 contenidoas24ci_caryas24ci_lead. (Las ubicaciones no son un tipo de contenido; residen en la opciónas24ci_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_usersywp_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_caryas24ci_cars, además de la capacidad de gestión del pluginmanage_as24_imports.
Transients
Se utilizan para cachés de corta duración y bloqueos entre peticiones.
| Transient | TTL (aprox.) | Propósito |
|---|---|---|
as24ci_cron_import_running | ~40 min | Bloqueo de ejecución única para el ejecutor de importación. |
as24ci_image_queue_running | ~10 min | Bloqueo de ejecución única para el procesador de la cola de imágenes. |
as24ci_batch_queue | n/a | Carga útil de la cola de lotes pendientes para el Batch-Wizard. |
as24ci_access_token | Expiración del token | Caché del token de acceso OAuth. |
as24ci_gemini_models | Específico del proveedor | Lista de modelos Gemini gestionados en caché. |
as24ci_dashboard_page_data, as24ci_dashboard_api_status_v2 | n/a | Cachés del Dashboard. |
as24ci_dw_overview, as24ci_dw_ai_monitor, as24ci_dw_performance, as24ci_dw_recent_leads, as24ci_dw_pricing_intel | n/a | Cachés de widgets del Dashboard. |
as24ci_analytics_tab_{view} | n/a | Cachés de la pestaña de analítica. |
as24ci_health_ping_{service} | n/a | Cachés de ping de comprobación de estado. |
as24ci_import_{job_id} | n/a | Registro de progreso por importación. |
as24ci_ai_kb_index_v1, as24ci_docs_v1_{path}, as24ci_models_cache_{hash} | n/a | Cachés de documentación / base de conocimientos de IA. |
as24ci_rate_{email} | n/a | Límite de frecuencia por correo electrónico del formulario de contacto. |
as24ci_analytics_market_intel | n/a | Caché 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_idyas24ci_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
wpdbcontra 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_*yimagescomo blobs opacos y acceda a ellos a través de los ayudantes del repositorio cuando sea posible.