<?php
declare(strict_types=1);

namespace WP_AUX\Enum;

use WP_AUX\Interfaces\OptionsEnumInterface;
use WP_AUX\Traits\EnumTraits;

enum SidebarComponentEnum: string implements OptionsEnumInterface
{
  use EnumTraits;

  case None = 'none';
  case Alert = 'alert';
  case CaptionedMedia = 'captioned-media';
  case Card = 'card';
  case ContactCard = 'contact-card';
  case DescList = 'desc-list';
  case FreeFact = 'free-fact';
  case IconList = 'icon-list';
  case LinkList = 'link-list';
  case LinkedCard = 'linked-card';
  case QaPair = 'qa-pair';
  case Testimonial = 'testimonial';

  public const SETTING_LABEL = 'Sidebar Component';

  public function label(): string
  {
    return match($this) {
      self::None => 'None',
      self::Alert => 'Alert',
      self::CaptionedMedia => 'Captioned Media',
      self::Card => 'Card',
      self::ContactCard => 'Contact Card',
      self::DescList => 'Description List',
      self::FreeFact => 'Freestanding Fact',
      self::IconList => 'Icon List',
      self::LinkList => 'Link List',
      self::LinkedCard => 'Linked Card',
      self::QaPair => 'Q&A Pair',
      self::Testimonial => 'Testimonial',
    };
  }
}
