| @@ -44,9 +44,8 @@ | ||
| 44 | 44 | * Carries the stored object_types AND the live-row predicate |
| 45 | 45 | * name on Digest_Index, so the reader, the proxy stamper and |
| 46 | 46 | * the authoritative-absence answer all read one id-space fact |
| 47 | 47 | * instead of each re-deciding it. |
| 48 | - * - repair — explicit drill_down/self_heal support, with a reason for nulls. | |
| 49 | 48 | * - fingerprint — UNIVERSAL config-change detection membership; every |
| 50 | 49 | * collection carries it (null is invalid), with the barcode |
| 51 | 50 | * flag naming recipe membership. The contract-version lever |
| 52 | 51 | * itself lives in Config_Fingerprint::PAYLOAD_CONTRACT_VERSION, |
| @@ -83,23 +82,11 @@ | ||
| 83 | 82 | 'write' => array( 'route' => '/wc/v3/products' ), |
| 84 | 83 | 'journal' => array( 'object_type' => 'product' ), |
| 85 | 84 | 'digest' => array( |
| 86 | 85 | 'id_space' => 'products', |
| 87 | - 'label' => '', | |
| 88 | 86 | 'object_types' => array( 'product', 'variation' ), |
| 89 | - 'child_type' => 'variation', | |
| 90 | - 'select' => 'row_digest_select_sql', | |
| 91 | - 'id_column' => 'p.ID', | |
| 92 | - 'live_max' => 'product_live_max_id_sql', | |
| 93 | - 'servable' => 'servable_product_ids', | |
| 94 | - 'published_ids' => 'published_product_ids', | |
| 95 | 87 | 'live_rows' => 'live_row_exists_sql', |
| 96 | 88 | ), |
| 97 | - 'repair' => array( | |
| 98 | - 'drill_down' => true, | |
| 99 | - 'self_heal' => true, | |
| 100 | - 'reason' => 'Products support drill-down and automatic repair, including variations in their shared id-space.', | |
| 101 | - ), | |
| 102 | 89 | 'fingerprint' => array( 'barcode' => true ), |
| 103 | 90 | 'backfill' => array( |
| 104 | 91 | 'kind' => 'post', |
| 105 | 92 | 'scan_post_types' => array( 'product', 'product_variation' ), |
| @@ -124,13 +111,8 @@ | ||
| 124 | 111 | // takes the parent from create payloads and the stored object thereafter. |
| 125 | 112 | 'write' => array( 'route' => '/wc/v3/products' ), |
| 126 | 113 | 'journal' => array( 'object_type' => 'variation' ), |
| 127 | 114 | 'digest' => null, // folded into the products id-space (owner row carries it) |
| 128 | - 'repair' => array( | |
| 129 | - 'drill_down' => null, | |
| 130 | - 'self_heal' => null, | |
| 131 | - 'reason' => 'Variations are repaired through the products id-space.', | |
| 132 | - ), | |
| 133 | 115 | 'fingerprint' => array( 'barcode' => true ), |
| 134 | 116 | 'backfill' => array( |
| 135 | 117 | 'kind' => 'post', |
| 136 | 118 | 'scan_post_types' => array( 'product', 'product_variation' ), |
| @@ -153,20 +135,11 @@ | ||
| 153 | 135 | 'write' => array( 'route' => '/wc/v3/orders' ), |
| 154 | 136 | 'journal' => array( 'object_type' => 'order' ), // orders consume the journal via the payload-windowed pull lane, catalogue via the pointer stream |
| 155 | 137 | 'digest' => array( |
| 156 | 138 | 'id_space' => 'orders', |
| 157 | - 'label' => 'order ', | |
| 158 | 139 | 'object_types' => array( 'order' ), |
| 159 | - 'select' => 'order_digest_select_sql', | |
| 160 | - 'id_column' => '{id}', | |
| 161 | - 'live_max' => 'order_live_max_id_sql', | |
| 162 | 140 | 'live_rows' => 'order_live_row_exists_sql', |
| 163 | 141 | ), |
| 164 | - 'repair' => array( | |
| 165 | - 'drill_down' => null, | |
| 166 | - 'self_heal' => null, | |
| 167 | - 'reason' => 'Detection is available; drill-down and automatic repair are not implemented.', | |
| 168 | - ), | |
| 169 | 142 | 'fingerprint' => array( 'barcode' => false ), |
| 170 | 143 | 'backfill' => array( 'kind' => 'order' ), |
| 171 | 144 | ), |
| 172 | 145 | 'customers' => array( |
| @@ -186,20 +159,11 @@ | ||
| 186 | 159 | 'write' => array( 'route' => '/wc/v3/customers' ), |
| 187 | 160 | 'journal' => array( 'object_type' => 'customer' ), |
| 188 | 161 | 'digest' => array( |
| 189 | 162 | 'id_space' => 'customers', |
| 190 | - 'label' => 'customer ', | |
| 191 | 163 | 'object_types' => array( 'customer' ), |
| 192 | - 'select' => 'customer_digest_select_sql', | |
| 193 | - 'id_column' => 'u.ID', | |
| 194 | - 'live_max' => 'customer_live_max_id_sql', | |
| 195 | 164 | 'live_rows' => 'customer_live_row_exists_sql', |
| 196 | 165 | ), |
| 197 | - 'repair' => array( | |
| 198 | - 'drill_down' => null, | |
| 199 | - 'self_heal' => null, | |
| 200 | - 'reason' => 'Detection is available; drill-down and automatic repair are not implemented.', | |
| 201 | - ), | |
| 202 | 166 | 'fingerprint' => array( 'barcode' => false ), |
| 203 | 167 | 'backfill' => array( 'kind' => 'user' ), |
| 204 | 168 | ), |
| 205 | 169 | 'categories' => array( |
| @@ -219,13 +183,8 @@ | ||
| 219 | 183 | ), |
| 220 | 184 | 'write' => array( 'route' => '/wc/v3/products/categories' ), |
| 221 | 185 | 'journal' => array( 'object_type' => 'category' ), |
| 222 | 186 | 'digest' => null, |
| 223 | - 'repair' => array( | |
| 224 | - 'drill_down' => null, | |
| 225 | - 'self_heal' => null, | |
| 226 | - 'reason' => 'No digest id-space is implemented for this collection.', | |
| 227 | - ), | |
| 228 | 187 | 'fingerprint' => array( 'barcode' => false ), |
| 229 | 188 | 'backfill' => array( |
| 230 | 189 | 'kind' => 'term', |
| 231 | 190 | 'taxonomy' => 'product_cat', |
| @@ -248,13 +207,8 @@ | ||
| 248 | 207 | ), |
| 249 | 208 | 'write' => array( 'route' => '/wc/v3/products/brands' ), |
| 250 | 209 | 'journal' => array( 'object_type' => 'brand' ), |
| 251 | 210 | 'digest' => null, |
| 252 | - 'repair' => array( | |
| 253 | - 'drill_down' => null, | |
| 254 | - 'self_heal' => null, | |
| 255 | - 'reason' => 'No digest id-space is implemented for this collection.', | |
| 256 | - ), | |
| 257 | 211 | 'fingerprint' => array( 'barcode' => false ), |
| 258 | 212 | 'backfill' => array( |
| 259 | 213 | 'kind' => 'term', |
| 260 | 214 | 'taxonomy' => 'product_brand', |
| @@ -277,13 +231,8 @@ | ||
| 277 | 231 | ), |
| 278 | 232 | 'write' => null, // read-only: no client push path exists |
| 279 | 233 | 'journal' => array( 'object_type' => 'tag' ), |
| 280 | 234 | 'digest' => null, |
| 281 | - 'repair' => array( | |
| 282 | - 'drill_down' => null, | |
| 283 | - 'self_heal' => null, | |
| 284 | - 'reason' => 'No digest id-space is implemented for this collection.', | |
| 285 | - ), | |
| 286 | 235 | 'fingerprint' => array( 'barcode' => false ), |
| 287 | 236 | 'backfill' => array( |
| 288 | 237 | 'kind' => 'term', |
| 289 | 238 | 'taxonomy' => 'product_tag', |
| @@ -306,13 +255,8 @@ | ||
| 306 | 255 | ), |
| 307 | 256 | 'write' => array( 'route' => '/wc/v3/coupons' ), |
| 308 | 257 | 'journal' => array( 'object_type' => 'coupon' ), |
| 309 | 258 | 'digest' => null, |
| 310 | - 'repair' => array( | |
| 311 | - 'drill_down' => null, | |
| 312 | - 'self_heal' => null, | |
| 313 | - 'reason' => 'No digest id-space is implemented for this collection.', | |
| 314 | - ), | |
| 315 | 259 | 'fingerprint' => array( 'barcode' => false ), |
| 316 | 260 | 'backfill' => array( |
| 317 | 261 | 'kind' => 'post', |
| 318 | 262 | 'scan_post_types' => array( 'shop_coupon' ), |
| @@ -329,13 +273,8 @@ | ||
| 329 | 273 | ), |
| 330 | 274 | 'write' => null, // principled read-only |
| 331 | 275 | 'journal' => array( 'object_type' => 'tax_rate' ), |
| 332 | 276 | 'digest' => null, |
| 333 | - 'repair' => array( | |
| 334 | - 'drill_down' => null, | |
| 335 | - 'self_heal' => null, | |
| 336 | - 'reason' => 'No digest id-space is implemented for this collection.', | |
| 337 | - ), | |
| 338 | 277 | 'fingerprint' => array( 'barcode' => false ), |
| 339 | 278 | 'backfill' => null, // no meta store to stamp |
| 340 | 279 | ), |
| 341 | 280 | ); |