<?php

require_once __DIR__ . '/../../core/permissions.php';

if (!function_exists('treasury_permission_catalog')) {
    function treasury_permission_catalog() {
        return array(
            'treasury.view' => array('label' => 'Ver tesorería', 'description' => 'Consulta caja, libro y forecast de 13 semanas.'),
            'treasury.edit' => array('label' => 'Editar tesorería', 'description' => 'Registra saldos iniciales y movimientos manuales.'),
            'treasury.reconcile' => array('label' => 'Conciliar bancos', 'description' => 'Importa cartolas y concilia movimientos bancarios.'),
            'treasury.scenarios' => array('label' => 'Gestionar escenarios', 'description' => 'Crea partidas tentativas para escenarios de caja.'),
        );
    }
}

if (!function_exists('treasury_can')) {
    function treasury_can($permissionKey) {
        if (current_user_role() === 'admin') return true;
        if ($permissionKey === 'treasury.view') {
            return user_can('module.treasury') || user_can('treasury.view');
        }
        return user_can($permissionKey);
    }
}

if (!function_exists('treasury_require')) {
    function treasury_require($permissionKey) {
        if (!treasury_can($permissionKey)) {
            http_response_code(403);
            throw new RuntimeException('No tienes permisos para realizar esta acción de tesorería.');
        }
    }
}
