<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    public function up(): void
    {
        Schema::table('configuraciones', function (Blueprint $table) {
            // --- Identificación tributaria (SRI Ecuador) ---
            $table->string('razon_social')->nullable()->after('empresa');
            $table->string('nombre_comercial')->nullable()->after('razon_social');
            $table->string('dir_establecimiento')->nullable()->after('direccion');

            // --- Parámetros de facturación electrónica ---
            $table->unsignedTinyInteger('sri_ambiente')->default(1)->after('serie_factura'); // 1=Pruebas, 2=Producción
            $table->unsignedTinyInteger('sri_tipo_emision')->default(1); // 1=Normal
            $table->string('sri_estab', 3)->default('001');   // código de establecimiento
            $table->string('sri_pto_emi', 3)->default('001'); // punto de emisión
            $table->enum('sri_obligado_contabilidad', ['SI', 'NO'])->default('NO');
            $table->string('sri_contribuyente_especial')->nullable(); // N° resolución, si aplica
            $table->boolean('sri_agente_retencion')->default(false);
            $table->string('sri_regimen_rimpe')->nullable(); // "Régimen RIMPE Emprendedor", "Régimen RIMPE Negocio Popular", etc.

            // --- Certificado de firma electrónica (.p12) ---
            $table->string('sri_certificado_path')->nullable(); // ruta dentro de storage/app/private
            $table->text('sri_certificado_password')->nullable(); // guardada cifrada (cast encrypted)

            // --- Comportamiento del módulo ---
            $table->boolean('sri_activo')->default(false); // activa/desactiva el envío automático al SRI
            $table->boolean('sri_envio_automatico')->default(true); // si false, solo genera+firma y el usuario envía manualmente
        });
    }

    public function down(): void
    {
        Schema::table('configuraciones', function (Blueprint $table) {
            $table->dropColumn([
                'razon_social', 'nombre_comercial', 'dir_establecimiento',
                'sri_ambiente', 'sri_tipo_emision', 'sri_estab', 'sri_pto_emi',
                'sri_obligado_contabilidad', 'sri_contribuyente_especial', 'sri_agente_retencion', 'sri_regimen_rimpe',
                'sri_certificado_path', 'sri_certificado_password',
                'sri_activo', 'sri_envio_automatico',
            ]);
        });
    }
};
