<?php

if (!function_exists('setting')) {
    /**
     * Obtener configuración del sistema desde la base de datos
     *
     * @param string $key
     * @param mixed $default
     * @return mixed
     */
    function setting(string $key, $default = null)
    {
        try {
            $setting = \Illuminate\Support\Facades\DB::table('settings')
                ->where('key', $key)
                ->first();
            
            if ($setting) {
                return $setting->value;
            }
            
            return $default;
        } catch (\Exception $e) {
            return $default;
        }
    }
}

if (!function_exists('company_name')) {
    /**
     * Obtener el nombre de la empresa
     *
     * @return string
     */
    function company_name()
    {
        return setting('company_name', config('app.company_name'));
    }
}

if (!function_exists('role_name')) {
    /**
     * Obtener el nombre legible de un rol
     *
     * @param string $role
     * @return string
     */
    function role_name(string $role)
    {
        $roles = [
            'solicitante' => 'Cliente',
            'responsable' => 'Técnico',
            'ingeniero' => 'Ingeniero',
            'supervisor' => 'Supervisor',
            'administrador' => 'Administrador',
        ];

        return $roles[$role] ?? ucfirst($role);
    }
}

if (!function_exists('role_badge_class')) {
    /**
     * Obtener la clase CSS del badge según el rol
     *
     * @param string $role
     * @return string
     */
    function role_badge_class(string $role)
    {
        $classes = [
            'solicitante' => 'bg-info',
            'responsable' => 'bg-primary',
            'ingeniero' => 'bg-success',
            'supervisor' => 'bg-warning text-dark',
            'administrador' => 'bg-danger',
        ];

        return $classes[$role] ?? 'bg-secondary';
    }
}
