<?php

namespace App\Enums;

use App\Enums\Traits\HasLabels;

/**
 * @OA\Schema(
 *   schema="OrderedSongStatus",
 *   type="string",
 *   enum={"NotPlayed", "Playing", "Played", "NoFile", "Skipped", "InsertPlayback"},
 *   example="NotPlayed"
 * )
 */
enum OrderedSongStatus: string
{
    case NotPlayed       = 'NotPlayed';
    case Playing         = 'Playing';
    case Played          = 'Played';
    case NoFile          = 'NoFile';
    case Skipped         = 'Skipped';
    case InsertPlayback  = 'InsertPlayback';

    public function labels(): string
    {
        return match($this) {
            self::NotPlayed     => __('enums.NotPlayed'),
            self::Playing       => __('enums.Playing'),
            self::Played        => __('enums.Played'),
            self::NoFile        => __('enums.NoFile'),
            self::Skipped       => __('enums.Skipped'),
            self::InsertPlayback => __('enums.InsertPlayback'),
        };
    }
}