<?php

namespace App\Domain\Website\Enums;

enum SectionKey: string
{
    case Hero = 'hero';
    case About = 'about';
    case Activities = 'activities';
    case Programs = 'programs';
    case Branches = 'branches';
    case Schedule = 'schedule';
    case Trainers = 'trainers';
    case Gallery = 'gallery';
    case Testimonials = 'testimonials';
    case Pricing = 'pricing';
    case Partners = 'partners';
    case Contact = 'contact';
    case Faq = 'faq';
    case Cta = 'cta';
    case Stats = 'stats';
    case News = 'news';
    case Events = 'events';
    case Video = 'video';
    case CustomHtml = 'custom_html';

    public function label(): string
    {
        return match ($this) {
            self::Hero => 'البانر الرئيسي',
            self::About => 'من نحن',
            self::Activities => 'الأنشطة',
            self::Programs => 'البرامج',
            self::Branches => 'الفروع',
            self::Schedule => 'المواعيد',
            self::Trainers => 'المدربون',
            self::Gallery => 'معرض الصور',
            self::Testimonials => 'آراء العملاء',
            self::Pricing => 'الأسعار',
            self::Partners => 'شركاؤنا',
            self::Contact => 'تواصل معنا',
            self::Faq => 'الأسئلة الشائعة',
            self::Cta => 'سجل الآن',
            self::Stats => 'إنجازاتنا',
            self::News => 'الأخبار',
            self::Events => 'الأحداث والبطولات',
            self::Video => 'فيديو',
            self::CustomHtml => 'محتوى مخصص',
        };
    }

    public function icon(): string
    {
        return match ($this) {
            self::Hero => 'photo',
            self::About => 'information-circle',
            self::Activities => 'fire',
            self::Programs => 'academic-cap',
            self::Branches => 'map-pin',
            self::Schedule => 'calendar',
            self::Trainers => 'users',
            self::Gallery => 'camera',
            self::Testimonials => 'chat-bubble-left-right',
            self::Pricing => 'currency-dollar',
            self::Partners => 'building-office',
            self::Contact => 'phone',
            self::Faq => 'question-mark-circle',
            self::Cta => 'megaphone',
            self::Stats => 'chart-bar',
            self::News => 'newspaper',
            self::Events => 'trophy',
            self::Video => 'play-circle',
            self::CustomHtml => 'code-bracket',
        };
    }

    public static function defaultOrder(): array
    {
        return [
            self::Hero,
            self::About,
            self::Activities,
            self::Programs,
            self::Branches,
            self::Stats,
            self::Trainers,
            self::Gallery,
            self::Testimonials,
            self::Pricing,
            self::Partners,
            self::Faq,
            self::News,
            self::Events,
            self::Contact,
            self::Cta,
            self::Schedule,
        ];
    }
}
