<?php

namespace ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models;


use ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Interfaces\AbstractModel;

/**
 *
 * Created by PhpStorm.
 * User: Tomasz Bielecki ( tomasz.bi@modulesgarden.com )
 * Date: 10.09.19
 * Time: 08:43
 * Class Ressource
 */
class Ressource extends AbstractModel
{
    /**
     * Ressource Attributes
     */
    const ATTR_NAME         = 'name';
    const ATTR_STATUS       = 'zimbraAccountStatus';
    const ATTR_TYPE         = 'zimbraCalResType';
    const ATTR_DISPLAY_NAME = 'displayName';
    const ATTR_DESC         = 'description';
    const ATTR_NOTE         = 'zimbraNotes';
    const ATTR_CONT         = 'zimbraCalResContactName';
    const ATTR_CONT_EMAIL   = 'zimbraCalResContactEmail';
    const ATTR_CONT_PHONE   = 'zimbraCalResContactPhone';
    const ATTR_SITE         = 'zimbraCalResSite';
    const ATTR_BUILDING     = 'zimbraCalResBuilding';
    const ATTR_FLOOR        = 'zimbraCalResFloor';
    const ATTR_ROOM         = 'zimbraCalResRoom';
    const ATTR_CAPACITY     = 'zimbraCalResCapacity';
    const ATTR_STREET       = 'street';
    const ATTR_TOWN         = 'l';
    const ATTR_POSTAL_CODE  = 'postalCode';
    const ATTR_COUNTY       = 'st';
    const ATTR_STATE        = 'co';
    const ATTR_AUTO         = 'zimbraCalResAutoAcceptDecline';
    const ATTR_BUSY         = 'zimbraCalResAutoDeclineIfBusy';

    protected $id;
    protected $name;
    protected $password;
    protected $attrs;

    /**
     * @return mixed
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * @param $name
     * @return $this
     */
    public function setName($name)
    {
        $this->name = $name;
        return $this;
    }

    /**
     * @return mixed
     */
    public function getPassword()
    {
        return $this->password;
    }

    /**
     * @param $password
     * @return $this
     */
    public function setPassword($password)
    {
        $this->password = $password;
        return $this;
    }

    /**
     * @return mixed
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * @param $id
     * @return $this
     */
    public function setId($id)
    {
        $this->id = $id;
        return $this;
    }

    /**
     * @return mixed
     */
    public function getAttrs()
    {
        return $this->attrs;
    }

    /**
     * @param $key
     * @param null $value
     * @return $this
     */
    public function setAttr($key, $value = null)
    {
        $this->attrs[$key] = $value;
        return $this;
    }

    /**
     * @param $key
     * @return mixed
     */
    public function getAttr($key)
    {
        return $this->attrs[$key];
    }

    /**
     * @param $attrs
     * @return $this
     */
    public function setAttrs($attrs = [])
    {
        $this->attrs = $attrs;
        return $this;
    }

}