<?php

namespace App\Services;

use App\Models\Configuracion;
use Carbon\Carbon;

class LicenciaService
{
    /**
     * Genera un hash HMAC-SHA256 offline.
     * Mismo algoritmo que debe tener el sistema cliente.
     */
    public function generarClaveLicencia($ruc, $fechaVto)
    {
        $config = Configuracion::first();
        $secretKey = $config->secret_key;
        
        $data = $ruc . '|' . $fechaVto;
        return hash_hmac('sha256', $data, $secretKey);
    }
    
    /**
     * Valida si una clave es correcta teóricamente
     */
    public function validarClaveLocal($ruc, $fechaVto, $hashIngresado)
    {
        $hashEsperado = $this->generarClaveLicencia($ruc, $fechaVto);
        return hash_equals($hashEsperado, $hashIngresado);
    }
}
