feat: add domain registration form and email notifications

- Create a new Blade view for domain registration (`registrant-tochuc.blade.php`) to capture organization and manager details.
- Implement email templates for new domain orders for both admin (`domain-order-new.blade.php`) and customers (`domain-order-received.blade.php`).
- Add CSV exports for client and domain data.
- Introduce tests for customer mass assignment, password reset, login throttling, and permission gating.
- Ensure service renewals use current pricing and validate ownership for virtual machines.
- Validate mass assignment behavior in service model.
This commit is contained in:
baodev0
2026-08-22 17:30:55 +07:00
parent eec2c5906e
commit c377c7e195
58 changed files with 3063 additions and 418 deletions
+31
View File
@@ -0,0 +1,31 @@
<?php
declare(strict_types=1);
namespace Tests\Unit;
use App\Models\Customer;
use App\Models\Service;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
class ServiceFillableTest extends TestCase
{
use RefreshDatabase;
public function test_service_ignores_fields_not_declared_in_fillable(): void
{
$customer = Customer::factory()->create();
$service = Service::create([
'customer_id' => $customer->id,
'server_name' => 'test-server',
'status' => 'active',
// Không nằm trong $fillable — không được set qua mass-assignment.
'legacy_id' => 999999,
]);
$this->assertSame('test-server', $service->server_name);
$this->assertNull($service->legacy_id);
}
}