addSql('ALTER TABLE policies ADD specificity SMALLINT DEFAULT 0 NOT NULL'); // قانون‌های موجود باید همان عددی را بگیرند که تا امروز در زمان اجرا حساب می‌شد، // وگرنه همه با صفر می‌مانند و ترتیب حل تناقض یک‌شبه عوض می‌شود. $this->addSql(<<<'SQL' UPDATE policies SET specificity = (CASE WHEN address_id IS NOT NULL THEN 8 ELSE 0 END) + (CASE WHEN service_item_id IS NOT NULL THEN 4 ELSE 0 END) + (CASE WHEN catalog_category_id IS NOT NULL THEN 2 ELSE 0 END) + COALESCE(JSON_LENGTH(condition_json, '$.conditions'), 0) SQL); } public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->addSql('ALTER TABLE policies DROP specificity'); } }