<?php

namespace App\Observers;

use App\Models\Pagamento;
use App\Models\PrimaNota;
use App\Models\Categoriacontabile;
use App\Models\MetodoPagamento;
use Illuminate\Support\Facades\Log;

class PagamentoObserver
{
    //
    public function created(Pagamento $pagamento): void
    {
        //Crea prima nota di entrata
        $primaNota = PrimaNota::create([
            'attivita_id' => $pagamento->attivita_id,
            'pagamento_id' => $pagamento->id,
            'importo' => $pagamento->importo,
            // 'tipo_movimento' => PrimaNota::ENTRATA,
            'causale' => $pagamento->causale,
            // 'categoria_contabile_id' => $pagamento->metodo_pagamento->tipo == MetodoPagamento::STAFF ? CategoriaContabile::STAFF : CategoriaContabile::VENDITA,
            'ordine_id' => $pagamento->ordine_id,
        ]);
        //Assegna categoria contabile
        if($pagamento->metodo_pagamento->tipo == MetodoPagamento::STAFF){
            $primaNota->categoria_contabile_id = Categoriacontabile::staff()->id??null;
        }else{
            $primaNota->categoria_contabile_id = Categoriacontabile::vendita()->id??null;
        }
        //Assegna tipo movimento
        if($pagamento->metodo_pagamento->escludi_contabilita){
            $primaNota->tipo_movimento = PrimaNota::NO_CONTABILE;
        }else{
            $primaNota->tipo_movimento = PrimaNota::ENTRATA;
        }

        $primaNota->save();
    }

    public function updated(Pagamento $pagamento): void
    {
        //
    }

    public function deleted(Pagamento $pagamento): void
    {
        //
    }

    public function restored(Pagamento $pagamento): void
    {
        //
    }

    public function forceDeleted(Pagamento $pagamento): void
    {
        //
    }
}
