<?php
namespace App\Entity\Account;
use App\Entity\Entry\Entry;
use App\Entity\Traits\ModifiedLifecycleTrait;
use App\Entity\Traits\ModifiedTimeTrait;
use App\Repository\Account\OwnerRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass=OwnerRepository::class)
* @ORM\Table(name="account_owner")
* @ORM\HasLifecycleCallbacks()
*/
class Owner
{
public function __toString(): string
{
return $this->companyName;
}
public const STATUS_ENABLE = 1;
public const STATUS_DISABLE = 2;
public const STATUS_COLD = 3;
public const STATUS_ENABLE_STR = "有効";
public const STATUS_DISABLE_STR = "無効";
public const STATUS_COLD_STR = "失効";
static public function getStatusArray(): array
{
return [
self::STATUS_ENABLE => self::STATUS_ENABLE_STR,
self::STATUS_DISABLE => self::STATUS_DISABLE_STR,
self::STATUS_COLD => self::STATUS_COLD_STR
];
}
use ModifiedTimeTrait;
use ModifiedLifecycleTrait;
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\OneToOne(targetEntity=Account::class, inversedBy="owner", cascade={"persist", "remove"})
* @ORM\JoinColumn(nullable=false)
*/
private $Account;
/**
* @ORM\Column(type="string", length=64)
*/
private $companyName;
/**
* @ORM\Column(type="string", length=128)
*/
private $companyKana;
/**
* @ORM\Column(type="string", length=32)
*/
private $representativeName;
/**
* @ORM\Column(type="string", length=48)
*/
private $representativeKana;
/**
* @ORM\Column(type="string", length=32)
*/
private $chargerName;
/**
* @ORM\Column(type="string", length=16)
*/
private $phone;
/**
* @ORM\Column(type="integer")
*/
private $status;
/**
* @ORM\OneToMany(targetEntity=Entry::class, mappedBy="Owner")
*/
private $entries;
/**
* @ORM\Column(type="string", length=48, nullable=true)
*/
private $managerName;
/**
* @ORM\Column(type="string", length=255)
*/
private $address;
/**
* @ORM\Column(type="string", length=255)
*/
private $url;
public function __construct()
{
$this->entries = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getAccount(): ?Account
{
return $this->Account;
}
public function setAccount(Account $Account): self
{
$this->Account = $Account;
return $this;
}
public function getCompanyName(): ?string
{
return $this->companyName;
}
public function setCompanyName(string $companyName): self
{
$this->companyName = $companyName;
return $this;
}
public function getCompanyKana(): ?string
{
return $this->companyKana;
}
public function setCompanyKana(string $companyKana): self
{
$this->companyKana = $companyKana;
return $this;
}
public function getRepresentativeName(): ?string
{
return $this->representativeName;
}
public function setRepresentativeName(string $representativeName): self
{
$this->representativeName = $representativeName;
return $this;
}
public function getRepresentativeKana(): ?string
{
return $this->representativeKana;
}
public function setRepresentativeKana(string $representativeKana): self
{
$this->representativeKana = $representativeKana;
return $this;
}
public function getChargerName(): ?string
{
return $this->chargerName;
}
public function setChargerName(string $chargerName): self
{
$this->chargerName = $chargerName;
return $this;
}
public function getPhone(): ?string
{
return $this->phone;
}
public function setPhone(string $phone): self
{
$this->phone = $phone;
return $this;
}
public function getStatus(): int
{
return $this->status;
}
public function setStatus(int $status): self
{
$this->status = $status;
return $this;
}
public function statusToString(): string
{
$choice = self::getStatusArray();
if(!$this->status || !isset($choice[$this->status])) return "";
return $choice[$this->status];
}
/**
* @return Collection|Entry[]
*/
public function getEntries(): Collection
{
return $this->entries;
}
public function addEntry(Entry $entry): self
{
if (!$this->entries->contains($entry)) {
$this->entries[] = $entry;
$entry->setOwner($this);
}
return $this;
}
public function removeEntry(Entry $entry): self
{
if ($this->entries->removeElement($entry)) {
// set the owning side to null (unless already changed)
if ($entry->getOwner() === $this) {
$entry->setOwner(null);
}
}
return $this;
}
public function getManagerName(): ?string
{
return $this->managerName;
}
public function setManagerName(?string $managerName): self
{
$this->managerName = $managerName;
return $this;
}
public function getAddress(): ?string
{
return $this->address;
}
public function setAddress(string $address): self
{
$this->address = $address;
return $this;
}
public function getUrl(): ?string
{
return $this->url;
}
public function setUrl(string $url): self
{
$this->url = $url;
return $this;
}
}