diff --git a/includes/hivepress/adapters/class-tmdo-hivepress-bookings-adapter.php b/includes/hivepress/adapters/class-tmdo-hivepress-bookings-adapter.php index 52e1967..60cfaa1 100644 --- a/includes/hivepress/adapters/class-tmdo-hivepress-bookings-adapter.php +++ b/includes/hivepress/adapters/class-tmdo-hivepress-bookings-adapter.php @@ -10,7 +10,8 @@ * * start_time / end_time → unix timestamp range queries (hot) * status → enum filter (hot) - * guests → numeric count (hot for slot-availability) + * quantity → places booked, hp_quantity (hot for slot-availability; + * only written when "Allow multiple places" is on) * listing → post_parent (already a posts column) * * Hot-zone target: `wp_wpdo_hot_hp_booking` with covering indexes on @@ -91,10 +92,10 @@ if ( ! class_exists( 'TMDO_HivePress_Bookings_Adapter' ) ) { ), array( 'post_type' => 'hp_booking', - 'meta_key' => 'hp_guests', + 'meta_key' => 'hp_quantity', 'zone' => 'hot', 'data_type' => 'int(11) NOT NULL DEFAULT 0', - 'column' => 'hp_guests', + 'column' => 'hp_quantity', 'indexed' => false, ), ) diff --git a/tests/unit/BookingsAdapterTest.php b/tests/unit/BookingsAdapterTest.php index 155603d..b0bd684 100644 --- a/tests/unit/BookingsAdapterTest.php +++ b/tests/unit/BookingsAdapterTest.php @@ -46,6 +46,18 @@ class HivePressBookingsAdapterTest extends TestCase { $this->assertTrue( (bool) $end['indexed'] ); } + public function test_on_register_fields_uses_real_booking_meta_keys(): void { + $registry = WPDO_Schema_Registry::instance(); + $this->adapter->on_register_fields( $registry ); + + // hivepress-bookings has no guests field; places are stored as hp_quantity. + $this->assertNull( $registry->get_field( 'hp_booking', 'hp_guests' ) ); + + $quantity = $registry->get_field( 'hp_booking', 'hp_quantity' ); + $this->assertNotNull( $quantity ); + $this->assertSame( 'hot', $quantity['zone'] ); + } + public function test_score_reflects_unverified_perf_dimension(): void { $score = $this->adapter->suitability_score(); // D8 reduced to 0.9 because schema is best-effort until addon installs.