a42647c6fe
Шаг 2 «Конкурентного поля»: один номер встречается в нескольких местах — код сайта плюс карточки 2ГИС/Яндекс с разными адресами. Раньше хранилось одно provenance_url/label — список терялся. Теперь сквозной провод движок→контракт→джоб→БД→API; фронт уже умел показывать кликабельным списком с подтверждениями. - autopodbor_sources +3 колонки where_found/office/confirmations миграция 2026_06_30_120000, идемпотентная, RLS-review APPROVE 7/7 - canon-sync schema.sql v8.59 плюс CHANGELOG, вкл. catch-up phone_type/box 29.06 - тесты бэкенда автоподбора 122/122 НЕ на проде, воркстри avtopodbor. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
13 lines
646 B
PHP
13 lines
646 B
PHP
<?php
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
it('создаёт autopodbor_sources', function () {
|
|
expect(DB::getSchemaBuilder()->hasTable('autopodbor_sources'))->toBeTrue();
|
|
expect(DB::getSchemaBuilder()->hasColumns('autopodbor_sources', [
|
|
'id','tenant_id','competitor_id','study_run_id','signal_type','identifier',
|
|
'phone_kind','provenance_url','provenance_label','dedup_key','created_project_id','created_at',
|
|
// §14: богатый провенанс — список «где нашли», офис, число подтверждений
|
|
'where_found','office','confirmations',
|
|
]))->toBeTrue();
|
|
});
|