Files
portal-api/app/Enums/Domain/DomainProvisioningStatus.php
baodev0 dfb926055d Add feature tests for domain order management
- Implement AdminDomainOrderTest to cover admin functionalities for domain orders including listing, confirming registration, KYC updates, activation, rejection, and refunds.
- Implement ClientDomainOrderTest to cover client functionalities for placing domain orders, including validation for balance, duplicate orders, and domain normalization.
- Ensure proper handling of domain pricing and service statuses throughout the tests.
2026-07-10 14:16:35 +07:00

39 lines
1.4 KiB
PHP

<?php
namespace App\Enums\Domain;
enum DomainProvisioningStatus: string
{
case PENDING = 'pending';
case REGISTRAR_CREATED = 'registrar_created';
case PENDING_KYC = 'pending_kyc';
case ACTIVE = 'active';
case CANCELLED = 'cancelled';
case REFUNDED = 'refunded';
public function label(): string
{
return match ($this) {
self::PENDING => 'Chờ xử lý',
self::REGISTRAR_CREATED => 'Đã tạo tại nhà đăng ký',
self::PENDING_KYC => 'Chờ xác minh KYC',
self::ACTIVE => 'Đang hoạt động',
self::CANCELLED => 'Đã hủy',
self::REFUNDED => 'Đã hoàn tiền',
};
}
/** Valid forward transitions. */
public function canTransitionTo(self $next): bool
{
return match ($this) {
self::PENDING => in_array($next, [self::REGISTRAR_CREATED, self::PENDING_KYC, self::REFUNDED]),
self::REGISTRAR_CREATED => in_array($next, [self::PENDING_KYC, self::ACTIVE, self::CANCELLED]),
self::PENDING_KYC => in_array($next, [self::ACTIVE, self::CANCELLED]),
self::ACTIVE => in_array($next, [self::CANCELLED]),
self::CANCELLED,
self::REFUNDED => false,
};
}
}