Преглед на файлове

fix(tbr): allow null royalties bracket and free criteria value

royalties_bracket_id becomes nullable and the royalties_applied_criteria enum check is dropped, so a calculation without ROI charge can persist with 'nao_cobrado'.
ebagabee преди 1 месец
родител
ревизия
73f9a69f22
променени са 1 файла, в които са добавени 29 реда и са изтрити 0 реда
  1. 29 0
      database/migrations/2026_06_18_000005_relax_tbr_calculation_royalties_fields.php

+ 29 - 0
database/migrations/2026_06_18_000005_relax_tbr_calculation_royalties_fields.php

@@ -0,0 +1,29 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Schema;
+
+return new class extends Migration
+{
+    public function up(): void
+    {
+        // Quando ROI não é cobrado, o cálculo não busca faixa de royalties:
+        // o bracket pode ficar nulo e o critério passa a aceitar 'nao_cobrado'.
+        Schema::table('tbr_calculations', function (Blueprint $table) {
+            $table->foreignId('royalties_bracket_id')->nullable()->change();
+        });
+
+        DB::statement('ALTER TABLE tbr_calculations DROP CONSTRAINT IF EXISTS tbr_calculations_royalties_applied_criteria_check');
+    }
+
+    public function down(): void
+    {
+        Schema::table('tbr_calculations', function (Blueprint $table) {
+            $table->foreignId('royalties_bracket_id')->nullable(false)->change();
+        });
+
+        DB::statement("ALTER TABLE tbr_calculations ADD CONSTRAINT tbr_calculations_royalties_applied_criteria_check CHECK (royalties_applied_criteria IN ('tbr_fixo', 'percentual_faturamento'))");
+    }
+};