src/Entity/Company/Credentials.php line 22

Open in your IDE?
  1. <?php
  2. namespace App\Entity\Company;
  3. use ApiPlatform\Core\Annotation\ApiResource;
  4. use App\Entity\Provider\Provider;
  5. use App\Repository\Company\CredentialsRepository;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  8. use Symfony\Component\Validator\Constraints as Assert;
  9. /**
  10.  * @ORM\Table(
  11.  *      uniqueConstraints={@ORM\UniqueConstraint(columns={"provider_id","company_id"})}
  12.  * )
  13.  * @ORM\Entity(repositoryClass=CredentialsRepository::class)
  14.  * @UniqueEntity(
  15.  *      fields={"provider","company"},
  16.  *      message="credentials.duplicate.entry.provider-company"
  17.  * )
  18.  */
  19. class Credentials
  20. {
  21.     const TYPE_API_KEY 'APIKey';
  22.     const TYPE_LOGIN_PASSWORD 'login-password';
  23.     const TYPES = [self::TYPE_API_KEYself::TYPE_LOGIN_PASSWORD];
  24.     /**
  25.      * @ORM\Id
  26.      * @ORM\GeneratedValue
  27.      * @ORM\Column(type="integer")
  28.      */
  29.     private $id;
  30.     /**
  31.      * @ORM\Column(type="string", length=30)
  32.      * @Assert\NotBlank()
  33.      * @Assert\Choice(choices=Credentials::TYPES, message="Choose a valid type.")
  34.      */
  35.     private $type self::TYPE_LOGIN_PASSWORD;
  36.     /**
  37.      * @ORM\Column(type="string", length=50, nullable=true)
  38.      */
  39.     private $loginEnvVarName;
  40.     /**
  41.      * @ORM\Column(type="string", length=50, nullable=true)
  42.      */
  43.     private $passwordEnvVarName;
  44.     /**
  45.      * @ORM\Column(type="string", length=30, nullable=true)
  46.      */
  47.     private $apiKeyVarName;
  48.     /**
  49.      * @ORM\ManyToOne(targetEntity=Company::class, inversedBy="credentials")
  50.      * @ORM\JoinColumn(nullable=false)
  51.      */
  52.     private $company;
  53.     /**
  54.      * @ORM\ManyToOne(targetEntity=Provider::class)
  55.      * @ORM\JoinColumn(nullable=false)
  56.      */
  57.     private $provider;
  58.     public function getId(): ?int
  59.     {
  60.         return $this->id;
  61.     }
  62.     /**
  63.      * @return string
  64.      */
  65.     public function getType(): string
  66.     {
  67.         return $this->type;
  68.     }
  69.     /**
  70.      * @param string $type
  71.      * @return Credentials
  72.      */
  73.     public function setType(string $type): Credentials
  74.     {
  75.         $this->type $type;
  76.         return $this;
  77.     }
  78.     public function getLoginEnvVarName(): ?string
  79.     {
  80.         return $this->loginEnvVarName;
  81.     }
  82.     public function setLoginEnvVarName(?string $loginEnvVarName): self
  83.     {
  84.         $this->loginEnvVarName $loginEnvVarName;
  85.         return $this;
  86.     }
  87.     public function getPasswordEnvVarName(): ?string
  88.     {
  89.         return $this->passwordEnvVarName;
  90.     }
  91.     public function setPasswordEnvVarName(?string $passwordEnvVarName): self
  92.     {
  93.         $this->passwordEnvVarName $passwordEnvVarName;
  94.         return $this;
  95.     }
  96.     public function getApiKeyVarName(): ?string
  97.     {
  98.         return $this->apiKeyVarName;
  99.     }
  100.     public function setApiKeyVarName(?string $apiKeyVarName): self
  101.     {
  102.         $this->apiKeyVarName $apiKeyVarName;
  103.         return $this;
  104.     }
  105.     public function getCompany(): ?Company
  106.     {
  107.         return $this->company;
  108.     }
  109.     public function setCompany(?Company $company): self
  110.     {
  111.         $this->company $company;
  112.         return $this;
  113.     }
  114.     public function getProvider(): ?Provider
  115.     {
  116.         return $this->provider;
  117.     }
  118.     public function setProvider(?Provider $provider): self
  119.     {
  120.         $this->provider $provider;
  121.         return $this;
  122.     }
  123. }