<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Permission extends Model
{
    use HasFactory;

    protected $fillable = [
        'name',
        'slug',
        'module',
        'description',
    ];

    public static function getModules()
    {
        return [
            'dashboard' => 'Dashboard',
            'reports' => 'Reportes Gerenciales',
            'pos' => 'Punto de Venta (POS)',
            'reservations' => 'Reservas y Agenda',
            'sales' => 'Caja / Historial de Ventas',
            'kitchen' => 'Monitor Cocina (KDS)',
            'clients' => 'Clientes (CRM)',
            'categories' => 'Categorías',
            'products' => 'Inventario / Productos',
            'inventory_logs' => 'Kardex / Movimientos',
            'tables' => 'Mesas / Salón',
            'users' => 'Usuarios / Personal',
            'roles_permissions' => 'Roles y Permisos',
            'settings' => 'Configuración',
            'system' => 'Mantenimiento del Sistema',
            'expenses' => 'Gastos',
        ];
    }

    public static function getRoles()
    {
        return [
            'superadmin' => [
                'label' => 'Administrador del Sistema',
                'color' => 'dark',
                'description' => 'Acceso total e irrestricto. No puede ser modificado por otros usuarios.'
            ],
            'admin' => [
                'label' => 'Administrador del Negocio',
                'color' => 'danger',
                'description' => 'Gestión general del restaurante y operaciones.'
            ],
            'gerente' => [
                'label' => 'Gerente',
                'color' => 'warning',
                'description' => 'Supervisión de operaciones y reportes.'
            ],
            'cashier' => [
                'label' => 'Cajero',
                'color' => 'primary',
                'description' => 'Cobros, ventas y gastos.'
            ],
            'waiter' => [
                'label' => 'Mozo / Atención',
                'color' => 'success',
                'description' => 'Atención a mesas y pedidos.'
            ],
            'kitchen' => [
                'label' => 'Cocina',
                'color' => 'info',
                'description' => 'Visualización y gestión de pedidos en cocina.'
            ],
        ];
    }
}
