feat(ticket): implement terminal status management and validation

This commit is contained in:
2026-09-10 16:20:35 -03:00
parent f19bca64d0
commit de259f4286
3 changed files with 135 additions and 3 deletions

View File

@@ -12,6 +12,7 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Schema;
use Illuminate\Validation\ValidationException;
use Tests\TestCase;
class LogsValueChangesTest extends TestCase
@@ -175,6 +176,19 @@ class LogsValueChangesTest extends TestCase
'user_id' => null,
]);
}
public function test_ticket_cannot_transition_between_terminal_statuses(): void
{
$ticket = Ticket::query()->create([
'tenant_code' => 'test',
'ticket' => '794606d5-5f69-458d-9de7-03494757d626',
]);
$ticket->update(['disabled_at' => now()]);
$this->expectException(ValidationException::class);
$ticket->update(['cancelled_at' => now()]);
}
}
#[Fillable(['name', 'price', 'description'])]