<?php
/*
        CREATE TABLE IF NOT EXISTS dialvox_audio(
            id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
            Cliente VARCHAR(50) NOT NULL,
            Nombre VARCHAR(100) NOT NULL,
            FechaCarga TIMESTAMP NOT NULL DEFAULT NOW(),
            Audio LONGBLOB NOT NULL,
            Hash VARCHAR(33) NOT NULL,
            MimeType VARCHAR(100) NOT NULL,
            Visible BOOLEAN NOT NULL DEFAULT TRUE
        );
*/
class Audio
{
        private $id;
        private $cliente;
        private $nombre;
        private $hash;
        private $fechaCarga;
        private $binario;
        private $mimeType;
        /**
         * Get the value of binario
         */
        public function getBinario()
        {
                return $this->binario;
        }

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

                return $this;
        }

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

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

                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 nombre
         */
        public function getNombre()
        {
                return $this->nombre;
        }

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

                return $this;
        }

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

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

                return $this;
        }

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

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

                return $this;
        }

        public function getId()
        {
                return $this->id;
        }
        function __construct()
        {
                $a = func_get_args();
                $i = func_num_args();
                if (method_exists($this, $f = '__construct' . $i)) {
                        call_user_func_array(array($this, $f), $a);
                }
        }
        public function __construct3($cliente, $nombre, $binario)
        {
                $this->cliente = $cliente;
                $this->binario = $binario;
                $this->hash = md5($binario);
                $file_info = new finfo(FILEINFO_MIME_TYPE);
                $this->mimeType = $file_info->buffer($binario);
                $this->nombre = $nombre;
        }
        public function __construct6($cliente, $nombre, $fechaCarga, $id, $hash, $mimeType)
        {
                $this->cliente = $cliente;
                $this->fechaCarga = $fechaCarga;
                $this->hash = $hash;
                $this->mimeType = $mimeType;
                $this->nombre = $nombre;
                $this->id = $id;
        }
        public function __construct7($cliente, $nombre, $fechaCarga, $id, $hash, $mimeType, $binario)
        {
                $this->cliente = $cliente;
                $this->fechaCarga = $fechaCarga;
                $this->hash = $hash;
                $this->mimeType = $mimeType;
                $this->nombre = $nombre;
                $this->id = $id;
                $this->binario = $binario;
        }
        public function __construct2($nombre, $id)
        {
                $this->nombre = $nombre;
                $this->id = $id;
        }
        public function toJSON()
        {
                $resp = array();
                if ($this->cliente != NULL) {
                        $resp["Cliente"] = $this->getCliente()->toJSON();
                } else {
                        $resp["Cliente"] = NULL;
                }
                $resp["FechaCarga"] = $this->getFechaCarga();
                $resp["Hash"] = $this->getHash();
                $resp["MimeType"] = $this->getMimeType();
                $resp["id"] = $this->getId();
                $resp["Nombre"] = $this->getNombre();
                return $resp;
        }
}
