<?php
namespace App\Entity\Company;
use ApiPlatform\Core\Annotation\ApiResource;
use App\Entity\Provider\Provider;
use App\Repository\Company\CredentialsRepository;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Table(
* uniqueConstraints={@ORM\UniqueConstraint(columns={"provider_id","company_id"})}
* )
* @ORM\Entity(repositoryClass=CredentialsRepository::class)
* @UniqueEntity(
* fields={"provider","company"},
* message="credentials.duplicate.entry.provider-company"
* )
*/
class Credentials
{
const TYPE_API_KEY = 'APIKey';
const TYPE_LOGIN_PASSWORD = 'login-password';
const TYPES = [self::TYPE_API_KEY, self::TYPE_LOGIN_PASSWORD];
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=30)
* @Assert\NotBlank()
* @Assert\Choice(choices=Credentials::TYPES, message="Choose a valid type.")
*/
private $type = self::TYPE_LOGIN_PASSWORD;
/**
* @ORM\Column(type="string", length=50, nullable=true)
*/
private $loginEnvVarName;
/**
* @ORM\Column(type="string", length=50, nullable=true)
*/
private $passwordEnvVarName;
/**
* @ORM\Column(type="string", length=30, nullable=true)
*/
private $apiKeyVarName;
/**
* @ORM\ManyToOne(targetEntity=Company::class, inversedBy="credentials")
* @ORM\JoinColumn(nullable=false)
*/
private $company;
/**
* @ORM\ManyToOne(targetEntity=Provider::class)
* @ORM\JoinColumn(nullable=false)
*/
private $provider;
public function getId(): ?int
{
return $this->id;
}
/**
* @return string
*/
public function getType(): string
{
return $this->type;
}
/**
* @param string $type
* @return Credentials
*/
public function setType(string $type): Credentials
{
$this->type = $type;
return $this;
}
public function getLoginEnvVarName(): ?string
{
return $this->loginEnvVarName;
}
public function setLoginEnvVarName(?string $loginEnvVarName): self
{
$this->loginEnvVarName = $loginEnvVarName;
return $this;
}
public function getPasswordEnvVarName(): ?string
{
return $this->passwordEnvVarName;
}
public function setPasswordEnvVarName(?string $passwordEnvVarName): self
{
$this->passwordEnvVarName = $passwordEnvVarName;
return $this;
}
public function getApiKeyVarName(): ?string
{
return $this->apiKeyVarName;
}
public function setApiKeyVarName(?string $apiKeyVarName): self
{
$this->apiKeyVarName = $apiKeyVarName;
return $this;
}
public function getCompany(): ?Company
{
return $this->company;
}
public function setCompany(?Company $company): self
{
$this->company = $company;
return $this;
}
public function getProvider(): ?Provider
{
return $this->provider;
}
public function setProvider(?Provider $provider): self
{
$this->provider = $provider;
return $this;
}
}