{"slug":"havenlytics","name":"Havenlytics – Real Estate Plugin with Advanced Search, Maps & Property Builder","description":"Build modern real estate websites with property listings, AJAX search, interactive maps, Elementor widgets, and visual builders.","author":"Havenlytics","active_installs":10,"version":"3.1.5","wp_org_url":"https://wordpress.org/plugins/havenlytics/","is_closed":false,"cleanup":{"has_uninstall_hook":true,"drops_tables_on_uninstall":false,"deletes_options_on_uninstall":true},"tables":[{"table_name":"hvnly_audit_log","full_table_name":"wp_hvnly_audit_log","description":"A logging table that records activity, events, or audit history.","detection_method":"static","confidence":"high","columns":[{"name":"id","type":"bigint(20)","nullable":false,"primary_key":true},{"name":"user_id","type":"bigint(20)","nullable":true,"primary_key":false},{"name":"action","type":"varchar(100)","nullable":false,"primary_key":false},{"name":"entity_type","type":"varchar(50)","nullable":false,"primary_key":false},{"name":"entity_id","type":"bigint(20)","nullable":true,"primary_key":false},{"name":"old_value","type":"longtext","nullable":true,"primary_key":false},{"name":"new_value","type":"longtext","nullable":true,"primary_key":false},{"name":"ip_address","type":"varchar(45)","nullable":true,"primary_key":false},{"name":"user_agent","type":"text","nullable":true,"primary_key":false},{"name":"created_at","type":"datetime","nullable":true,"primary_key":false}],"create_sql":"CREATE TABLE IF NOT EXISTS wp_hvnly_audit_log ( id bigint(20) NOT NULL AUTO_INCREMENT, user_id bigint(20) DEFAULT NULL, action varchar(100) NOT NULL, entity_type varchar(50) NOT NULL, entity_id bigint(20) DEFAULT NULL, old_value longtext, new_value longtext, ip_address varchar(45) DEFAULT NULL, user_agent text, created_at datetime DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY idx_action (action), KEY idx_entity (entity_type, entity_id), KEY idx_created (created_at) ) $charset_collate;\"; // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared -- Static CREATE TABLE schema for plugin migration. // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching -- Plugin migration creates custom tables. $result3 = $wpdb->query($sql3);"},{"table_name":"hvnly_field_index","full_table_name":"wp_hvnly_field_index","description":"Stores hvnly field index data created by this plugin.","detection_method":"static","confidence":"high","columns":[{"name":"id","type":"bigint(20)","nullable":false,"primary_key":true},{"name":"property_id","type":"bigint(20)","nullable":false,"primary_key":false},{"name":"field_key","type":"varchar(100)","nullable":false,"primary_key":false},{"name":"field_value_index","type":"varchar(255)","nullable":true,"primary_key":false},{"name":"numeric_value","type":"decimal(20,6)","nullable":true,"primary_key":false},{"name":"date_value","type":"datetime","nullable":true,"primary_key":false}],"create_sql":"CREATE TABLE IF NOT EXISTS wp_hvnly_field_index ( id bigint(20) NOT NULL AUTO_INCREMENT, property_id bigint(20) NOT NULL, field_key varchar(100) NOT NULL, field_value_index varchar(255) DEFAULT NULL, numeric_value decimal(20,6) DEFAULT NULL, date_value datetime DEFAULT NULL, PRIMARY KEY (id), KEY idx_property (property_id), KEY idx_field_key (field_key), KEY idx_numeric (numeric_value) ) $charset_collate;\"; // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared -- Static CREATE TABLE schema for plugin migration. // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching -- Plugin migration creates custom tables. $result2 = $wpdb->query($sql2);"},{"table_name":"hvnly_section_cache","full_table_name":"wp_hvnly_section_cache","description":"A cache table that stores temporary computed or fetched data.","detection_method":"static","confidence":"high","columns":[{"name":"id","type":"bigint(20)","nullable":false,"primary_key":true},{"name":"section_key","type":"varchar(100)","nullable":false,"primary_key":false},{"name":"cache_data","type":"longtext","nullable":false,"primary_key":false},{"name":"cache_hash","type":"varchar(64)","nullable":false,"primary_key":false},{"name":"expires_at","type":"datetime","nullable":true,"primary_key":false},{"name":"created_at","type":"datetime","nullable":true,"primary_key":false}],"create_sql":"CREATE TABLE IF NOT EXISTS wp_hvnly_section_cache ( id bigint(20) NOT NULL AUTO_INCREMENT, section_key varchar(100) NOT NULL, cache_data longtext NOT NULL, cache_hash varchar(64) NOT NULL, expires_at datetime DEFAULT NULL, created_at datetime DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY idx_section_key (section_key), KEY idx_expires (expires_at) ) $charset_collate;\"; // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared -- Static CREATE TABLE schema for plugin migration. // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching -- Plugin migration creates custom tables. $result1 = $wpdb->query($sql1);"},{"table_name":"hvnly_webhook_queue","full_table_name":"wp_hvnly_webhook_queue","description":"A job queue table for managing background tasks and scheduled operations.","detection_method":"static","confidence":"high","columns":[{"name":"id","type":"bigint(20)","nullable":false,"primary_key":true},{"name":"webhook_url","type":"varchar(500)","nullable":false,"primary_key":false},{"name":"payload","type":"longtext","nullable":false,"primary_key":false},{"name":"attempts","type":"int","nullable":true,"primary_key":false},{"name":"max_attempts","type":"int","nullable":true,"primary_key":false},{"name":"last_error","type":"text","nullable":true,"primary_key":false},{"name":"status","type":"varchar(20)","nullable":true,"primary_key":false},{"name":"scheduled_at","type":"datetime","nullable":true,"primary_key":false},{"name":"created_at","type":"datetime","nullable":true,"primary_key":false},{"name":"processed_at","type":"datetime","nullable":true,"primary_key":false}],"create_sql":"CREATE TABLE IF NOT EXISTS wp_hvnly_webhook_queue ( id bigint(20) NOT NULL AUTO_INCREMENT, webhook_url varchar(500) NOT NULL, payload longtext NOT NULL, attempts int DEFAULT 0, max_attempts int DEFAULT 3, last_error text, status varchar(20) DEFAULT 'pending', scheduled_at datetime DEFAULT NULL, created_at datetime DEFAULT CURRENT_TIMESTAMP, processed_at datetime DEFAULT NULL, PRIMARY KEY (id), KEY idx_status (status), KEY idx_scheduled (scheduled_at) ) $charset_collate;\"; // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared -- Static CREATE TABLE schema for plugin migration. // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching -- Plugin migration creates custom tables. $result4 = $wpdb->query($sql4);"}],"table_count":4}