<?php
if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

class BLM_Business_Types {

    public static function get_types() {
        return array(
            // ===== GENERAL =====
            'local_business' => array(
                'label'            => 'Local Business (General)',
                'schema_type'      => 'LocalBusiness',
                'category'         => 'General',
                'additional_fields' => array(),
            ),
            'organization' => array(
                'label'            => 'Organization',
                'schema_type'      => 'Organization',
                'category'         => 'General',
                'additional_fields' => array(),
            ),
            'corporation' => array(
                'label'            => 'Corporation',
                'schema_type'      => 'Corporation',
                'category'         => 'General',
                'additional_fields' => array(),
            ),

            // ===== HEALTH & BEAUTY =====
            'beauty_salon' => array(
                'label'            => 'Beauty Salon',
                'schema_type'      => 'BeautySalon',
                'category'         => 'Health & Beauty',
                'additional_fields' => array(
                    array(
                        'key'     => 'known_for',
                        'label'   => 'Specialties',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., Balayage, Keratin Treatment',
                    ),
                ),
            ),
            'day_spa' => array(
                'label'            => 'Day Spa',
                'schema_type'      => 'DaySpa',
                'category'         => 'Health & Beauty',
                'additional_fields' => array(
                    array(
                        'key'     => 'known_for',
                        'label'   => 'Specialties',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., Massage Therapy, Facials, Body Wraps',
                    ),
                ),
            ),
            'hair_salon' => array(
                'label'            => 'Hair Salon',
                'schema_type'      => 'HairSalon',
                'category'         => 'Health & Beauty',
                'additional_fields' => array(
                    array(
                        'key'     => 'known_for',
                        'label'   => 'Specialties',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., Precision Haircuts, Hair Coloring, Balayage',
                    ),
                ),
            ),
            'nail_salon' => array(
                'label'            => 'Nail Salon',
                'schema_type'      => 'NailSalon',
                'category'         => 'Health & Beauty',
                'additional_fields' => array(),
            ),
            'tattoo_parlor' => array(
                'label'            => 'Tattoo Parlor',
                'schema_type'      => 'TattooParlor',
                'category'         => 'Health & Beauty',
                'additional_fields' => array(),
            ),

            // ===== FOOD & DRINK =====
            'restaurant' => array(
                'label'            => 'Restaurant',
                'schema_type'      => 'Restaurant',
                'category'         => 'Food & Drink',
                'additional_fields' => array(
                    array(
                        'key'     => 'serves_cuisine',
                        'label'   => 'Cuisine Type(s)',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., Italian, Mediterranean, Seafood',
                    ),
                    array(
                        'key'     => 'menu_url',
                        'label'   => 'Menu URL',
                        'type'    => 'text',
                        'help'    => 'Full URL to your online menu',
                    ),
                    array(
                        'key'     => 'accepts_reservations',
                        'label'   => 'Accepts Reservations',
                        'type'    => 'checkbox',
                    ),
                ),
            ),
            'bakery' => array(
                'label'            => 'Bakery',
                'schema_type'      => 'Bakery',
                'category'         => 'Food & Drink',
                'additional_fields' => array(
                    array(
                        'key'     => 'serves_cuisine',
                        'label'   => 'Specialties',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., Artisan Breads, Wedding Cakes, French Pastries',
                    ),
                ),
            ),
            'bar_or_pub' => array(
                'label'            => 'Bar or Pub',
                'schema_type'      => 'BarOrPub',
                'category'         => 'Food & Drink',
                'additional_fields' => array(
                    array(
                        'key'     => 'serves_cuisine',
                        'label'   => 'Food/Drink Specialty',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., Craft Beer, Pub Food, Live Music',
                    ),
                ),
            ),
            'cafe' => array(
                'label'            => 'Cafe / Coffee Shop',
                'schema_type'      => 'CafeOrCoffeeShop',
                'category'         => 'Food & Drink',
                'additional_fields' => array(),
            ),
            'fast_food' => array(
                'label'            => 'Fast Food Restaurant',
                'schema_type'      => 'FastFoodRestaurant',
                'category'         => 'Food & Drink',
                'additional_fields' => array(
                    array(
                        'key'     => 'serves_cuisine',
                        'label'   => 'Cuisine Type(s)',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., Burgers, Chicken, Mexican',
                    ),
                    array(
                        'key'     => 'has_drive_through',
                        'label'   => 'Has Drive-Through',
                        'type'    => 'checkbox',
                    ),
                ),
            ),
            'ice_cream_shop' => array(
                'label'            => 'Ice Cream Shop',
                'schema_type'      => 'IceCreamShop',
                'category'         => 'Food & Drink',
                'additional_fields' => array(),
            ),
            'winery' => array(
                'label'            => 'Winery',
                'schema_type'      => 'Winery',
                'category'         => 'Food & Drink',
                'additional_fields' => array(),
            ),
            'brewery' => array(
                'label'            => 'Brewery',
                'schema_type'      => 'Brewery',
                'category'         => 'Food & Drink',
                'additional_fields' => array(),
            ),
            'distillery' => array(
                'label'            => 'Distillery',
                'schema_type'      => 'Distillery',
                'category'         => 'Food & Drink',
                'additional_fields' => array(),
            ),

            // ===== AUTOMOTIVE =====
            'auto_dealer' => array(
                'label'            => 'Auto Dealer',
                'schema_type'      => 'AutoDealer',
                'category'         => 'Automotive',
                'additional_fields' => array(
                    array(
                        'key'     => 'auto_brands',
                        'label'   => 'Vehicle Brands Sold',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., Ford, Chevrolet, Toyota',
                    ),
                ),
            ),
            'auto_repair' => array(
                'label'            => 'Auto Repair',
                'schema_type'      => 'AutoRepair',
                'category'         => 'Automotive',
                'additional_fields' => array(
                    array(
                        'key'     => 'auto_brands',
                        'label'   => 'Brands Serviced',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., All Makes, Honda, Toyota, BMW',
                    ),
                ),
            ),
            'auto_body_shop' => array(
                'label'            => 'Auto Body Shop',
                'schema_type'      => 'AutoBodyShop',
                'category'         => 'Automotive',
                'additional_fields' => array(),
            ),
            'auto_parts_store' => array(
                'label'            => 'Auto Parts Store',
                'schema_type'      => 'AutoPartsStore',
                'category'         => 'Automotive',
                'additional_fields' => array(),
            ),
            'auto_wash' => array(
                'label'            => 'Car Wash',
                'schema_type'      => 'AutoWash',
                'category'         => 'Automotive',
                'additional_fields' => array(),
            ),
            'auto_rental' => array(
                'label'            => 'Auto Rental',
                'schema_type'      => 'AutoRental',
                'category'         => 'Automotive',
                'additional_fields' => array(),
            ),
            'motorcycle_dealer' => array(
                'label'            => 'Motorcycle Dealer',
                'schema_type'      => 'MotorcycleDealer',
                'category'         => 'Automotive',
                'additional_fields' => array(),
            ),
            'motorcycle_repair' => array(
                'label'            => 'Motorcycle Repair',
                'schema_type'      => 'MotorcycleRepair',
                'category'         => 'Automotive',
                'additional_fields' => array(),
            ),
            'gas_station' => array(
                'label'            => 'Gas Station',
                'schema_type'      => 'GasStation',
                'category'         => 'Automotive',
                'additional_fields' => array(),
            ),

            // ===== HOME SERVICES =====
            'electrician' => array(
                'label'            => 'Electrician',
                'schema_type'      => 'Electrician',
                'category'         => 'Home Services',
                'additional_fields' => array(
                    array(
                        'key'     => 'service_area',
                        'label'   => 'Service Area',
                        'type'    => 'textarea',
                        'help'    => 'Enter one service area per line',
                    ),
                ),
            ),
            'plumber' => array(
                'label'            => 'Plumber',
                'schema_type'      => 'Plumber',
                'category'         => 'Home Services',
                'additional_fields' => array(
                    array(
                        'key'     => 'service_area',
                        'label'   => 'Service Area',
                        'type'    => 'textarea',
                        'help'    => 'Enter one service area per line',
                    ),
                ),
            ),
            'hvac' => array(
                'label'            => 'HVAC Business',
                'schema_type'      => 'HVACBusiness',
                'category'         => 'Home Services',
                'additional_fields' => array(
                    array(
                        'key'     => 'service_area',
                        'label'   => 'Service Area',
                        'type'    => 'textarea',
                        'help'    => 'Enter one service area per line',
                    ),
                ),
            ),
            'general_contractor' => array(
                'label'            => 'General Contractor',
                'schema_type'      => 'GeneralContractor',
                'category'         => 'Home Services',
                'additional_fields' => array(
                    array(
                        'key'     => 'service_area',
                        'label'   => 'Service Area',
                        'type'    => 'textarea',
                        'help'    => 'Enter one service area per line',
                    ),
                    array(
                        'key'     => 'known_for',
                        'label'   => 'Specializations',
                        'type'    => 'textarea',
                    ),
                ),
            ),
            'house_painter' => array(
                'label'            => 'House Painter',
                'schema_type'      => 'HousePainter',
                'category'         => 'Home Services',
                'additional_fields' => array(
                    array(
                        'key'     => 'service_area',
                        'label'   => 'Service Area',
                        'type'    => 'textarea',
                        'help'    => 'Enter one service area per line',
                    ),
                ),
            ),
            'locksmith' => array(
                'label'            => 'Locksmith',
                'schema_type'      => 'Locksmith',
                'category'         => 'Home Services',
                'additional_fields' => array(
                    array(
                        'key'     => 'service_area',
                        'label'   => 'Service Area',
                        'type'    => 'textarea',
                        'help'    => 'Enter one service area per line',
                    ),
                ),
            ),
            'moving_company' => array(
                'label'            => 'Moving Company',
                'schema_type'      => 'MovingCompany',
                'category'         => 'Home Services',
                'additional_fields' => array(
                    array(
                        'key'     => 'service_area',
                        'label'   => 'Service Area',
                        'type'    => 'textarea',
                        'help'    => 'Enter one service area per line',
                    ),
                ),
            ),
            'roofing_contractor' => array(
                'label'            => 'Roofing Contractor',
                'schema_type'      => 'RoofingContractor',
                'category'         => 'Home Services',
                'additional_fields' => array(
                    array(
                        'key'     => 'service_area',
                        'label'   => 'Service Area',
                        'type'    => 'textarea',
                        'help'    => 'Enter one service area per line',
                    ),
                ),
            ),
            'home_construction' => array(
                'label'            => 'Home & Construction Business',
                'schema_type'      => 'HomeAndConstructionBusiness',
                'category'         => 'Home Services',
                'additional_fields' => array(
                    array(
                        'key'     => 'service_area',
                        'label'   => 'Service Area',
                        'type'    => 'textarea',
                        'help'    => 'Enter one service area per line',
                    ),
                ),
            ),

            // ===== MEDICAL & HEALTH =====
            'physician' => array(
                'label'            => 'Physician',
                'schema_type'      => 'Physician',
                'category'         => 'Medical & Health',
                'additional_fields' => array(
                    array(
                        'key'     => 'medical_specialty',
                        'label'   => 'Medical Specialty',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., Family Medicine, Internal Medicine, Cardiology',
                    ),
                    array(
                        'key'     => 'available_services',
                        'label'   => 'Available Services',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., Annual Physicals, Chronic Disease Management',
                    ),
                    array(
                        'key'     => 'accepting_patients',
                        'label'   => 'Accepting New Patients',
                        'type'    => 'checkbox',
                    ),
                ),
            ),
            'dentist' => array(
                'label'            => 'Dentist',
                'schema_type'      => 'Dentist',
                'category'         => 'Medical & Health',
                'additional_fields' => array(
                    array(
                        'key'     => 'medical_specialty',
                        'label'   => 'Dental Specialty',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., General Dentistry, Cosmetic Dentistry, Orthodontics',
                    ),
                    array(
                        'key'     => 'accepting_patients',
                        'label'   => 'Accepting New Patients',
                        'type'    => 'checkbox',
                    ),
                ),
            ),
            'medical_clinic' => array(
                'label'            => 'Medical Clinic',
                'schema_type'      => 'MedicalClinic',
                'category'         => 'Medical & Health',
                'additional_fields' => array(
                    array(
                        'key'     => 'medical_specialty',
                        'label'   => 'Medical Specialty',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., Urgent Care, Primary Care, Pediatrics',
                    ),
                    array(
                        'key'     => 'available_services',
                        'label'   => 'Available Services',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., Lab Work, X-Rays, Vaccinations',
                    ),
                ),
            ),
            'hospital' => array(
                'label'            => 'Hospital',
                'schema_type'      => 'Hospital',
                'category'         => 'Medical & Health',
                'additional_fields' => array(
                    array(
                        'key'     => 'available_services',
                        'label'   => 'Available Services',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., Emergency Room, Surgery, Maternity',
                    ),
                ),
            ),
            'pharmacy' => array(
                'label'            => 'Pharmacy',
                'schema_type'      => 'Pharmacy',
                'category'         => 'Medical & Health',
                'additional_fields' => array(),
            ),
            'optician' => array(
                'label'            => 'Optician',
                'schema_type'      => 'Optician',
                'category'         => 'Medical & Health',
                'additional_fields' => array(),
            ),
            'veterinary' => array(
                'label'            => 'Veterinary Care',
                'schema_type'      => 'VeterinaryCare',
                'category'         => 'Medical & Health',
                'additional_fields' => array(
                    array(
                        'key'     => 'available_services',
                        'label'   => 'Available Services',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., Wellness Exams, Vaccinations, Surgery, Dental Care',
                    ),
                ),
            ),
            'medical' => array(
                'label'            => 'Medical Business (General)',
                'schema_type'      => 'MedicalBusiness',
                'category'         => 'Medical & Health',
                'additional_fields' => array(
                    array(
                        'key'     => 'medical_specialty',
                        'label'   => 'Medical Specialty',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., Physical Therapy, Chiropractic, Acupuncture',
                    ),
                    array(
                        'key'     => 'available_services',
                        'label'   => 'Available Services',
                        'type'    => 'textarea',
                        'help'    => 'One per line: list the main services you offer',
                    ),
                ),
            ),
            'diagnostic_lab' => array(
                'label'            => 'Diagnostic Lab',
                'schema_type'      => 'DiagnosticLab',
                'category'         => 'Medical & Health',
                'additional_fields' => array(),
            ),
            'emergency_service' => array(
                'label'            => 'Emergency Service / Urgent Care',
                'schema_type'      => 'EmergencyService',
                'category'         => 'Medical & Health',
                'additional_fields' => array(),
            ),

            // ===== PROFESSIONAL SERVICES =====
            'professional_service' => array(
                'label'            => 'Professional Service',
                'schema_type'      => 'ProfessionalService',
                'category'         => 'Professional Services',
                'additional_fields' => array(
                    array(
                        'key'     => 'service_area',
                        'label'   => 'Service Area',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., Los Angeles County, Orange County',
                    ),
                    array(
                        'key'     => 'known_for',
                        'label'   => 'Known For / Specialties',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., Consulting, Project Management',
                    ),
                ),
            ),
            'notary' => array(
                'label'            => 'Notary',
                'schema_type'      => 'Notary',
                'category'         => 'Professional Services',
                'additional_fields' => array(
                    array(
                        'key'     => 'service_area',
                        'label'   => 'Service Area',
                        'type'    => 'textarea',
                        'help'    => 'Enter one service area per line',
                    ),
                ),
            ),
            'employment_agency' => array(
                'label'            => 'Employment Agency',
                'schema_type'      => 'EmploymentAgency',
                'category'         => 'Professional Services',
                'additional_fields' => array(
                    array(
                        'key'     => 'known_for',
                        'label'   => 'Industries Served',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., Healthcare, Technology, Finance',
                    ),
                ),
            ),

            // ===== FINANCIAL SERVICES =====
            'accounting_service' => array(
                'label'            => 'Accounting Service',
                'schema_type'      => 'AccountingService',
                'category'         => 'Financial Services',
                'additional_fields' => array(
                    array(
                        'key'     => 'known_for',
                        'label'   => 'Specializations',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., Tax Preparation, Bookkeeping, Audit Services',
                    ),
                ),
            ),
            'insurance_agency' => array(
                'label'            => 'Insurance Agency',
                'schema_type'      => 'InsuranceAgency',
                'category'         => 'Financial Services',
                'additional_fields' => array(
                    array(
                        'key'     => 'known_for',
                        'label'   => 'Insurance Types',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., Auto, Home, Life, Business',
                    ),
                ),
            ),
            'bank' => array(
                'label'            => 'Bank or Credit Union',
                'schema_type'      => 'BankOrCreditUnion',
                'category'         => 'Financial Services',
                'additional_fields' => array(),
            ),
            'financial_service' => array(
                'label'            => 'Financial Service',
                'schema_type'      => 'FinancialService',
                'category'         => 'Financial Services',
                'additional_fields' => array(
                    array(
                        'key'     => 'known_for',
                        'label'   => 'Services Offered',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., Investment Planning, Retirement Planning, Wealth Management',
                    ),
                ),
            ),

            // ===== LEGAL SERVICES =====
            'attorney' => array(
                'label'            => 'Attorney',
                'schema_type'      => 'Attorney',
                'category'         => 'Legal Services',
                'additional_fields' => array(
                    array(
                        'key'     => 'known_for',
                        'label'   => 'Practice Areas',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., Family Law, Personal Injury, Criminal Defense',
                    ),
                ),
            ),
            'legal_service' => array(
                'label'            => 'Legal Service',
                'schema_type'      => 'LegalService',
                'category'         => 'Legal Services',
                'additional_fields' => array(
                    array(
                        'key'     => 'known_for',
                        'label'   => 'Services Offered',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., Document Preparation, Mediation, Paralegal Services',
                    ),
                ),
            ),

            // ===== LODGING & TRAVEL =====
            'hotel' => array(
                'label'            => 'Hotel',
                'schema_type'      => 'Hotel',
                'category'         => 'Lodging & Travel',
                'additional_fields' => array(
                    array(
                        'key'     => 'star_rating',
                        'label'   => 'Star Rating',
                        'type'    => 'select',
                        'options' => array( '1', '2', '3', '4', '5' ),
                        'help'    => 'Official hotel star rating',
                    ),
                    array(
                        'key'     => 'checkin_time',
                        'label'   => 'Check-in Time',
                        'type'    => 'text',
                        'help'    => 'e.g., 3:00 PM or 15:00',
                    ),
                    array(
                        'key'     => 'checkout_time',
                        'label'   => 'Check-out Time',
                        'type'    => 'text',
                        'help'    => 'e.g., 11:00 AM or 11:00',
                    ),
                    array(
                        'key'     => 'amenities',
                        'label'   => 'Amenities',
                        'type'    => 'checkboxes',
                        'options' => array( 'WiFi', 'Pool', 'Gym', 'Spa', 'Restaurant', 'Bar', 'Room Service', 'Parking', 'Pet Friendly', 'Airport Shuttle', 'Business Center', 'Wheelchair Accessible' ),
                    ),
                ),
            ),
            'motel' => array(
                'label'            => 'Motel',
                'schema_type'      => 'Motel',
                'category'         => 'Lodging & Travel',
                'additional_fields' => array(
                    array(
                        'key'     => 'checkin_time',
                        'label'   => 'Check-in Time',
                        'type'    => 'text',
                    ),
                    array(
                        'key'     => 'checkout_time',
                        'label'   => 'Check-out Time',
                        'type'    => 'text',
                    ),
                    array(
                        'key'     => 'amenities',
                        'label'   => 'Amenities',
                        'type'    => 'checkboxes',
                        'options' => array( 'WiFi', 'Pool', 'Parking', 'Pet Friendly' ),
                    ),
                ),
            ),
            'bed_and_breakfast' => array(
                'label'            => 'Bed and Breakfast',
                'schema_type'      => 'BedAndBreakfast',
                'category'         => 'Lodging & Travel',
                'additional_fields' => array(
                    array(
                        'key'     => 'checkin_time',
                        'label'   => 'Check-in Time',
                        'type'    => 'text',
                    ),
                    array(
                        'key'     => 'checkout_time',
                        'label'   => 'Check-out Time',
                        'type'    => 'text',
                    ),
                    array(
                        'key'     => 'amenities',
                        'label'   => 'Amenities',
                        'type'    => 'checkboxes',
                        'options' => array( 'WiFi', 'Parking', 'Pet Friendly', 'Breakfast Included' ),
                    ),
                ),
            ),
            'hostel' => array(
                'label'            => 'Hostel',
                'schema_type'      => 'Hostel',
                'category'         => 'Lodging & Travel',
                'additional_fields' => array(),
            ),
            'resort' => array(
                'label'            => 'Resort',
                'schema_type'      => 'Resort',
                'category'         => 'Lodging & Travel',
                'additional_fields' => array(
                    array(
                        'key'     => 'star_rating',
                        'label'   => 'Star Rating',
                        'type'    => 'select',
                        'options' => array( '1', '2', '3', '4', '5' ),
                    ),
                    array(
                        'key'     => 'amenities',
                        'label'   => 'Amenities',
                        'type'    => 'checkboxes',
                        'options' => array( 'WiFi', 'Pool', 'Gym', 'Spa', 'Restaurant', 'Bar', 'Room Service', 'Parking', 'Pet Friendly', 'Golf Course', 'Beach Access' ),
                    ),
                ),
            ),
            'campground' => array(
                'label'            => 'Campground',
                'schema_type'      => 'Campground',
                'category'         => 'Lodging & Travel',
                'additional_fields' => array(
                    array(
                        'key'     => 'amenities',
                        'label'   => 'Amenities',
                        'type'    => 'checkboxes',
                        'options' => array( 'Restrooms', 'Showers', 'Electric Hookups', 'Water Hookups', 'WiFi', 'Camp Store', 'Fire Pits', 'Pet Friendly' ),
                    ),
                ),
            ),
            'lodging_business' => array(
                'label'            => 'Lodging Business (General)',
                'schema_type'      => 'LodgingBusiness',
                'category'         => 'Lodging & Travel',
                'additional_fields' => array(
                    array(
                        'key'     => 'checkin_time',
                        'label'   => 'Check-in Time',
                        'type'    => 'text',
                    ),
                    array(
                        'key'     => 'checkout_time',
                        'label'   => 'Check-out Time',
                        'type'    => 'text',
                    ),
                ),
            ),
            'travel_agency' => array(
                'label'            => 'Travel Agency',
                'schema_type'      => 'TravelAgency',
                'category'         => 'Lodging & Travel',
                'additional_fields' => array(
                    array(
                        'key'     => 'known_for',
                        'label'   => 'Specialties',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., Cruises, Adventure Travel, Honeymoons',
                    ),
                ),
            ),

            // ===== RETAIL & SHOPPING =====
            'store' => array(
                'label'            => 'Store (General)',
                'schema_type'      => 'Store',
                'category'         => 'Retail & Shopping',
                'additional_fields' => array(
                    array(
                        'key'     => 'payment_accepted',
                        'label'   => 'Payment Methods Accepted',
                        'type'    => 'checkboxes',
                        'options' => array( 'Cash', 'Credit Card', 'Debit Card', 'Apple Pay', 'Google Pay', 'PayPal' ),
                    ),
                    array(
                        'key'     => 'currencies_accepted',
                        'label'   => 'Currencies Accepted',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., USD, EUR, GBP',
                    ),
                ),
            ),
            'clothing_store' => array(
                'label'            => 'Clothing Store',
                'schema_type'      => 'ClothingStore',
                'category'         => 'Retail & Shopping',
                'additional_fields' => array(),
            ),
            'electronics_store' => array(
                'label'            => 'Electronics Store',
                'schema_type'      => 'ElectronicsStore',
                'category'         => 'Retail & Shopping',
                'additional_fields' => array(),
            ),
            'furniture_store' => array(
                'label'            => 'Furniture Store',
                'schema_type'      => 'FurnitureStore',
                'category'         => 'Retail & Shopping',
                'additional_fields' => array(),
            ),
            'garden_store' => array(
                'label'            => 'Garden Store / Nursery',
                'schema_type'      => 'GardenStore',
                'category'         => 'Retail & Shopping',
                'additional_fields' => array(),
            ),
            'grocery_store' => array(
                'label'            => 'Grocery Store',
                'schema_type'      => 'GroceryStore',
                'category'         => 'Retail & Shopping',
                'additional_fields' => array(),
            ),
            'hardware_store' => array(
                'label'            => 'Hardware Store',
                'schema_type'      => 'HardwareStore',
                'category'         => 'Retail & Shopping',
                'additional_fields' => array(),
            ),
            'hobby_shop' => array(
                'label'            => 'Hobby Shop',
                'schema_type'      => 'HobbyShop',
                'category'         => 'Retail & Shopping',
                'additional_fields' => array(),
            ),
            'home_goods_store' => array(
                'label'            => 'Home Goods Store',
                'schema_type'      => 'HomeGoodsStore',
                'category'         => 'Retail & Shopping',
                'additional_fields' => array(),
            ),
            'jewelry_store' => array(
                'label'            => 'Jewelry Store',
                'schema_type'      => 'JewelryStore',
                'category'         => 'Retail & Shopping',
                'additional_fields' => array(),
            ),
            'liquor_store' => array(
                'label'            => 'Liquor Store',
                'schema_type'      => 'LiquorStore',
                'category'         => 'Retail & Shopping',
                'additional_fields' => array(),
            ),
            'music_store' => array(
                'label'            => 'Music Store',
                'schema_type'      => 'MusicStore',
                'category'         => 'Retail & Shopping',
                'additional_fields' => array(),
            ),
            'office_equipment_store' => array(
                'label'            => 'Office Equipment Store',
                'schema_type'      => 'OfficeEquipmentStore',
                'category'         => 'Retail & Shopping',
                'additional_fields' => array(),
            ),
            'pawn_shop' => array(
                'label'            => 'Pawn Shop',
                'schema_type'      => 'PawnShop',
                'category'         => 'Retail & Shopping',
                'additional_fields' => array(),
            ),
            'pet_store' => array(
                'label'            => 'Pet Store',
                'schema_type'      => 'PetStore',
                'category'         => 'Retail & Shopping',
                'additional_fields' => array(),
            ),
            'shoe_store' => array(
                'label'            => 'Shoe Store',
                'schema_type'      => 'ShoeStore',
                'category'         => 'Retail & Shopping',
                'additional_fields' => array(),
            ),
            'sporting_goods_store' => array(
                'label'            => 'Sporting Goods Store',
                'schema_type'      => 'SportingGoodsStore',
                'category'         => 'Retail & Shopping',
                'additional_fields' => array(),
            ),
            'tire_shop' => array(
                'label'            => 'Tire Shop',
                'schema_type'      => 'TireShop',
                'category'         => 'Retail & Shopping',
                'additional_fields' => array(),
            ),
            'toy_store' => array(
                'label'            => 'Toy Store',
                'schema_type'      => 'ToyStore',
                'category'         => 'Retail & Shopping',
                'additional_fields' => array(),
            ),
            'wholesale_store' => array(
                'label'            => 'Wholesale Store',
                'schema_type'      => 'WholesaleStore',
                'category'         => 'Retail & Shopping',
                'additional_fields' => array(),
            ),
            'outlet_store' => array(
                'label'            => 'Outlet Store',
                'schema_type'      => 'OutletStore',
                'category'         => 'Retail & Shopping',
                'additional_fields' => array(),
            ),
            'convenience_store' => array(
                'label'            => 'Convenience Store',
                'schema_type'      => 'ConvenienceStore',
                'category'         => 'Retail & Shopping',
                'additional_fields' => array(),
            ),
            'department_store' => array(
                'label'            => 'Department Store',
                'schema_type'      => 'DepartmentStore',
                'category'         => 'Retail & Shopping',
                'additional_fields' => array(),
            ),
            'florist' => array(
                'label'            => 'Florist',
                'schema_type'      => 'Florist',
                'category'         => 'Retail & Shopping',
                'additional_fields' => array(),
            ),
            'book_store' => array(
                'label'            => 'Book Store',
                'schema_type'      => 'BookStore',
                'category'         => 'Retail & Shopping',
                'additional_fields' => array(),
            ),
            'comic_store' => array(
                'label'            => 'Comic Store',
                'schema_type'      => 'ComicStore',
                'category'         => 'Retail & Shopping',
                'additional_fields' => array(),
            ),

            // ===== FITNESS & RECREATION =====
            'health_club' => array(
                'label'            => 'Health Club / Gym',
                'schema_type'      => 'HealthClub',
                'category'         => 'Fitness & Recreation',
                'additional_fields' => array(
                    array(
                        'key'     => 'amenities',
                        'label'   => 'Amenities',
                        'type'    => 'checkboxes',
                        'options' => array( 'Free Weights', 'Cardio Equipment', 'Group Classes', 'Personal Training', 'Pool', 'Sauna', 'Locker Rooms', 'Showers', 'Towel Service' ),
                    ),
                ),
            ),
            'sports_club' => array(
                'label'            => 'Sports Club',
                'schema_type'      => 'SportsClub',
                'category'         => 'Fitness & Recreation',
                'additional_fields' => array(
                    array(
                        'key'     => 'sport',
                        'label'   => 'Sports Offered',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., Tennis, Swimming, Basketball',
                    ),
                ),
            ),
            'golf_course' => array(
                'label'            => 'Golf Course',
                'schema_type'      => 'GolfCourse',
                'category'         => 'Fitness & Recreation',
                'additional_fields' => array(),
            ),
            'bowling_alley' => array(
                'label'            => 'Bowling Alley',
                'schema_type'      => 'BowlingAlley',
                'category'         => 'Fitness & Recreation',
                'additional_fields' => array(),
            ),
            'sports_activity_location' => array(
                'label'            => 'Sports Activity Location',
                'schema_type'      => 'SportsActivityLocation',
                'category'         => 'Fitness & Recreation',
                'additional_fields' => array(
                    array(
                        'key'     => 'sport',
                        'label'   => 'Sports Offered',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., Rock Climbing, Paintball, Go-Karting',
                    ),
                ),
            ),
            'ski_resort' => array(
                'label'            => 'Ski Resort',
                'schema_type'      => 'SkiResort',
                'category'         => 'Fitness & Recreation',
                'additional_fields' => array(),
            ),
            'stadium_arena' => array(
                'label'            => 'Stadium or Arena',
                'schema_type'      => 'StadiumOrArena',
                'category'         => 'Fitness & Recreation',
                'additional_fields' => array(
                    array(
                        'key'     => 'capacity',
                        'label'   => 'Seating Capacity',
                        'type'    => 'text',
                        'help'    => 'Maximum number of attendees, e.g., 50000',
                    ),
                ),
            ),
            'tennis_complex' => array(
                'label'            => 'Tennis Complex',
                'schema_type'      => 'TennisComplex',
                'category'         => 'Fitness & Recreation',
                'additional_fields' => array(),
            ),
            'public_swimming_pool' => array(
                'label'            => 'Public Swimming Pool',
                'schema_type'      => 'PublicSwimmingPool',
                'category'         => 'Fitness & Recreation',
                'additional_fields' => array(),
            ),
            'amusement_park' => array(
                'label'            => 'Amusement Park',
                'schema_type'      => 'AmusementPark',
                'category'         => 'Fitness & Recreation',
                'additional_fields' => array(),
            ),
            'zoo' => array(
                'label'            => 'Zoo',
                'schema_type'      => 'Zoo',
                'category'         => 'Fitness & Recreation',
                'additional_fields' => array(),
            ),
            'aquarium' => array(
                'label'            => 'Aquarium',
                'schema_type'      => 'Aquarium',
                'category'         => 'Fitness & Recreation',
                'additional_fields' => array(),
            ),

            // ===== EDUCATION & CHILDCARE =====
            'educational_organization' => array(
                'label'            => 'Educational Organization',
                'schema_type'      => 'EducationalOrganization',
                'category'         => 'Education & Childcare',
                'additional_fields' => array(
                    array(
                        'key'     => 'known_for',
                        'label'   => 'Programs Offered',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., Music Lessons, Language Classes, STEM Programs',
                    ),
                ),
            ),
            'school' => array(
                'label'            => 'School',
                'schema_type'      => 'School',
                'category'         => 'Education & Childcare',
                'additional_fields' => array(),
            ),
            'preschool' => array(
                'label'            => 'Preschool',
                'schema_type'      => 'Preschool',
                'category'         => 'Education & Childcare',
                'additional_fields' => array(),
            ),
            'elementary_school' => array(
                'label'            => 'Elementary School',
                'schema_type'      => 'ElementarySchool',
                'category'         => 'Education & Childcare',
                'additional_fields' => array(),
            ),
            'middle_school' => array(
                'label'            => 'Middle School',
                'schema_type'      => 'MiddleSchool',
                'category'         => 'Education & Childcare',
                'additional_fields' => array(),
            ),
            'high_school' => array(
                'label'            => 'High School',
                'schema_type'      => 'HighSchool',
                'category'         => 'Education & Childcare',
                'additional_fields' => array(),
            ),
            'college_university' => array(
                'label'            => 'College or University',
                'schema_type'      => 'CollegeOrUniversity',
                'category'         => 'Education & Childcare',
                'additional_fields' => array(
                    array(
                        'key'     => 'known_for',
                        'label'   => 'Programs Offered',
                        'type'    => 'textarea',
                    ),
                ),
            ),
            'music_school' => array(
                'label'            => 'Music School',
                'schema_type'      => 'MusicSchool',
                'category'         => 'Education & Childcare',
                'additional_fields' => array(),
            ),
            'dance_school' => array(
                'label'            => 'Dance School',
                'schema_type'      => 'DanceSchool',
                'category'         => 'Education & Childcare',
                'additional_fields' => array(),
            ),
            'driving_school' => array(
                'label'            => 'Driving School',
                'schema_type'      => 'DrivingSchool',
                'category'         => 'Education & Childcare',
                'additional_fields' => array(),
            ),
            'child_care' => array(
                'label'            => 'Child Care / Daycare',
                'schema_type'      => 'ChildCare',
                'category'         => 'Education & Childcare',
                'additional_fields' => array(),
            ),
            'library' => array(
                'label'            => 'Library',
                'schema_type'      => 'Library',
                'category'         => 'Education & Childcare',
                'additional_fields' => array(),
            ),

            // ===== ENTERTAINMENT & EVENTS =====
            'entertainment_business' => array(
                'label'            => 'Entertainment Business',
                'schema_type'      => 'EntertainmentBusiness',
                'category'         => 'Entertainment & Events',
                'additional_fields' => array(),
            ),
            'movie_theater' => array(
                'label'            => 'Movie Theater',
                'schema_type'      => 'MovieTheater',
                'category'         => 'Entertainment & Events',
                'additional_fields' => array(
                    array(
                        'key'     => 'screen_count',
                        'label'   => 'Number of Screens',
                        'type'    => 'text',
                        'help'    => 'Total number of movie screens, e.g., 12',
                    ),
                ),
            ),
            'comedy_club' => array(
                'label'            => 'Comedy Club',
                'schema_type'      => 'ComedyClub',
                'category'         => 'Entertainment & Events',
                'additional_fields' => array(),
            ),
            'night_club' => array(
                'label'            => 'Night Club',
                'schema_type'      => 'NightClub',
                'category'         => 'Entertainment & Events',
                'additional_fields' => array(),
            ),
            'casino' => array(
                'label'            => 'Casino',
                'schema_type'      => 'Casino',
                'category'         => 'Entertainment & Events',
                'additional_fields' => array(),
            ),
            'art_gallery' => array(
                'label'            => 'Art Gallery',
                'schema_type'      => 'ArtGallery',
                'category'         => 'Entertainment & Events',
                'additional_fields' => array(),
            ),
            'museum' => array(
                'label'            => 'Museum',
                'schema_type'      => 'Museum',
                'category'         => 'Entertainment & Events',
                'additional_fields' => array(),
            ),
            'performing_arts_theater' => array(
                'label'            => 'Performing Arts Theater',
                'schema_type'      => 'PerformingArtsTheater',
                'category'         => 'Entertainment & Events',
                'additional_fields' => array(
                    array(
                        'key'     => 'capacity',
                        'label'   => 'Seating Capacity',
                        'type'    => 'text',
                        'help'    => 'Maximum number of seats, e.g., 500',
                    ),
                ),
            ),
            'event_venue' => array(
                'label'            => 'Event Venue',
                'schema_type'      => 'EventVenue',
                'category'         => 'Entertainment & Events',
                'additional_fields' => array(
                    array(
                        'key'     => 'capacity',
                        'label'   => 'Maximum Capacity',
                        'type'    => 'text',
                        'help'    => 'Maximum number of guests, e.g., 300',
                    ),
                ),
            ),

            // ===== NONPROFIT & COMMUNITY =====
            'ngo' => array(
                'label'            => 'NGO (Non-Governmental Organization)',
                'schema_type'      => 'NGO',
                'category'         => 'Nonprofit & Community',
                'additional_fields' => array(
                    array(
                        'key'     => 'mission_statement',
                        'label'   => 'Mission Statement',
                        'type'    => 'textarea',
                        'help'    => 'Brief description of your organization\'s purpose and goals',
                    ),
                    array(
                        'key'     => 'nonprofit_status',
                        'label'   => 'Nonprofit Status',
                        'type'    => 'select',
                        'options' => array( '501(c)(3)', '501(c)(4)', '501(c)(6)', '501(c)(7)', 'Other' ),
                        'help'    => 'Your IRS tax-exempt classification',
                    ),
                ),
            ),
            'nonprofit_organization' => array(
                'label'            => 'Nonprofit Organization',
                'schema_type'      => 'NonprofitOrganization',
                'category'         => 'Nonprofit & Community',
                'additional_fields' => array(
                    array(
                        'key'     => 'mission_statement',
                        'label'   => 'Mission Statement',
                        'type'    => 'textarea',
                        'help'    => 'Brief description of your organization\'s purpose and goals',
                    ),
                    array(
                        'key'     => 'nonprofit_status',
                        'label'   => 'Nonprofit Status',
                        'type'    => 'select',
                        'options' => array( '501(c)(3)', '501(c)(4)', '501(c)(6)', '501(c)(7)', 'Other' ),
                        'help'    => 'Your IRS tax-exempt classification',
                    ),
                ),
            ),
            'government_office' => array(
                'label'            => 'Government Office',
                'schema_type'      => 'GovernmentOffice',
                'category'         => 'Nonprofit & Community',
                'additional_fields' => array(
                    array(
                        'key'     => 'available_services',
                        'label'   => 'Services Offered',
                        'type'    => 'textarea',
                        'help'    => 'One per line: e.g., Permit Applications, License Renewals, Tax Payments',
                    ),
                ),
            ),
            'fire_station' => array(
                'label'            => 'Fire Station',
                'schema_type'      => 'FireStation',
                'category'         => 'Nonprofit & Community',
                'additional_fields' => array(),
            ),
            'police_station' => array(
                'label'            => 'Police Station',
                'schema_type'      => 'PoliceStation',
                'category'         => 'Nonprofit & Community',
                'additional_fields' => array(),
            ),
            'place_of_worship' => array(
                'label'            => 'Place of Worship (General)',
                'schema_type'      => 'PlaceOfWorship',
                'category'         => 'Nonprofit & Community',
                'additional_fields' => array(
                    array(
                        'key'     => 'known_for',
                        'label'   => 'Denomination / Affiliation',
                        'type'    => 'text',
                        'help'    => 'e.g., Non-denominational, Interfaith',
                    ),
                ),
            ),
            'church' => array(
                'label'            => 'Church',
                'schema_type'      => 'Church',
                'category'         => 'Nonprofit & Community',
                'additional_fields' => array(
                    array(
                        'key'     => 'known_for',
                        'label'   => 'Denomination',
                        'type'    => 'text',
                        'help'    => 'e.g., Baptist, Catholic, Methodist, Non-denominational',
                    ),
                ),
            ),
            'mosque' => array(
                'label'            => 'Mosque',
                'schema_type'      => 'Mosque',
                'category'         => 'Nonprofit & Community',
                'additional_fields' => array(),
            ),
            'synagogue' => array(
                'label'            => 'Synagogue',
                'schema_type'      => 'Synagogue',
                'category'         => 'Nonprofit & Community',
                'additional_fields' => array(
                    array(
                        'key'     => 'known_for',
                        'label'   => 'Movement / Affiliation',
                        'type'    => 'text',
                        'help'    => 'e.g., Orthodox, Conservative, Reform',
                    ),
                ),
            ),
            'buddhist_temple' => array(
                'label'            => 'Buddhist Temple',
                'schema_type'      => 'BuddhistTemple',
                'category'         => 'Nonprofit & Community',
                'additional_fields' => array(),
            ),
            'hindu_temple' => array(
                'label'            => 'Hindu Temple',
                'schema_type'      => 'HinduTemple',
                'category'         => 'Nonprofit & Community',
                'additional_fields' => array(),
            ),
            'cemetery' => array(
                'label'            => 'Cemetery',
                'schema_type'      => 'Cemetery',
                'category'         => 'Nonprofit & Community',
                'additional_fields' => array(),
            ),
            'crematorium' => array(
                'label'            => 'Crematorium',
                'schema_type'      => 'Crematorium',
                'category'         => 'Nonprofit & Community',
                'additional_fields' => array(),
            ),
        );
    }

