<?php

namespace App\Http\Controllers\Api\V1;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Imports\PlatesImport;
use App\Imports\DeletePlatesImport;
use Maatwebsite\Excel\Facades\Excel;
use Illuminate\Support\Facades\Log;

class ExcelImportController extends Controller
{
    /**
     * Sube y encola archivo para importar placas (Alta/Upsert)
     */
    public function import(Request $request)
    {
        $request->validate([
            'excel' => 'required|file|mimes:xlsx,xls,csv|max:20480'
        ]);

        try {
            Excel::import(new PlatesImport, $request->file('excel'));
            
            return response()->json([
                'success' => true, 
                'message' => 'El archivo se ha recibido y la base de datos se está actualizando en segundo plano.'
            ]);
        } catch (\Exception $e) {
            Log::error('Error en API Import: ' . $e->getMessage());
            return response()->json(['success' => false, 'error' => 'Error al procesar el archivo'], 500);
        }
    }

    /**
     * Sube y encola archivo para eliminar placas (Soft Delete)
     */
    public function delete(Request $request)
    {
        $request->validate([
            'excel' => 'required|file|mimes:xlsx,xls,csv|max:20480'
        ]);

        try {
            Excel::import(new DeletePlatesImport, $request->file('excel'));
            
            return response()->json([
                'success' => true, 
                'message' => 'El archivo de eliminación se ha recibido y está procesándose en segundo plano.'
            ]);
        } catch (\Exception $e) {
            Log::error('Error en API Delete: ' . $e->getMessage());
            return response()->json(['success' => false, 'error' => 'Error al procesar el archivo'], 500);
        }
    }
}
