|
@@ -3,20 +3,26 @@
|
|
|
namespace FTTHBundle\Entity;
|
|
|
|
|
|
use Doctrine\ORM\Mapping as ORM;
|
|
|
+use Gedmo\Mapping\Annotation as Gedmo;
|
|
|
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
|
|
|
use Symfony\Component\Validator\Constraints as Assert;
|
|
|
+use Doctrine\Common\Persistence\Event\LifecycleEventArgs;
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
- * @ORM\Table
|
|
|
+ * ONU
|
|
|
+ *
|
|
|
* @ORM\Entity
|
|
|
- * @UniqueEntity("ponSerialNumber")
|
|
|
+ * @ORM\HasLifecycleCallbacks
|
|
|
+ * @UniqueEntity(fields={"ponSerialNumber", "tenancyId"}, message="errors.duplicate_key")
|
|
|
+ * @ORM\Table(uniqueConstraints={@ORM\UniqueConstraint(name="unique_idx", columns={"pon_serial_number", "tenancy_id"})})
|
|
|
*/
|
|
|
class ONU
|
|
|
{
|
|
|
/**
|
|
|
* @var int
|
|
|
*
|
|
|
- * @ORM\Column(name="id", type="integer")
|
|
|
+ * @ORM\Column(name="id", type="integer", nullable=false)
|
|
|
* @ORM\Id
|
|
|
* @ORM\GeneratedValue(strategy="AUTO")
|
|
|
*/
|
|
@@ -47,7 +53,7 @@ class ONU
|
|
|
/**
|
|
|
* @var string
|
|
|
*
|
|
|
- * @ORM\Column(type="string", length=12, nullable=true, unique=true)
|
|
|
+ * @ORM\Column(type="string", length=12, nullable=false, unique=true)
|
|
|
*/
|
|
|
private $ponSerialNumber;
|
|
|
|
|
@@ -59,6 +65,35 @@ class ONU
|
|
|
*/
|
|
|
private $clientId;
|
|
|
|
|
|
+ /**
|
|
|
+ * @Gedmo\Timestampable(on="create")
|
|
|
+ * @ORM\Column(type="datetime")
|
|
|
+ */
|
|
|
+ protected $created;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @Gedmo\Timestampable(on="update")
|
|
|
+ * @ORM\Column(type="datetime")
|
|
|
+ */
|
|
|
+ protected $updated;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @ORM\Column(type="string", nullable=false, options={"default": "active"})
|
|
|
+ */
|
|
|
+ protected $currentState = 'active';
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @ORM\Column(type="string", nullable=false, options={"default": "pending"})
|
|
|
+ */
|
|
|
+ protected $transitionState = 'pending';
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @var int
|
|
|
+ *
|
|
|
+ * @ORM\Column(type="integer", nullable=false, options={"default":1})
|
|
|
+ */
|
|
|
+ protected $tenancyId = 1;
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* @return string
|
|
@@ -197,5 +232,85 @@ class ONU
|
|
|
{
|
|
|
return $this->clientId;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Get created
|
|
|
+ *
|
|
|
+ * @return \DateTime
|
|
|
+ */
|
|
|
+ public function getCreated()
|
|
|
+ {
|
|
|
+ return $this->created;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Get updated
|
|
|
+ *
|
|
|
+ * @return \DateTime
|
|
|
+ */
|
|
|
+ public function getUpdated()
|
|
|
+ {
|
|
|
+ return $this->updated;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Get currentState
|
|
|
+ *
|
|
|
+ */
|
|
|
+ public function getCurrentState()
|
|
|
+ {
|
|
|
+ return $this->currentState;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Set currentState
|
|
|
+ *
|
|
|
+ */
|
|
|
+ public function setCurrentState($currentState)
|
|
|
+ {
|
|
|
+ $this->currentState = $currentState;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Get transitionState
|
|
|
+ *
|
|
|
+ */
|
|
|
+ public function getTransitionState()
|
|
|
+ {
|
|
|
+ return $this->transitionState;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Set transitionState
|
|
|
+ *
|
|
|
+ */
|
|
|
+ public function setTransitionState($transitionState)
|
|
|
+ {
|
|
|
+ $this->transitionState = $transitionState;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Set tenancyId
|
|
|
+ *
|
|
|
+ * @param int $tenancyId
|
|
|
+ *
|
|
|
+ * @return ONU
|
|
|
+ */
|
|
|
+ public function setTenancyId($tenancyId)
|
|
|
+ {
|
|
|
+ $this->tenancyId = $tenancyId;
|
|
|
+
|
|
|
+ return $this;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Get tenancyId
|
|
|
+ *
|
|
|
+ * @return int
|
|
|
+ */
|
|
|
+ public function getTenancyId()
|
|
|
+ {
|
|
|
+ return $this->tenancyId;
|
|
|
+ }
|
|
|
}
|
|
|
|