| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- <?php
- namespace App\Enums;
- use App\Traits\EnumHelper;
- enum IdentityVerificationStatusEnum: string
- {
- use EnumHelper;
- case NOT_STARTED = 'not_started';
- case PENDING = 'pending';
- case APPROVED = 'approved';
- case IN_REVIEW = 'in_review';
- case DECLINED = 'declined';
- case EXPIRED = 'expired';
- public static function fromDidit(string $diditStatus): self
- {
- return match ($diditStatus) {
- 'Approved' => self::APPROVED,
- 'Declined' => self::DECLINED,
- 'In Review', 'Resubmitted' => self::IN_REVIEW,
- 'Not Started', 'In Progress',
- 'Awaiting User' => self::PENDING,
- 'Abandoned', 'Expired' => self::NOT_STARTED,
- 'Kyc Expired' => self::EXPIRED,
- default => self::PENDING,
- };
- }
- public static function diditTerminalStatuses(): array
- {
- return ['Approved', 'Declined', 'In Review', 'Abandoned'];
- }
- public function isFinished(): bool
- {
- return in_array($this, [self::APPROVED, self::DECLINED, self::IN_REVIEW], true);
- }
- public function allowsNewAttempt(): bool
- {
- return in_array($this, [self::NOT_STARTED, self::DECLINED, self::EXPIRED], true);
- }
- public function label(): string
- {
- return match ($this) {
- self::NOT_STARTED => __('identity_verification.status.not_started'),
- self::PENDING => __('identity_verification.status.pending'),
- self::APPROVED => __('identity_verification.status.approved'),
- self::IN_REVIEW => __('identity_verification.status.in_review'),
- self::DECLINED => __('identity_verification.status.declined'),
- self::EXPIRED => __('identity_verification.status.expired'),
- };
- }
- }
|