<?php

namespace App\Model\Database\Entity;

use Doctrine\ORM\Mapping as ORM;
use App\Model\Database\Entity\Attributes\TId;

/**
 * @ORM\Entity(repositoryClass="App\Model\Database\Repository\PronunciationRepository")
 * @ORM\HasLifecycleCallbacks
 * 
 * @property int $id
 * @property Term $terms
 * @property PronunciationType $type
 * @property String $ipa
 * @property String $filename
 */
class Pronunciation extends AbstractEntity 
{

    use Tid;

    public function __construct($type,$ipa,$filename=null)
    {
	$this->type = $type;
	$this->ipa = $ipa;
	$this->filename = $filename;
	$this->terms = new \Doctrine\Common\Collections\ArrayCollection();
    }

    /**
     * @ORM\ManyToMany(targetEntity="Term", mappedBy="pronunciations")
     */
    private $terms;


    /**
     * @ORM\ManyToOne(targetEntity="PronunciationType", inversedBy="pronunciations")
     */
    protected $type;

    /**
     * @ORM\Column(type="string",nullable=true)
     */
    protected $ipa;

    /**
     * @ORM\Column(type="string", nullable=true)
     */
    protected $filename;

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

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

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

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

?>
