<?php

namespace Daniv04\HaciendaPackage\Providers\Hacienda\Data;

class IdentificationData
{
    /**
     * Identification type code (Física, Jurídica, DIMEX, NITE)
     *
     * @var string
     */
    private string $tipoIdentificacion;

    /**
     * Identification number (up to 12 digits)
     *
     * @var string
     */
    private string $numeroIdentificacion;

    /**
     * Constructor
     *
     * @param string $tipoIdentificacion Identification type
     * @param string $numeroIdentificacion Identification number
     */
    public function __construct(string $tipoIdentificacion, string $numeroIdentificacion)
    {
        $this->tipoIdentificacion = $tipoIdentificacion;
        $this->numeroIdentificacion = $numeroIdentificacion;
    }

    /**
     * Get the identification type
     */
    public function getTipoIdentificacion(): string
    {
        return $this->tipoIdentificacion;
    }

    /**
     * Get the identification number
     */
    public function getNumeroIdentificacion(): string
    {
        return $this->numeroIdentificacion;
    }

    /**
     * Convert to array for JSON serialization
     */
    public function toArray(): array
    {
        return [
            'tipoIdentificacion' => $this->tipoIdentificacion,
            'numeroIdentificacion' => $this->numeroIdentificacion,
        ];
    }

    /**
     * Convert to JSON string
     */
    public function toJson(): string
    {
        return json_encode($this->toArray());
    }
}
