Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
9 / 9
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
DocumentStatus
100.00% covered (success)
100.00%
9 / 9
100.00% covered (success)
100.00%
2 / 2
8
100.00% covered (success)
100.00%
1 / 1
 label
100.00% covered (success)
100.00%
8 / 8
100.00% covered (success)
100.00%
1 / 1
7
 isOpen
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3declare(strict_types=1);
4
5namespace ImovelZapAi\Documents\Domain\Enums;
6
7enum DocumentStatus: string
8{
9    case Draft = 'draft';
10    case Shared = 'shared';
11    case Accepted = 'accepted';
12    case Rejected = 'rejected';
13    case ChangesRequested = 'changes_requested';
14    case Expired = 'expired';
15
16    public function label(): string
17    {
18        return match ($this) {
19            self::Draft => 'Rascunho',
20            self::Shared => 'Compartilhado',
21            self::Accepted => 'Aceito',
22            self::Rejected => 'Recusado',
23            self::ChangesRequested => 'Alteração solicitada',
24            self::Expired => 'Expirado',
25        };
26    }
27
28    public function isOpen(): bool
29    {
30        return in_array($this, [self::Draft, self::Shared, self::ChangesRequested], true);
31    }
32}