Skip to content

Enums

All enums in the package use the HasLabels trait, providing bilingual labels (English and Greek) for each value.

Using Enums

php
use OxygenSuite\OxygenErgani\Enums\Sex;

// Get value
$value = Sex::MALE->value;  // 0

// Get English label
$label = Sex::MALE->label();  // "Male"

// Get Greek label
$labelGreek = Sex::MALE->labelGreek();  // "Άνδρας"

// Get all labels for dropdowns
$labels = Sex::labels();       // ['0' => 'Male', '1' => 'Female']
$labelsGr = Sex::labelsGreek(); // ['0' => 'Άνδρας', '1' => 'Γυναίκα']

Filtered Dropdowns

Some enums like WorkTimeType have category helper methods. Use labelsFor() to create dropdowns from subsets:

php
use OxygenSuite\OxygenErgani\Enums\WorkTimeType;

// Get dropdown for schedule types (work + rest)
$scheduleDropdown = WorkTimeType::labelsFor(WorkTimeType::schedule(), 'greek');

// Get dropdown for all leave types
$leaveDropdown = WorkTimeType::labelsFor(WorkTimeType::leaves(), 'greek');

Available Enums

By Category

CategoryEnums
Personal InformationSex, MaritalStatus
EmploymentEmploymentStatus, WorkerType, EmploymentType, WorkLocation, ResponsiblePosition, IndividualContract, SpecialCase
Work TimeWorkTimeType, WorkCardDelayReason, CardDetailType, DayOfWeek, WeekDays
Loan/BorrowingLoanType, SalaryPaymentSource
TerminationFixedTermTerminationReason, NoticePeriodMonths
AdministrativeBasicsAcceptance, SettlementType, UserType, Environment

HasLabels Trait

The HasLabels trait provides:

MethodReturnsDescription
label()stringEnglish label for this case
labelGreek()stringGreek label for this case
labels()arrayAll English labels [value => label]
labelsGreek()arrayAll Greek labels [value => label]
labelsFor(array $cases, string $locale)arrayLabels for subset of cases

Note

HasLabels only works with backed enums (not pure enums like Environment).

See Also

  • Guide - Usage guides for each document type
  • Responses - Response classes

Released under the MIT License.