<?php
declare(strict_types=1);
namespace Croisiland\CommonBundle\Entity\Partner;
use Crea\ToolsBundle\Entity\LifecycleUserIdentifierTrait;
use Crea\ToolsBundle\Entity\StatefulTrait;
use Croisiland\CommonBundle\Repository\Partner\PartnerWebsiteRepository;
use Croisiland\CommonBundle\Annotation\Partner\PartnerWebsiteFormValidator;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\ORM\Mapping\UniqueConstraint;
/**
* @ORM\Entity(repositoryClass=PartnerWebsiteRepository::class)
* @PartnerWebsiteFormValidator(groups={"partner_website_form_validator"})
*/
class PartnerWebsite
{
use LifecycleUserIdentifierTrait;
use StatefulTrait;
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private ?int $id = null;
/**
* Relation OneToOne avec Partner
* @ORM\OneToOne(targetEntity=Partner::class, inversedBy="website")
* @ORM\JoinColumn(nullable=false)
*/
private ?Partner $partner = null;
// ========== Propriétés liées au site web ========== //
/**
* Sous-domaine du site partenaire
* Correspond à "subDomainName" dans l'ancienne entité Partner
* @ORM\Column(type="string", length=255, nullable=true, unique=true )
*
*/
private ?string $subDomain = null;
/**
* Indique si le logo doit être affiché
* Correspond à "showLogo" dans l'ancienne entité Partner
* @ORM\Column(type="boolean", options={"default": false})
*/
private ?bool $displayLogo = false;
/**
* Texte descriptif des remises (bannière principale)
* Correspond à "discountLabel" dans l'ancienne entité Partner
* @ORM\Column(type="string", length=255, nullable=true)
*/
private ?string $discountLabel = null;
/**
* Texte descriptif des remises (bannière secondaire)
* Correspond à "secondDiscountLabel" dans l'ancienne entité Partner
* @ORM\Column(type="string", length=255, nullable=true)
*/
private ?string $secondDiscountLabel = null;
// ========== Propriétés liées à l'authentification ========== //
/**
* Mot de passe chiffré
* Correspond à "password" dans l'ancienne entité Partner
* @ORM\Column(type="string", length=255, nullable=true)
*/
private ?string $password = null;
public function getId(): ?int
{
return $this->id;
}
public function getPartner(): ?Partner
{
return $this->partner;
}
public function setPartner(?Partner $partner): self
{
$this->partner = $partner;
return $this;
}
public function isActive(): bool
{
return $this->active;
}
public function setActive(bool $active): self
{
$this->active = $active;
return $this;
}
public function getSubDomain(): ?string
{
return $this->subDomain;
}
public function setSubDomain(?string $subDomain): self
{
$this->subDomain = $subDomain;
return $this;
}
public function isDisplayLogo(): bool
{
return (bool) $this->displayLogo;
}
public function setDisplayLogo(?bool $displayLogo): self
{
$this->displayLogo = $displayLogo;
return $this;
}
public function getDiscountLabel(): ?string
{
return $this->discountLabel;
}
public function setDiscountLabel(?string $discountLabel): self
{
$this->discountLabel = $discountLabel;
return $this;
}
public function getSecondDiscountLabel(): ?string
{
return $this->secondDiscountLabel;
}
public function setSecondDiscountLabel(?string $secondDiscountLabel): self
{
$this->secondDiscountLabel = $secondDiscountLabel;
return $this;
}
public function getPassword(): ?string
{
return $this->password;
}
public function setPassword(?string $password): self
{
$this->password = $password;
return $this;
}
}