    public static function get_type_fields( $type_key ) {
        $types = self::get_types();
        if ( isset( $types[ $type_key ] ) ) {
            return $types[ $type_key ]['additional_fields'];
        }
        return array();
    }

    public static function get_schema_type( $type_key ) {
        $types = self::get_types();
        if ( isset( $types[ $type_key ] ) ) {
            return $types[ $type_key ]['schema_type'];
        }
        return 'LocalBusiness';
    }

    public static function get_types_grouped_by_category() {
        $types = self::get_types();
        $grouped = array();

        foreach ( $types as $key => $type ) {
            $category = isset( $type['category'] ) ? $type['category'] : 'General';
            if ( ! isset( $grouped[ $category ] ) ) {
                $grouped[ $category ] = array();
            }
            $grouped[ $category ][ $key ] = $type;
        }

        return $grouped;
    }

    public static function get_categories() {
        return array(
            'General',
            'Health & Beauty',
            'Food & Drink',
            'Automotive',
            'Home Services',
            'Medical & Health',
            'Professional Services',
            'Financial Services',
            'Legal Services',
            'Lodging & Travel',
            'Retail & Shopping',
            'Fitness & Recreation',
            'Education & Childcare',
            'Entertainment & Events',
            'Nonprofit & Community',
        );
    }
}
