<?php
namespace Incoviba\Model\Venta;

use DateTimeInterface;
use Incoviba\Common\Ideal\Model;
use Incoviba\Model\Contabilidad\Banco;

class Cuota extends Model
{
    public Pie $pie;
    public DateTimeInterface $fecha;
    public float $valor;
    public ?bool $estado;
    public ?Banco $banco;
    public ?DateTimeInterface $fechaPago;
    public ?bool $abonado;
    public ?DateTimeInterface $fechaAbonado;
    public ?float $uf;
    public ?Pago $pago;
    public ?int $numero;

    public function jsonSerialize(): mixed
    {
        return array_merge(parent::jsonSerialize(), [
            'pie_id' => $this->pie->id,
            'fecha' => $this->fecha->format('Y-m-d H:i:s'),
            'valor' => $this->valor,
            'estado' => $this->estado ?? false,
            'banco' => $this->banco,
            'fecha_pago' => $this->fechaPago?->format('Y-m-d H:i:s') ?? '',
            'abonado' => $this->abonado ?? false,
            'fecha_abonado' => $this->fechaAbonado?->format('Y-m-d H:i:s') ?? '',
            'uf' => $this->uf ?? 1,
            'pago' => $this->pago ?? '',
            'numero' => $this->numero ?? ''
        ]);
    }
}
