Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
28 / 28
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
SectorEnum
100.00% covered (success)
100.00%
28 / 28
100.00% covered (success)
100.00%
2 / 2
2
100.00% covered (success)
100.00%
1 / 1
 label
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
1
 allowedAccessLevels
100.00% covered (success)
100.00%
23 / 23
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace Domain\Shared\Enums;
4
5use Domain\User\Enums\AccessLevel;
6
7enum SectorEnum: int
8{
9    /**
10     * Nenhum
11     */
12    case NONE = 0;
13
14    /**
15     * Almoxarifado
16     */
17    case WAREHOUSE = 1;
18
19    /**
20     * Expedição
21     */
22    case EXPEDITION = 2;
23
24    /**
25     * Conferência
26     */
27    case INSPECTION = 3;
28
29    public function label(): string
30    {
31        return match ($this) {
32            self::EXPEDITION => __('Expedition'),
33            self::WAREHOUSE => __('Warehouse'),
34            self::INSPECTION => __('Inspection'),
35        };
36    }
37
38    public function allowedAccessLevels(): array
39    {
40        return match ($this) {
41            self::WAREHOUSE => [
42                AccessLevel::MASTER,
43                AccessLevel::ADMIN,
44                AccessLevel::STORER,
45                AccessLevel::SEPARATOR,
46                AccessLevel::REQUESTER,
47            ],
48            self::EXPEDITION => [
49                AccessLevel::MASTER,
50                AccessLevel::ADMIN,
51                AccessLevel::STORER,
52                AccessLevel::SEPARATOR,
53                AccessLevel::PACKER,
54                AccessLevel::INVOICER,
55            ],
56            self::INSPECTION => [
57                AccessLevel::MASTER,
58                AccessLevel::ADMIN,
59                AccessLevel::ENTRANCE,
60                AccessLevel::INSPECTOR,
61            ],
62        };
63    }
64}