<?php 
 
/* 
 * This file is part of Sulu. 
 * 
 * (c) Sulu GmbH 
 * 
 * This source file is subject to the MIT license that is bundled 
 * with this source code in the file LICENSE. 
 */ 
 
namespace Sulu\Bundle\ContactBundle\Entity; 
 
use Doctrine\Common\Collections\ArrayCollection; 
use Doctrine\Common\Collections\Collection; 
use JMS\Serializer\Annotation\Exclude; 
use JMS\Serializer\Annotation\Groups; 
 
/** 
 * Fax. 
 */ 
class Fax 
{ 
    /** 
     * @var string 
     * 
     * @Groups({"fullAccount", "partialAccount", "fullContact", "partialContact"}) 
     */ 
    private $fax; 
 
    /** 
     * @var int 
     * 
     * @Groups({"fullAccount", "partialAccount", "fullContact", "partialContact"}) 
     */ 
    private $id; 
 
    /** 
     * @var FaxType 
     * 
     * @Groups({"fullAccount", "fullContact"}) 
     */ 
    private $faxType; 
 
    /** 
     * @var Collection<int, ContactInterface> 
     * 
     * @Exclude 
     */ 
    private $contacts; 
 
    /** 
     * @var Collection<int, AccountInterface> 
     * 
     * @Exclude 
     */ 
    private $accounts; 
 
    /** 
     * Constructor. 
     */ 
    public function __construct() 
    { 
        $this->contacts = new ArrayCollection(); 
        $this->accounts = new ArrayCollection(); 
    } 
 
    /** 
     * Set fax. 
     * 
     * @param string $fax 
     * 
     * @return Fax 
     */ 
    public function setFax($fax) 
    { 
        $this->fax = $fax; 
 
        return $this; 
    } 
 
    /** 
     * Get fax. 
     * 
     * @return string 
     */ 
    public function getFax() 
    { 
        return $this->fax; 
    } 
 
    /** 
     * Get id. 
     * 
     * @return int 
     */ 
    public function getId() 
    { 
        return $this->id; 
    } 
 
    /** 
     * Set faxType. 
     * 
     * @return Fax 
     */ 
    public function setFaxType(FaxType $faxType) 
    { 
        $this->faxType = $faxType; 
 
        return $this; 
    } 
 
    /** 
     * Get faxType. 
     * 
     * @return FaxType 
     */ 
    public function getFaxType() 
    { 
        return $this->faxType; 
    } 
 
    /** 
     * Add contacts. 
     * 
     * @return Fax 
     */ 
    public function addContact(ContactInterface $contacts) 
    { 
        $this->contacts[] = $contacts; 
 
        return $this; 
    } 
 
    /** 
     * Remove contacts. 
     */ 
    public function removeContact(ContactInterface $contacts) 
    { 
        $this->contacts->removeElement($contacts); 
    } 
 
    /** 
     * Get contacts. 
     * 
     * @return Collection<int, ContactInterface> 
     */ 
    public function getContacts() 
    { 
        return $this->contacts; 
    } 
 
    /** 
     * Add accounts. 
     * 
     * @return Fax 
     */ 
    public function addAccount(AccountInterface $account) 
    { 
        $this->accounts[] = $account; 
 
        return $this; 
    } 
 
    /** 
     * Remove accounts. 
     */ 
    public function removeAccount(AccountInterface $account) 
    { 
        $this->accounts->removeElement($account); 
    } 
 
    /** 
     * Get accounts. 
     * 
     * @return Collection<int, AccountInterface> 
     */ 
    public function getAccounts() 
    { 
        return $this->accounts; 
    } 
}