<?php

namespace Tests\Unit;

use Tests\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase;
use App\Models\Confeccion;
use App\Models\Recepcion;
use App\Models\Proveedor;
use App\Models\OrdenProduccion;

class ConfeccionRecepcionesTest extends TestCase
{
    use RefreshDatabase;

    /** @test */
    public function recibido_total_and_faltantes_are_calculated_from_recepciones()
    {
        $proveedor = Proveedor::factory()->create(['categoria' => 'talleres']);
        $op = OrdenProduccion::factory()->create(['cantidad_total' => 100]);

        $conf = Confeccion::create([
            'proveedor_id' => $proveedor->id,
            'orden_produccion_id' => $op->id,
            'cantidad_enviada' => 100,
        ]);

        // Crear recepciones 40 y 40 con faltantes en la segunda (10)
        Recepcion::create(['referencia_type' => Confeccion::class,'referencia_id' => $conf->id,'cantidad' => 40]);
        Recepcion::create(['referencia_type' => Confeccion::class,'referencia_id' => $conf->id,'cantidad' => 40, 'prendas_defectuosas' => 10]);

        $conf->refresh();

        // recibido efectivo: 40 + (40 - 10) = 70
        $this->assertEquals(70, $conf->recibido_total);
        $this->assertEquals(30, $conf->faltantes);
    }
}
