<?php

use App\Models\Setting;

if (!function_exists('setting')) {
    function setting(string $key, $default = null): mixed {
        return cache()->remember("setting_{$key}", 3600, function () use ($key, $default) {
            return Setting::where('key', $key)->value('value') ?? $default;
        });
    }
}

if (!function_exists('active_languages')) {
    function active_languages(): \Illuminate\Support\Collection {
        return cache()->remember('active_languages', 3600, function () {
            return \App\Models\Language::where('is_active', true)->orderBy('sort_order')->get();
        });
    }
}

if (!function_exists('lang_url')) {
    function lang_url(string $path = '', ?string $lang = null): string {
        $lang = $lang ?? app()->getLocale();
        $path = ltrim($path, '/');
        return url("/{$lang}" . ($path ? "/{$path}" : ''));
    }
}

if (!function_exists('whatsapp_url')) {
    function whatsapp_url(string $message = ''): string {
        $number = setting('whatsapp_number', '919695322501');
        $msg = $message ?: setting('whatsapp_message', 'Hello, I want to enquire about medicines.');
        return 'https://wa.me/' . $number . '?text=' . urlencode($msg);
    }
}
