<?php
namespace App\V4\Model\Company;
use App\Model\IriNormalizableInterface;
use App\Model\NormalizeAsIRITrait;
use App\Model\Traits\BlamableTrait;
use App\Model\Traits\ImportableObjectTrait;
use App\Model\Traits\TimestampableTrait;
use App\V4\Model\LegalForm\LegalForm;
use App\V4\Model\Naf\Naf;
use App\V4\Model\Params\Params;
use App\V4\Model\Prospect\Prospect;
use App\V4\Model\StructureType\StructureType;
use App\V4\Model\Workforce\Workforce;
use DateTimeInterface;
use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Validator\Constraints as Assert;
class Company implements IriNormalizableInterface
{
use TimestampableTrait;
use BlamableTrait;
use ImportableObjectTrait;
use NormalizeAsIRITrait;
/**
* @var string
*
* @Groups({
* "prospect:list", "prospect:read", "prospect:write", "prospect:update"
* })
*/
private $id;
/**
* @var string|null
*/
private $customerId;
/**
* @var Prospect|null
*/
private $prospect;
/**
* @var string|null
*
* @Groups({
* "prospect:list", "prospect:read", "prospect:write", "prospect:update"
* })
* @Assert\NotBlank(
* message="Ce champs ne peut pas ĂȘtre vide"
* )
*/
private $name;
/**
* @var Naf|null
*
* @Groups({
* "prospect:list", "prospect:read", "prospect:write", "prospect:update"
* })
*/
private $naf;
/**
* @var LegalForm|null
*
* @Groups({
* "prospect:list", "prospect:read", "prospect:write", "prospect:update"
* })
*/
private $legalForm;
/**
* @var string|null
*
* @Groups({
* "prospect:list", "prospect:read", "prospect:write", "prospect:update"
* })
*/
private $siret;
/**
* @var string|null
*
* @Groups({
* "prospect:list", "prospect:read", "prospect:write", "prospect:update"
* })
*/
private $webSite;
/**
* @var string|null
*
* @Groups({
* "prospect:list", "prospect:read", "prospect:write", "prospect:update"
* })
*/
private $turnover;
/**
* @var DateTimeInterface|null
*
* @Groups({
* "prospect:list", "prospect:read", "prospect:write", "prospect:update"
* })
*/
private $creationYear;
/**
* @var string|null
*
* @Groups({
* "prospect:list", "prospect:read", "prospect:write", "prospect:update"
* })
*/
private $nameComplement;
/**
* @var string|null
*
* @Groups({
* "prospect:list", "prospect:read", "prospect:write", "prospect:update"
* })
*/
private $socialCapital;
/**
* @var StructureType|null
*
* @Groups({
* "prospect:list", "prospect:read", "prospect:write", "prospect:update"
* })
*/
private $structureType;
/**
* @var Workforce|null
*
* @Groups({
* "prospect:list", "prospect:read", "prospect:write", "prospect:update"
* })
*/
private $workforce;
/**
* @return string|null
*/
public function getId(): ?string
{
return $this->id;
}
/**
* @param string|null $id
*
* @return $this
*/
public function setId(?string $id): self
{
$this->id = $id;
return $this;
}
/**
* @return string|null
*/
public function getCustomerId(): ?string
{
return $this->customerId;
}
/**
* @return string|null
*/
public function getWebSite(): ?string
{
return $this->webSite;
}
/**
* @param mixed $webSite
*
* @return Company
*/
public function setWebSite(?string $webSite)
{
$this->webSite = $webSite;
return $this;
}
/**
* @return DateTimeInterface|null
*/
public function getCreationYear(): ?DateTimeInterface
{
return $this->creationYear;
}
/**
* @param DateTimeInterface|null $creationYear
*
* @return Company
*
* @throws \Exception
*/
public function setCreationYear(?DateTimeInterface $creationYear): Company
{
$this->creationYear = $creationYear;
return $this;
}
/**
* @param string|null $customerId
*
* @return $this
*/
public function setCustomerId(?string $customerId): self
{
$this->customerId = $customerId;
return $this;
}
/**
* @return Prospect|null
*/
public function getProspect(): ?Prospect
{
return $this->prospect;
}
/**
* @param Prospect|null $prospect
*
* @return $this
*/
public function setProspect(?Prospect $prospect): self
{
$this->prospect = $prospect;
return $this;
}
/**
* @return string|null
*
* @Groups({"list", "read", "read_prospect"})
*/
public function getName(): ?string
{
return $this->name;
}
/**
* @param string|null $name
*
* @return $this
*/
public function setName(?string $name): self
{
$this->name = $name;
return $this;
}
/**
* @return string|null
*/
public function getSiret(): ?string
{
return $this->siret;
}
/**
* @param string|null $siret
*
* @return $this
*/
public function setSiret(?string $siret): self
{
$this->siret = $siret;
return $this;
}
/**
* @return StructureType|null
*/
public function getStructureType(): ?Params
{
return $this->structureType;
}
/**
* @param Params|null $structureType
*
* @return $this
*/
public function setStructureType(?Params $structureType): self
{
$this->structureType = $structureType;
return $this;
}
/**
* @return string|null
*/
public function getNameComplement(): ?string
{
return $this->nameComplement;
}
/**
* @param string|null $nameComplement
*
* @return Company
*/
public function setNameComplement(?string $nameComplement): Company
{
$this->nameComplement = $nameComplement;
return $this;
}
/**
* @return string|null
*/
public function getSocialCapital(): ?string
{
return $this->socialCapital;
}
/**
* @param string|null $socialCapital
*
* @return Company
*/
public function setSocialCapital(?string $socialCapital): Company
{
$this->socialCapital = $socialCapital;
return $this;
}
/**
* @return string|null
*/
public function getTurnover(): ?string
{
return $this->turnover;
}
/**
* @param string|null $turnover
*
* @return Company
*/
public function setTurnover(?string $turnover): Company
{
$this->turnover = $turnover;
return $this;
}
/**
* @return Workforce|null
*/
public function getWorkforce(): ?Params
{
return $this->workforce;
}
/**
* @param Params|null $workforce
*
* @return Company
*/
public function setWorkforce(?Params $workforce): Company
{
$this->workforce = $workforce;
return $this;
}
/**
* @return Naf|null
*/
public function getNaf(): ?Naf
{
return $this->naf;
}
/**
* @param Naf|null $naf
*
* @return Company
*/
public function setNaf(?Naf $naf): Company
{
$this->naf = $naf;
return $this;
}
/**
* @return LegalForm|null
*/
public function getLegalForm(): ?Params
{
return $this->legalForm;
}
/**
* @param Params|null $legalForm
*
* @return Company
*/
public function setLegalForm(?Params $legalForm): Company
{
$this->legalForm = $legalForm;
return $this;
}
}