<?php

namespace Mnm;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for SystemUserAlias StructType
 * @subpackage Structs
 */
class SystemUserAlias extends EntityBaseInt
{
    /**
     * The Type
     * Meta information extracted from the WSDL
     * - use: required
     * @var int
     */
    public $Type;
    /**
     * The Enabled
     * Meta information extracted from the WSDL
     * - use: required
     * @var bool
     */
    public $Enabled;
    /**
     * The Alias
     * @var string
     */
    public $Alias;
    /**
     * The SystemCreateDate
     * @var string
     */
    public $SystemCreateDate;
    /**
     * The SystemDeleteDate
     * @var string
     */
    public $SystemDeleteDate;
    /**
     * Constructor method for SystemUserAlias
     * @uses SystemUserAlias::setType()
     * @uses SystemUserAlias::setEnabled()
     * @uses SystemUserAlias::setAlias()
     * @uses SystemUserAlias::setSystemCreateDate()
     * @uses SystemUserAlias::setSystemDeleteDate()
     * @param int $type
     * @param bool $enabled
     * @param string $alias
     * @param string $systemCreateDate
     * @param string $systemDeleteDate
     */
    public function __construct($type = null, $enabled = null, $alias = null, $systemCreateDate = null, $systemDeleteDate = null)
    {
        $this
            ->setType($type)
            ->setEnabled($enabled)
            ->setAlias($alias)
            ->setSystemCreateDate($systemCreateDate)
            ->setSystemDeleteDate($systemDeleteDate);
    }
    /**
     * Get Type value
     * @return int
     */
    public function getType()
    {
        return $this->Type;
    }
    /**
     * Set Type value
     * @param int $type
     * @return \Mnm\SystemUserAlias
     */
    public function setType($type = null)
    {
        $this->Type = $type;
        return $this;
    }
    /**
     * Get Enabled value
     * @return bool
     */
    public function getEnabled()
    {
        return $this->Enabled;
    }
    /**
     * Set Enabled value
     * @param bool $enabled
     * @return \Mnm\SystemUserAlias
     */
    public function setEnabled($enabled = null)
    {
        $this->Enabled = $enabled;
        return $this;
    }
    /**
     * Get Alias value
     * @return string|null
     */
    public function getAlias()
    {
        return $this->Alias;
    }
    /**
     * Set Alias value
     * @param string $alias
     * @return \Mnm\SystemUserAlias
     */
    public function setAlias($alias = null)
    {
        $this->Alias = $alias;
        return $this;
    }
    /**
     * Get SystemCreateDate value
     * @return string|null
     */
    public function getSystemCreateDate()
    {
        return $this->SystemCreateDate;
    }
    /**
     * Set SystemCreateDate value
     * @param string $systemCreateDate
     * @return \Mnm\SystemUserAlias
     */
    public function setSystemCreateDate($systemCreateDate = null)
    {
        $this->SystemCreateDate = $systemCreateDate;
        return $this;
    }
    /**
     * Get SystemDeleteDate value
     * @return string|null
     */
    public function getSystemDeleteDate()
    {
        return $this->SystemDeleteDate;
    }
    /**
     * Set SystemDeleteDate value
     * @param string $systemDeleteDate
     * @return \Mnm\SystemUserAlias
     */
    public function setSystemDeleteDate($systemDeleteDate = null)
    {
        $this->SystemDeleteDate = $systemDeleteDate;
        return $this;
    }
    /**
     * Method called when an object has been exported with var_export() functions
     * It allows to return an object instantiated with the values
     * @see AbstractStructBase::__set_state()
     * @uses AbstractStructBase::__set_state()
     * @param array $array the exported values
     * @return \Mnm\SystemUserAlias
     */
    public static function __set_state(array $array)
    {
        return parent::__set_state($array);
    }
    /**
     * Method returning the class name
     * @return string __CLASS__
     */
    public function __toString()
    {
        return __CLASS__;
    }
}
