<?php


class Card implements \JsonSerializable 
{
    private $number;	
    private $hash;	
    private $bin;	
    private $end;	
    private $type;	
    private $validityDate;	
    private $ownerName;	
    private $document;	
    private $nsu;	

    public function jsonSerialize(): mixed
    {
        $obj = clone $this;
        $keys = get_object_vars($obj);
        foreach ($keys as $key => $value) {
            if ($value===null || $value==='') {
                unset($obj->{$key});
            }
        }

        return get_object_vars($obj);
    }
        
    /**
     * Get the value of number
     */ 
    public function getNumber()
    {
        return $this->number;
    }

    /**
     * Set the value of number
     *
     * @return  self
     */ 
    public function setNumber($number)
    {
        $this->number = $number;

        return $this;
    }

    /**
     * Get the value of hash
     */ 
    public function getHash()
    {
        return $this->hash;
    }

    /**
     * Set the value of hash
     *
     * @return  self
     */ 
    public function setHash($hash)
    {
        $this->hash = $hash;

        return $this;
    }

    /**
     * Get the value of bin
     */ 
    public function getBin()
    {
        return $this->bin;
    }

    /**
     * Set the value of bin
     *
     * @return  self
     */ 
    public function setBin($bin)
    {
        $this->bin = $bin;

        return $this;
    }

    /**
     * Get the value of end
     */ 
    public function getEnd()
    {
        return $this->end;
    }

    /**
     * Set the value of end
     *
     * @return  self
     */ 
    public function setEnd($end)
    {
        $this->end = $end;

        return $this;
    }

    /**
     * Get the value of type
     */ 
    public function getType()
    {
        return $this->type;
    }

    /**
     * Set the value of type
     *
     * @return  self
     */ 
    public function setType($type)
    {
        $this->type = $type;

        return $this;
    }

    /**
     * Get the value of validityDate
     */ 
    public function getValidityDate()
    {
        return $this->validityDate;
    }

    /**
     * Set the value of validityDate
     *
     * @return  self
     */ 
    public function setValidityDate($validityDate)
    {
        $this->validityDate = $validityDate;

        return $this;
    }

    /**
     * Get the value of ownerName
     */ 
    public function getOwnerName()
    {
        return $this->ownerName;
    }

    /**
     * Set the value of ownerName
     *
     * @return  self
     */ 
    public function setOwnerName($ownerName)
    {
        $this->ownerName = $ownerName;

        return $this;
    }

    /**
     * Get the value of document
     */ 
    public function getDocument()
    {
        return $this->document;
    }

    /**
     * Set the value of document
     *
     * @return  self
     */ 
    public function setDocument($document)
    {
        $this->document = $document;

        return $this;
    }

    /**
     * Get the value of nsu
     */ 
    public function getNsu()
    {
        return $this->nsu;
    }

    /**
     * Set the value of nsu
     *
     * @return  self
     */ 
    public function setNsu($nsu)
    {
        $this->nsu = $nsu;

        return $this;
    }
}