<?php
namespace App\Entity;
use ApiPlatform\Core\Annotation\ApiFilter;
use ApiPlatform\Core\Annotation\ApiResource;
use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\OrderFilter;
use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\SearchFilter;
use ApiPlatform\Core\Serializer\Filter\PropertyFilter;
use App\Validator as AppAssert;
use DateTime;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Exception;
use Fluoresce\ValidateEmbedded\Constraints as FluoresceAssert;
use Gedmo\Mapping\Annotation as Gedmo;
use Gedmo\Timestampable\Traits\TimestampableEntity;
use Greg0ire\Enum\Bridge\Symfony\Validator\Constraint\Enum as EnumAssert;
use Symfony\Component\HttpFoundation\File\File;
use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Validator\Constraints as Assert;
use Vich\UploaderBundle\Entity\File as EmbeddedFile;
use Vich\UploaderBundle\Mapping\Annotation as Vich;
/**
* @ORM\Entity(repositoryClass="App\Repository\CompanyRepository")
* @ORM\HasLifecycleCallbacks()
* @Vich\Uploadable
* @AppAssert\DynamicValidationGroups(property="videoType", value="App\Enum\CompanyVideoType::EMBED", validationGroups={"VideoTypeEmbed"})
* @AppAssert\DynamicValidationGroups(property="videoType", value="App\Enum\CompanyVideoType::UPLOAD", validationGroups={"VideoTypeUpload"})
*/
#[ApiResource(
iri: 'https://schema.org/Company',
normalizationContext: ['groups' => ['company:item', 'company:list']],
denormalizationContext: ['groups' => ['company:write']],
collectionOperations: [
'get' => ['normalization_context' => ['groups' => ['company:list']]],
'post' => [
'security' => "is_granted('ROLE_ADMIN')",
'input_formats' => [
'multipart' => ['multipart/form-data'],
],
],
],
itemOperations: [
'get' => ['normalization_context' => ['groups' => ['company:item']]],
'put' => ['security' => "is_granted('ROLE_ADMIN') or object.owner == user"],
],
)]
#[ApiFilter(PropertyFilter::class)]
#[ApiFilter(SearchFilter::class, properties: ['id', 'name' => 'partial', 'industry' => 'exact'])]
#[ApiFilter(OrderFilter::class, properties: ['id', 'name', 'industry.name', 'nbFollowers', 'globalAverage', 'hasSubscription', 'featured', 'validated', 'isPaternityLeave', 'isMaternityLeave', 'isAdoptiveLeave', 'isPaidTimeOff', 'isDemographics', 'isPostJobs', 'completionPercentage'], arguments: ['orderParameterName' => 'order'])]
class Company
{
use TimestampableEntity;
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
* @Groups({"company:item","company:list", "pinpointCampaign:list"})
*/
public ?int $id = null;
/**
* @var string
*
* @ORM\Column(type="string", length=64)
* @Assert\Length(max=64)
* @Assert\NotBlank()
* @Groups({"company:item","company:list", "company:write"})
*/
#[ApiFilter(SearchFilter::class, strategy: 'start')]
public $name;
/**
* @var string
*
* @ORM\Column(type="string", length=128)
* @Gedmo\Slug(fields={"name"})
*/
private $slug;
/**
* @var string
*
* @ORM\Column(type="text", nullable=true)
*/
private $about;
/**
* @var Address
*
* @ORM\Embedded(class="App\Entity\Address")
* @FluoresceAssert\Validate(embeddedGroups={"Default"})
*/
private $address;
/**
* @var Industry
*
* @ORM\ManyToOne(targetEntity="App\Entity\Industry")
* @ORM\JoinColumn(nullable=false)
* @ORM\OrderBy({"name" = "ASC"})
* @Assert\NotNull()
* @Groups({"company:item","company:list","company:write"})
*/
public $industry;
/**
* @var string
*
* @ORM\Column(type="string", length=255, nullable=true)
* @Assert\Length(max=255)
*/
private $website;
/**
* @var string
*
* @ORM\Column(name="facebook", type="string", length=255, nullable=true)
* @Assert\Length(max=255)
*/
private $facebook;
/**
* @var string
*
* @ORM\Column(name="twitter", type="string", length=255, nullable=true)
* @Assert\Length(max=255)
*/
private $twitter;
/**
* @var string
*
* @ORM\Column(name="linkedin", type="string", length=255, nullable=true)
* @Assert\Length(max=255)
*/
private $linkedin;
/**
* @var string
*
* @ORM\Column(name="instagram", type="string", length=255, nullable=true)
* @Assert\Length(max=255)
*/
private $instagram;
/**
* @var string
*
* @ORM\Column(type="string", length=1000, nullable=true)
* @Assert\Length(max=1000)
*/
private $dashboardUrl;
/**
* @var string
*
* @ORM\Column(type="string", length=1000, nullable=true)
* @Assert\Length(max=1000)
*/
private $dashboardCompletionUrl;
/**
* @var string
*
* @ORM\Column(type="string", length=1000, nullable=true)
* @Assert\Length(max=1000)
*/
private $dashboardQuestionUrl;
/**
* @var string
*
* @ORM\Column(type="string", length=1000, nullable=true)
* @Assert\Length(max=1000)
*/
private $dashboardAssessmentUrl;
/**
* @var string
*
* @ORM\Column(type="string", length=1000, nullable=true)
* @Assert\Length(max=1000)
*/
private $dashboardDisparityUrl;
/**
* @var string
*
* @ORM\Column(type="string", length=1000, nullable=true)
* @Assert\Length(max=1000)
*/
private $dashboardPartnerUrl;
/**
* @var string
*
* @ORM\Column(type="string", length=1000, nullable=true)
* @Assert\Length(max=1000)
*/
private $dashboardMatterUrl;
/**
* @var string
*
* @ORM\Column(type="string", length=1000, nullable=true)
* @Assert\Length(max=1000)
*/
private $dashboardLegalUrl;
/**
* @var string
*
* @ORM\Column(type="string", length=1000, nullable=true)
* @Assert\Length(max=1000)
*/
private $dashboardInsightUrl;
/**
* @var EmployeesRange
*
* @ORM\ManyToOne(targetEntity="App\Entity\EmployeesRange")
* @ORM\JoinColumn(nullable=false)
* @Assert\NotNull()
*/
public $employeesRange;
/**
* @var string
*
* @ORM\Column(type="string", length=4, nullable=true)
* @Assert\Range(min="1000")
*/
private $foundedAt;
/**
* @var string
*
* @ORM\Column(type="string", length=64, nullable=true)
* @Assert\Length(max=64)
* @EnumAssert(class="App\Enum\CompanyOwnerType")
*/
private $ownerType;
#[Groups(['company:item'])]
public ?string $coverUrl = null;
/**
* @ORM\Embedded(class="Vich\UploaderBundle\Entity\File")
*/
public $cover;
/**
* @Vich\UploadableField(mapping="company_cover", fileNameProperty="cover.name", size="cover.size", mimeType="cover.mimeType", originalName="cover.originalName", dimensions="cover.dimensions")
* @Assert\Image(maxSize="8M", mimeTypes={"image/jpeg", "image/png", "image/gif"})
* @Assert\Expression(expression="this.getCoverFile() or this.getCover().getName()")
*/
#[Groups(['company:write'])]
public ?File $coverFile = null;
#[Groups(['company:item', "company:list"])]
public ?string $logoUrl = null;
/**
* @ORM\Embedded(class="Vich\UploaderBundle\Entity\File")
*/
public $logo;
/**
* @Vich\UploadableField(mapping="company_logo", fileNameProperty="logo.name", size="logo.size", mimeType="logo.mimeType", originalName="logo.originalName", dimensions="logo.dimensions")
* @Assert\Image(maxSize="8M", mimeTypes={"image/jpeg", "image/png", "image/gif"})
* @Assert\Expression(expression="this.getLogoFile() or this.getLogo().getName()")
*/
#[Groups(['company:write'])]
public ?File $logoFile = null;
/**
* @var string
*
* @ORM\Column(type="string", length=64, nullable=true)
* @Assert\Length(max=64)
* @EnumAssert(class="App\Enum\CompanyVideoType")
*/
private $videoType;
#[Groups(['company:item', "company:list"])]
public ?string $videoUploadedUrl = null;
/**
* @ORM\Embedded(class="Vich\UploaderBundle\Entity\File")
*/
public $videoUploaded;
/**
* @Vich\UploadableField(mapping="company_video_uploaded", fileNameProperty="videoUploaded.name", size="videoUploaded.size", mimeType="videoUploaded.mimeType", originalName="videoUploaded.originalName", dimensions="videoUploaded.dimensions")
* @Assert\Image(mimeTypes={"video/mp4", "video/avi"})
* @Assert\Expression(expression="this.getVideoUploadedFile() or this.getVideoUploaded().getName()", groups={"VideoTypeUpload"})
*/
#[Groups(['company:write'])]
public ?File $videoUploadedFile = null;
/**
* @ORM\Embedded(class="App\Entity\VideoEmbedded")
* @FluoresceAssert\Validate(groups={"VideoTypeEmbed"}, embeddedGroups={"Default"})
*/
private $videoEmbedded;
/**
* @var ArrayCollection|Article[]
*
* @ORM\OneToMany(targetEntity="App\Entity\Article", mappedBy="company", cascade={"persist"})
*/
private $articles;
/**
* @var ArrayCollection|Newsroom[]
*
* @ORM\OneToMany(targetEntity="App\Entity\Newsroom", mappedBy="company", cascade={"persist"})
*/
private $newsrooms;
/**
* @var ArrayCollection|Blog[]
*
* @ORM\OneToMany(targetEntity="App\Entity\Blog", mappedBy="company", cascade={"persist"})
*/
private $blogs;
/**
* @var ArrayCollection|Review[]
*
* @ORM\OneToMany(targetEntity="App\Entity\Review", cascade={"persist"}, mappedBy="company")
* @Assert\Valid()
*/
private $reviews;
/**
* @ORM\Column(type="decimal", precision=8, scale=6, nullable=true)
* @Assert\Range(min="0", max="10")
*/
private $diversityAcrossOrganizationAvg;
/**
* @ORM\Column(type="decimal", precision=8, scale=6, nullable=true)
* @Assert\Range(min="0", max="10")
*/
private $diversityInLeadershipAvg;
/**
* @ORM\Column(type="decimal", precision=8, scale=6, nullable=true)
* @Assert\Range(min="0", max="10")
*/
private $workLikeBalanceAvg;
/**
* @ORM\Column(type="decimal", precision=8, scale=6, nullable=true)
* @Assert\Range(min="0", max="10")
*/
private $overallInclusivenessAvg;
/**
* @ORM\Column(type="decimal", precision=8, scale=6, nullable=true)
* @Assert\Range(min="0", max="10")
*/
private $benefitsAndResourcesAvg;
/**
* @ORM\Column(type="decimal", precision=8, scale=6, nullable=true)
* @Assert\Range(min="0", max="10")
*/
private $enpsAvg;
/**
* @ORM\Column(type="decimal", precision=8, scale=6, nullable=true)
* @Assert\Range(min="0", max="10")
* @Groups({"company:item","company:list","company:write"})
*/
private $globalAverage;
/**
* @ORM\Column(type="integer", options={"unsigned"=true})
* @Groups({"company:item","company:list", "company:write"})
*/
private $nbFollowers;
/**
* @ORM\Column(type="integer", options={"unsigned"=true})
*/
private $nbUnfollowers;
/**
* @ORM\Column(type="integer", options={"unsigned"=true})
*/
private $nbReviews;
/**
* @var ArrayCollection
*
* @ORM\OneToMany(targetEntity="App\Entity\Admin", mappedBy="company", orphanRemoval=true, cascade={"persist"})
* @Groups({"company:item"})
*/
private $admins;
/**
* @ORM\Column(type="boolean")
* @Assert\Type("bool")
* @Groups({"company:item","company:list", "company:write"})
*/
private $featured;
/**
* @ORM\Column(type="boolean")
* @Assert\Type("bool")
* @Groups({"company:item", "company:write"})
*/
private $hasSubscription;
/**
* @var Collection
*
* @ORM\OneToMany(targetEntity="App\Entity\Contract", mappedBy="company", cascade={"persist"})
*/
private $contracts;
/**
* @var Collection
*
* @ORM\OneToMany(targetEntity="App\Entity\FeedItem", mappedBy="company", cascade={"persist"})
*/
private $feedItems;
/**
* @var Collection
*
* @ORM\OneToMany(targetEntity="App\Entity\CompanyContribution", mappedBy="company", cascade={"persist"})
*/
private $formContributions;
/**
* @var Collection
*
* @ORM\OneToMany(targetEntity="App\Entity\SurveyContribution", mappedBy="company", cascade={"persist"})
*/
private $surveyContributions;
/**
* @var ArrayCollection|CompanyInformationPage[]
*
* @ORM\OneToMany(targetEntity="App\Entity\CompanyInformationPage", mappedBy="company", cascade={"persist"})
*/
private $informationPages;
/**
* @var ArrayCollection|UserFollowCompany[]
*
* @ORM\OneToMany(targetEntity="App\Entity\UserFollowCompany", mappedBy="company", cascade={"persist"})
*/
private $userFollowedCompanies;
/**
* @var ArrayCollection|SurveyForm[]
*
* @ORM\OneToMany(targetEntity="App\Entity\SurveyForm", mappedBy="company", cascade={"persist"})
*/
private $surveyForms;
/**
* @var ArrayCollection|CompanySurveyForm[]
*
* @ORM\OneToMany(targetEntity="App\Entity\CompanySurveyForm", mappedBy="company", cascade={"persist"})
*/
private $companySurveyForms;
/**
* @var ArrayCollection|AnnualReport[]
*
* @ORM\OneToMany(targetEntity="App\Entity\AnnualReport", mappedBy="company", cascade={"persist"})
*/
private $annualReports;
/**
* @ORM\Column(type="boolean")
* @Assert\Type("bool")
* @Groups({"company:item","company:list", "company:write"})
*/
private $validated;
/**
* @var ArrayCollection|Domain[]
*
* @ORM\OneToMany(targetEntity="App\Entity\Domain", mappedBy="company", cascade={"persist", "remove"})
*/
private $domains;
/**
* @var ArrayCollection|UserCompany[]
*
* @ORM\OneToMany(targetEntity="App\Entity\UserCompany", mappedBy="company", orphanRemoval=true)
*/
private $userCompanies;
/**
* @ORM\Column(type="boolean")
* @Assert\Type(type="boolean")
* @Groups({"company:item","company:list"})
*/
private $isLogo;
/**
* @ORM\Column(type="boolean")
* @Assert\Type(type="boolean")
* @Groups({"company:item","company:list"})
*/
private $isHero;
/**
* @ORM\Column(type="boolean")
* @Assert\Type(type="boolean")
* @Groups({"company:item","company:list", "company:write"})
*/
private $isPaternityLeave;
/**
* @ORM\Column(type="boolean")
* @Assert\Type(type="boolean")
* @Groups({"company:item","company:list","company:write"})
*/
private $isMaternityLeave;
/**
* @ORM\Column(type="boolean")
* @Assert\Type(type="boolean")
* @Groups({"company:item","company:list", "company:write"})
*/
private $isAdoptiveLeave;
/**
* @ORM\Column(type="boolean")
* @Assert\Type(type="boolean")
* @Groups({"company:item","company:list", "company:write"})
*/
private $isPaidTimeOff;
/**
* @ORM\Column(type="boolean")
* @Assert\Type(type="boolean")
* @Groups({"company:item","company:list", "company:write"})
*/
private $isDemographics;
/**
* @var string
*
* @ORM\Column(type="string", length=64, nullable=true)
* @Assert\Length(max=64)
* @EnumAssert(class="App\Enum\ReportFrequencyType")
*/
private $reportFrequency;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $reportGeneratedAt;
/**
* @ORM\Column(type="boolean")
* @Assert\Type(type="boolean")
* @Groups({"company:item","company:list", "company:write"})
*/
private $isPostJobs;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $feedGeneratedAt;
/**
* @ORM\ManyToMany(targetEntity="App\Entity\EeocFeed", mappedBy="companies")
*/
private $eeocFeeds;
/**
* @ORM\OneToOne(targetEntity=CompanyFeed::class, mappedBy="company", cascade={"persist", "remove"})
*/
private $companyFeed;
/**
* @ORM\Column(type="integer", options={"unsigned"=true})
*/
private $nbComplaints;
/**
* @ORM\Column(type="decimal", precision=8, scale=6, nullable=true)
* @Assert\Range(min="0", max="10")
*/
private $eeoReportAvg;
/**
* @ORM\Column(type="decimal", precision=8, scale=6, nullable=true)
* @Assert\Range(min="0", max="10")
*/
private $eeocRecognitionAvg;
/**
* @ORM\Column(type="decimal", precision=8, scale=6, nullable=true)
* @Assert\Range(min="0", max="10")
*/
private $awardsRecognitionAvg;
/**
* @ORM\Column(type="decimal", precision=8, scale=6, nullable=true)
* @Assert\Range(min="0", max="10")
*/
private $deiInitiativesAvg;
/**
* @ORM\Column(type="decimal", precision=8, scale=6, nullable=true)
* @Assert\Range(min="0", max="10")
*/
private $benefitsPolicyAvg;
/**
* @ORM\Column(type="decimal", precision=8, scale=6, nullable=true)
* @Assert\Range(min="0", max="10")
*/
private $employeePerksAvg;
/**
* @ORM\Column(type="decimal", precision=8, scale=6, nullable=true)
* @Assert\Range(min="0", max="10")
*/
private $recruitmentAvg;
/**
* @ORM\Column(type="decimal", precision=8, scale=6, nullable=true)
* @Assert\Range(min="0", max="10")
*/
private $epiAvg;
/**
* @ORM\Column(type="decimal", precision=8, scale=6, nullable=true)
* @Assert\Range(min="0", max="10")
*/
private $mpiAvg;
/**
* @var ArrayCollection|SurveyCompany[]
*
* @ORM\OneToMany(targetEntity="App\Entity\SurveyCompany", mappedBy="company", cascade={"persist"})
*/
public $surveyCompanies;
/**
* @var ArrayCollection|SurveyCampaignSubmission[]
*
* @ORM\OneToMany(targetEntity="App\Entity\SurveyCampaignSubmission", mappedBy="surveyCampaign", cascade={"persist"})
*/
public $surveyCampaignSubmissions;
/**
* @var ArrayCollection|Department[]
*
* @ORM\ManyToMany(targetEntity="App\Entity\Department", inversedBy="companies")
*/
private $departments;
/**
* @var ArrayCollection|Region[]
*
* @ORM\ManyToMany(targetEntity="App\Entity\Region", inversedBy="companies")
*/
private $regions;
/**
* @var ArrayCollection|City[]
*
* @ORM\ManyToMany(targetEntity="App\Entity\City", inversedBy="companies")
*/
private $cities;
/**
* @var ArrayCollection|Position[]
*
* @ORM\ManyToMany(targetEntity="App\Entity\Position", inversedBy="companies")
*/
private $positions;
/**
* @var ArrayCollection|Division[]
*
* @ORM\ManyToMany(targetEntity="App\Entity\Division", inversedBy="companies")
*/
private $divisions;
/**
* @var ArrayCollection|PyramidHead[]
*
* @ORM\ManyToMany(targetEntity="App\Entity\PyramidHead", inversedBy="companies")
*/
private $pyramidHeads;
/**
* @var ArrayCollection|DivisionHead[]
*
* @ORM\ManyToMany(targetEntity="App\Entity\DivisionHead", inversedBy="companies")
*/
private $divisionHeads;
/**
* @var Collection
* @ORM\OneToMany(targetEntity=company::class, mappedBy="company")
*/
private $users;
/**
* @ORM\Column(type="decimal", precision=8, scale=2, nullable=true)
* @Assert\Range(min="0", max="100")
* @Groups({"company:item","company:list", "company:write"})
*/
private $completionPercentage;
/**
* Company constructor.
*/
public function __construct()
{
$this->users = new ArrayCollection();
$this->cities = new ArrayCollection();
$this->departments = new ArrayCollection();
$this->regions = new ArrayCollection();
$this->divisions = new ArrayCollection();
$this->positions = new ArrayCollection();
$this->divisionHeads = new ArrayCollection();
$this->pyramidHeads = new ArrayCollection();
$this->cover = new EmbeddedFile();
$this->logo = new EmbeddedFile();
$this->videoUploaded = new EmbeddedFile();
$this->videoEmbedded = new VideoEmbedded();
$this->articles = new ArrayCollection();
$this->newsrooms = new ArrayCollection();
$this->blogs = new ArrayCollection();
$this->reviews = new ArrayCollection();
$this->nbFollowers = 0;
$this->nbUnfollowers = 0;
$this->address = new Address();
$this->nbReviews = 0;
$this->nbComplaints = 0;
$this->admins = new ArrayCollection();
$this->featured = false;
$this->hasSubscription = false;
$this->contracts = new ArrayCollection();
$this->feedItems = new ArrayCollection();
$this->formContributions = new ArrayCollection();
$this->userFollowedCompanies = new ArrayCollection();
$this->surveyForms = new ArrayCollection();
$this->companySurveyForms = new ArrayCollection();
$this->surveyContributions = new ArrayCollection();
$this->annualReports = new ArrayCollection();
$this->validated = false;
$this->domains = new ArrayCollection();
$this->userCompanies = new ArrayCollection();
$this->informationPages = new ArrayCollection();
$this->isLogo = false;
$this->isHero = false;
$this->isPaternityLeave = false;
$this->isMaternityLeave = false;
$this->isAdoptiveLeave = false;
$this->isPaidTimeOff = false;
$this->isDemographics = false;
$this->isPostJobs = false;
$this->eeocFeeds = new ArrayCollection();
$this->eeoReportAvg = 0;
$this->eeocRecognitionAvg = 0;
$this->awardsRecognitionAvg = 0;
$this->deiInitiativesAvg = 0;
$this->benefitsPolicyAvg = 0;
$this->employeePerksAvg = 0;
$this->recruitmentAvg = 0;
$this->epiAvg = 0;
$this->mpiAvg = 0;
$this->completionPercentage = 0;
$this->surveyCompanies = new ArrayCollection();
$this->surveyCampaignSubmissions = new ArrayCollection();
}
/**
* @return string
*/
public function __toString()
{
return $this->name;
}
public function getCover(): EmbeddedFile
{
return $this->cover;
}
public function setCover(EmbeddedFile $cover): self
{
$this->cover = $cover;
return $this;
}
/**
* @return mixed
*/
public function getCoverFile(): ?File
{
return $this->coverFile;
}
/**
* @param mixed $coverFile
*
* @throws Exception
*/
public function setCoverFile(?File $coverFile): self
{
$this->coverFile = $coverFile;
if ($coverFile) {
$this->updatedAt = new DateTime();
}
return $this;
}
public function getLogo(): EmbeddedFile
{
return $this->logo;
}
public function setLogo(EmbeddedFile $logo): self
{
$this->logo = $logo;
return $this;
}
/**
* @return mixed
*/
public function getLogoFile(): ?File
{
return $this->logoFile;
}
/**
* @param mixed $logoFile
*
* @throws Exception
*/
public function setLogoFile(?File $logoFile): self
{
$this->logoFile = $logoFile;
if ($logoFile) {
$this->updatedAt = new DateTime();
}
return $this;
}
public function getVideoUploaded(): EmbeddedFile
{
return $this->videoUploaded;
}
public function setVideoUploaded(EmbeddedFile $videoUploaded): self
{
$this->videoUploaded = $videoUploaded;
return $this;
}
public function getId(): ?int
{
return $this->id;
}
public function getName(): ?string
{
return $this->name;
}
public function setName(string $name): self
{
$this->name = $name;
return $this;
}
public function getAbout(): ?string
{
return $this->about;
}
public function setAbout(string $about): self
{
$this->about = $about;
return $this;
}
public function getSlug(): ?string
{
return $this->slug;
}
public function setSlug(string $slug): self
{
$this->slug = $slug;
return $this;
}
public function getWebsite(): ?string
{
return $this->website;
}
public function setWebsite(?string $website): self
{
$this->website = $website;
return $this;
}
public function getFacebook(): ?string
{
return $this->facebook;
}
public function setFacebook(?string $facebook): self
{
$this->facebook = $facebook;
return $this;
}
public function getTwitter(): ?string
{
return $this->twitter;
}
public function setTwitter(?string $twitter): self
{
$this->twitter = $twitter;
return $this;
}
public function getLinkedin(): ?string
{
return $this->linkedin;
}
public function setLinkedin(?string $linkedin): self
{
$this->linkedin = $linkedin;
return $this;
}
public function getInstagram(): ?string
{
return $this->instagram;
}
public function setInstagram(?string $instagram): self
{
$this->instagram = $instagram;
return $this;
}
public function getDashboardUrl(): ?string
{
return $this->dashboardUrl;
}
public function setDashboardUrl(?string $dashboardUrl): self
{
$this->dashboardUrl = $dashboardUrl;
return $this;
}
public function getDashboardCompletionUrl(): ?string
{
return $this->dashboardCompletionUrl;
}
public function setDashboardCompletionUrl(?string $dashboardCompletionUrl): self
{
$this->dashboardCompletionUrl = $dashboardCompletionUrl;
return $this;
}
public function getDashboardQuestionUrl(): ?string
{
return $this->dashboardQuestionUrl;
}
public function setDashboardQuestionUrl(?string $dashboardQuestionUrl): self
{
$this->dashboardQuestionUrl = $dashboardQuestionUrl;
return $this;
}
public function getDashboardAssessmentUrl(): ?string
{
return $this->dashboardAssessmentUrl;
}
public function setDashboardAssessmentUrl(?string $dashboardAssessmentUrl): self
{
$this->dashboardAssessmentUrl = $dashboardAssessmentUrl;
return $this;
}
public function getDashboardDisparityUrl(): ?string
{
return $this->dashboardDisparityUrl;
}
public function setDashboardDisparityUrl(?string $dashboardDisparityUrl): self
{
$this->dashboardDisparityUrl = $dashboardDisparityUrl;
return $this;
}
public function getDashboardLegalUrl(): ?string
{
return $this->dashboardLegalUrl;
}
public function setDashboardLegalUrl(?string $dashboardLegalUrl): self
{
$this->dashboardLegalUrl = $dashboardLegalUrl;
return $this;
}
public function getDashboardMatterUrl(): ?string
{
return $this->dashboardMatterUrl;
}
public function setDashboardMatterUrl(?string $dashboardMatterUrl): self
{
$this->dashboardMatterUrl = $dashboardMatterUrl;
return $this;
}
public function getDashboardPartnerUrl(): ?string
{
return $this->dashboardPartnerUrl;
}
public function setDashboardPartnerUrl(?string $dashboardPartnerUrl): self
{
$this->dashboardPartnerUrl = $dashboardPartnerUrl;
return $this;
}
public function getDashboardInsightUrl(): ?string
{
return $this->dashboardInsightUrl;
}
public function setDashboardInsightUrl(?string $dashboardInsightUrl): self
{
$this->dashboardInsightUrl = $dashboardInsightUrl;
return $this;
}
public function getFoundedAt(): ?string
{
return $this->foundedAt;
}
public function setFoundedAt(?string $foundedAt): self
{
$this->foundedAt = $foundedAt;
return $this;
}
public function getOwnerType(): ?string
{
return $this->ownerType;
}
public function setOwnerType(?string $ownerType): self
{
$this->ownerType = $ownerType;
return $this;
}
public function getVideoType(): ?string
{
return $this->videoType;
}
public function setVideoType(?string $videoType): self
{
$this->videoType = $videoType;
return $this;
}
public function getIndustry(): ?Industry
{
return $this->industry;
}
public function setIndustry(?Industry $industry): self
{
$this->industry = $industry;
return $this;
}
/**
* @return Collection|Article[]
*/
public function getArticles(): Collection
{
return $this->articles;
}
public function addArticle(Article $article): self
{
if (!$this->articles->contains($article)) {
$this->articles[] = $article;
$article->setCompany($this);
}
return $this;
}
public function removeArticle(Article $article): self
{
if ($this->articles->contains($article)) {
$this->articles->removeElement($article);
// set the owning side to null (unless already changed)
if ($article->getCompany() === $this) {
$article->setCompany(null);
}
}
return $this;
}
/**
* @return Collection|Newsroom[]
*/
public function getNewsrooms(): Collection
{
return $this->newsrooms;
}
public function addNewsroom(Newsroom $newsroom): self
{
if (!$this->newsrooms->contains($newsroom)) {
$this->newsrooms[] = $newsroom;
$newsroom->setCompany($this);
}
return $this;
}
public function removeNewsroom(Newsroom $newsroom): self
{
if ($this->newsrooms->contains($newsroom)) {
$this->newsrooms->removeElement($newsroom);
// set the owning side to null (unless already changed)
if ($newsroom->getCompany() === $this) {
$newsroom->setCompany(null);
}
}
return $this;
}
/**
* @return Collection|Blog[]
*/
public function getBlogs(): Collection
{
return $this->blogs;
}
public function addBlog(Blog $blog): self
{
if (!$this->blogs->contains($blog)) {
$this->blogs[] = $blog;
$blog->setCompany($this);
}
return $this;
}
public function removeBlog(Blog $blog): self
{
if ($this->blogs->contains($blog)) {
$this->blogs->removeElement($blog);
// set the owning side to null (unless already changed)
if ($blog->getCompany() === $this) {
$blog->setCompany(null);
}
}
return $this;
}
/**
* @return mixed
*/
public function getVideoUploadedFile(): ?File
{
return $this->videoUploadedFile;
}
/**
* @param mixed $videoUploadedFile
*
* @throws Exception
*/
public function setVideoUploadedFile(?File $videoUploadedFile): self
{
$this->videoUploadedFile = $videoUploadedFile;
if ($videoUploadedFile) {
$this->updatedAt = new DateTime();
}
return $this;
}
public function getEmployeesRange(): ?EmployeesRange
{
return $this->employeesRange;
}
public function setEmployeesRange(?EmployeesRange $employeesRange): self
{
$this->employeesRange = $employeesRange;
return $this;
}
public function getVideoEmbedded(): VideoEmbedded
{
return $this->videoEmbedded;
}
public function setVideoEmbedded(VideoEmbedded $videoEmbedded): self
{
$this->videoEmbedded = $videoEmbedded;
return $this;
}
/**
* @return Collection|Review[]
*/
public function getReviews(): Collection
{
return $this->reviews;
}
public function addReview(Review $review): self
{
if (!$this->reviews->contains($review)) {
$this->reviews[] = $review;
$review->setCompany($this);
}
return $this;
}
public function removeReview(Review $review): self
{
if ($this->reviews->contains($review)) {
$this->reviews->removeElement($review);
// set the owning side to null (unless already changed)
if ($review->getCompany() === $this) {
$review->setCompany(null);
}
}
return $this;
}
public function getDiversityAcrossOrganizationAvg()
{
return $this->diversityAcrossOrganizationAvg;
}
public function setDiversityAcrossOrganizationAvg($diversityAcrossOrganizationAvg): self
{
$this->diversityAcrossOrganizationAvg = $diversityAcrossOrganizationAvg;
return $this;
}
public function getDiversityInLeadershipAvg()
{
return $this->diversityInLeadershipAvg;
}
public function setDiversityInLeadershipAvg($diversityInLeadershipAvg): self
{
$this->diversityInLeadershipAvg = $diversityInLeadershipAvg;
return $this;
}
public function getWorkLikeBalanceAvg()
{
return $this->workLikeBalanceAvg;
}
public function setWorkLikeBalanceAvg($workLikeBalanceAvg): self
{
$this->workLikeBalanceAvg = $workLikeBalanceAvg;
return $this;
}
public function getOverallInclusivenessAvg()
{
return $this->overallInclusivenessAvg;
}
public function setOverallInclusivenessAvg($overallInclusivenessAvg): self
{
$this->overallInclusivenessAvg = $overallInclusivenessAvg;
return $this;
}
public function getBenefitsAndResourcesAvg()
{
return $this->benefitsAndResourcesAvg;
}
public function setBenefitsAndResourcesAvg($benefitsAndResourcesAvg): self
{
$this->benefitsAndResourcesAvg = $benefitsAndResourcesAvg;
return $this;
}
public function enpsAvg()
{
return $this->enpsAvg;
}
public function setEnpsAvg($enpsAvg): self
{
$this->enpsAvg = $enpsAvg;
return $this;
}
public function getGlobalAverage()
{
return $this->globalAverage;
}
public function setGlobalAverage($globalAverage): self
{
$this->globalAverage = $globalAverage;
return $this;
}
public function getNbFollowers(): int
{
return $this->nbFollowers;
}
public function setNbFollowers(int $nbFollowers): self
{
$this->nbFollowers = $nbFollowers;
return $this;
}
public function getNbUnfollowers(): int
{
return $this->nbUnfollowers;
}
public function setNbUnfollowers(int $nbUnfollowers): self
{
$this->nbUnfollowers = $nbUnfollowers;
return $this;
}
public function getAddress(): Address
{
return $this->address;
}
public function setAddress(Address $address): self
{
$this->address = $address;
return $this;
}
public function getNbReviews(): int
{
return $this->nbReviews;
}
public function setNbReviews(int $nbReviews): self
{
$this->nbReviews = $nbReviews;
return $this;
}
/**
* @return Collection|Admin[]
*/
public function getAdmins(): Collection
{
return $this->admins;
}
public function addAdmin(Admin $admin): self
{
if (!$this->admins->contains($admin)) {
$this->admins[] = $admin;
$admin->setCompany($this);
}
return $this;
}
public function removeAdmin(Admin $admin): self
{
if ($this->admins->contains($admin)) {
$this->admins->removeElement($admin);
// set the owning side to null (unless already changed)
if ($admin->getCompany() === $this) {
$admin->setCompany(null);
}
}
return $this;
}
public function hasAdminUser(User $user): bool
{
return $this->admins->exists(function (int $index, Admin $admin) use ($user) {
return $admin->getUser()->getId() === $user->getId();
});
}
public function getFeatured(): bool
{
return $this->featured;
}
public function setFeatured(bool $featured): self
{
$this->featured = $featured;
return $this;
}
public function getHasSubscription(): bool
{
return $this->hasSubscription;
}
public function setHasSubscription(bool $hasSubscription): self
{
$this->hasSubscription = $hasSubscription;
return $this;
}
/**
* @return Collection|Contract[]
*/
public function getContracts(): Collection
{
return $this->contracts;
}
public function addContract(Contract $contract): self
{
if (!$this->contracts->contains($contract)) {
$this->contracts[] = $contract;
$contract->setCompany($this);
}
return $this;
}
public function removeContract(Contract $contract): self
{
if ($this->contracts->contains($contract)) {
$this->contracts->removeElement($contract);
// set the owning side to null (unless already changed)
if ($contract->getCompany() === $this) {
$contract->setCompany(null);
}
}
return $this;
}
public function getValidated(): bool
{
return $this->validated;
}
public function setValidated(?bool $validated): self
{
$this->validated = $validated;
return $this;
}
/**
* @return Collection|FeedItem[]
*/
public function getFeedItems(): Collection
{
return $this->feedItems;
}
public function addFeedItem(FeedItem $feedItem): self
{
if (!$this->feedItems->contains($feedItem)) {
$this->feedItems[] = $feedItem;
$feedItem->setCompany($this);
}
return $this;
}
public function removeFeedItem(FeedItem $feedItem): self
{
if ($this->feedItems->contains($feedItem)) {
$this->feedItems->removeElement($feedItem);
// set the owning side to null (unless already changed)
if ($feedItem->getCompany() === $this) {
$feedItem->setCompany(null);
}
}
return $this;
}
/**
* @return Collection|CompanyContribution[]
*/
public function getFormContributions(): Collection
{
return $this->formContributions;
}
public function addFormContribution(CompanyContribution $formContribution): self
{
if (!$this->formContributions->contains($formContribution)) {
$this->formContributions[] = $formContribution;
$formContribution->setCompany($this);
}
return $this;
}
public function removeFormContribution(CompanyContribution $formContribution): self
{
if ($this->formContributions->contains($formContribution)) {
$this->formContributions->removeElement($formContribution);
// set the owning side to null (unless already changed)
if ($formContribution->getCompany() === $this) {
$formContribution->setCompany(null);
}
}
return $this;
}
/**
* @return Collection|SurveyContribution[]
*/
public function getSurveyContributions(): Collection
{
return $this->surveyContributions;
}
public function addSurveyContribution(SurveyContribution $surveyContribution): self
{
if (!$this->surveyContributions->contains($surveyContribution)) {
$this->surveyContributions[] = $surveyContribution;
$surveyContribution->setCompany($this);
}
return $this;
}
public function removeSurveyContribution(SurveyContribution $surveyContribution): self
{
if ($this->surveyContributions->contains($surveyContribution)) {
$this->surveyContributions->removeElement($surveyContribution);
// set the owning side to null (unless already changed)
if ($surveyContribution->getCompany() === $this) {
$surveyContribution->setCompany(null);
}
}
return $this;
}
/**
* @return Collection|CompanyInformationPage[]
*/
public function getInformationPages(): Collection
{
return $this->informationPages;
}
public function addInformationPage(CompanyInformationPage $informationPage): self
{
if (!$this->informationPages->contains($informationPage)) {
$this->informationPages[] = $informationPage;
$informationPage->setCompany($this);
}
return $this;
}
public function removeInformationPage(CompanyInformationPage $informationPage): self
{
if ($this->informationPages->contains($informationPage)) {
$this->informationPages->removeElement($informationPage);
// set the owning side to null (unless already changed)
if ($informationPage->getCompany() === $this) {
$informationPage->setCompany(null);
}
}
return $this;
}
/**
* @return Collection|UserFollowCompany[]
*/
public function getUserFollowedCompanies(): Collection
{
return $this->userFollowedCompanies;
}
public function addUserFollowedCompany(UserFollowCompany $followedUser): self
{
if (!$this->userFollowedCompanies->contains($followedUser)) {
$this->userFollowedCompanies[] = $followedUser;
$followedUser->setCompany($this);
}
return $this;
}
public function removeUserFollowedCompany(UserFollowCompany $followedUser): self
{
if ($this->userFollowedCompanies->contains($followedUser)) {
$this->userFollowedCompanies->removeElement($followedUser);
// set the owning side to null (unless already changed)
if ($followedUser->getCompany() === $this) {
$followedUser->setCompany(null);
}
}
return $this;
}
/**
* @return Collection|SurveyForm[]
*/
public function getSurveyForms(): Collection
{
return $this->surveyForms;
}
public function addSurveyForm(SurveyForm $surveyForm): self
{
if (!$this->surveyForms->contains($surveyForm)) {
$this->surveyForms[] = $surveyForm;
$surveyForm->setCompany($this);
}
return $this;
}
public function removeSurveyForm(SurveyForm $surveyForm): self
{
if ($this->surveyForms->contains($surveyForm)) {
$this->surveyForms->removeElement($surveyForm);
// set the owning side to null (unless already changed)
if ($surveyForm->getCompany() === $this) {
$surveyForm->setCompany(null);
}
}
return $this;
}
/**
* @return Collection|CompanySurveyForm[]
*/
public function getCompanySurveyForms(): Collection
{
return $this->companySurveyForms;
}
public function addCompanySurveyForm(CompanySurveyForm $companySurveyForm): self
{
if (!$this->companySurveyForms->contains($companySurveyForm)) {
$this->companySurveyForms[] = $companySurveyForm;
$companySurveyForm->setCompany($this);
}
return $this;
}
public function removeCompanySurveyForm(CompanySurveyForm $companySurveyForm): self
{
if ($this->companySurveyForms->contains($companySurveyForm)) {
$this->companySurveyForms->removeElement($companySurveyForm);
// set the owning side to null (unless already changed)
if ($companySurveyForm->getCompany() === $this) {
$companySurveyForm->setCompany(null);
}
}
return $this;
}
/**
* @return Collection|AnnualReport[]
*/
public function getAnnualReports(): Collection
{
return $this->annualReports;
}
public function addAnnualReport(AnnualReport $annualReport): self
{
if (!$this->annualReports->contains($annualReport)) {
$this->annualReports[] = $annualReport;
$annualReport->setCompany($this);
}
return $this;
}
public function removeAnnualReport(AnnualReport $annualReport): self
{
if ($this->annualReports->contains($annualReport)) {
$this->annualReports->removeElement($annualReport);
// set the owning side to null (unless already changed)
if ($annualReport->getCompany() === $this) {
$annualReport->setCompany(null);
}
}
return $this;
}
/**
* @return Collection|Domain[]
*/
public function getDomains(): Collection
{
return $this->domains;
}
public function addDomain(Domain $domain): self
{
if (!$this->domains->contains($domain)) {
$this->domains[] = $domain;
$domain->setCompany($this);
}
return $this;
}
public function removeDomain(Domain $domain): self
{
if ($this->domains->contains($domain)) {
$this->domains->removeElement($domain);
// set the owning side to null (unless already changed)
if ($domain->getCompany() === $this) {
$domain->setCompany(null);
}
}
return $this;
}
/**
* @return Collection|UserCompany[]
*/
public function getUserCompanies(): Collection
{
return $this->userCompanies;
}
public function addUserCompany(UserCompany $userCompany): self
{
if (!$this->userCompanies->contains($userCompany)) {
$this->userCompanies[] = $userCompany;
$userCompany->setCompany($this);
}
return $this;
}
public function removeUserCompany(UserCompany $userCompany): self
{
if ($this->userCompanies->contains($userCompany)) {
$this->userCompanies->removeElement($userCompany);
// set the owning side to null (unless already changed)
if ($userCompany->getCompany() === $this) {
$userCompany->setCompany(null);
}
}
return $this;
}
public function getIsLogo(): bool
{
return $this->isLogo;
}
public function setIsLogo(bool $isLogo): self
{
$this->isLogo = $isLogo;
return $this;
}
public function getIsHero(): bool
{
return $this->isHero;
}
public function setIsHero(bool $isHero): self
{
$this->isHero = $isHero;
return $this;
}
public function getIsPaternityLeave(): bool
{
return $this->isPaternityLeave;
}
public function setIsPaternityLeave(bool $isPaternityLeave): self
{
$this->isPaternityLeave = $isPaternityLeave;
return $this;
}
public function getIsMaternityLeave(): bool
{
return $this->isMaternityLeave;
}
public function setIsMaternityLeave(bool $isMaternityLeave): self
{
$this->isMaternityLeave = $isMaternityLeave;
return $this;
}
public function getIsAdoptiveLeave(): bool
{
return $this->isAdoptiveLeave;
}
public function setIsAdoptiveLeave(bool $isAdoptiveLeave): self
{
$this->isAdoptiveLeave = $isAdoptiveLeave;
return $this;
}
public function getIsPaidTimeOff(): bool
{
return $this->isPaidTimeOff;
}
public function setIsPaidTimeOff(bool $isPaidTimeOff): self
{
$this->isPaidTimeOff = $isPaidTimeOff;
return $this;
}
public function getIsDemographics(): bool
{
return $this->isDemographics;
}
public function setIsDemographics(bool $isDemographics): self
{
$this->isDemographics = $isDemographics;
return $this;
}
public function getReportFrequency(): ?string
{
return $this->reportFrequency;
}
public function setReportFrequency(?string $reportFrequency): self
{
$this->reportFrequency = $reportFrequency;
return $this;
}
public function getReportGeneratedAt(): ?\DateTimeInterface
{
return $this->reportGeneratedAt;
}
public function setReportGeneratedAt(?\DateTimeInterface $reportGeneratedAt): self
{
$this->reportGeneratedAt = $reportGeneratedAt;
return $this;
}
public function getIsPostJobs(): bool
{
return $this->isPostJobs;
}
public function setIsPostJobs(bool $isPostJobs): self
{
$this->isPostJobs = $isPostJobs;
return $this;
}
public function getFeedGeneratedAt(): ?\DateTimeInterface
{
return $this->feedGeneratedAt;
}
public function setFeedGeneratedAt(?\DateTimeInterface $feedGeneratedAt): self
{
$this->feedGeneratedAt = $feedGeneratedAt;
return $this;
}
/**
* @return Collection|EeocFeed[]
*/
public function getEeocFeeds(): Collection
{
return $this->eeocFeeds;
}
public function addEeocFeed(EeocFeed $eeocFeed): self
{
if (!$this->eeocFeeds->contains($eeocFeed)) {
$this->eeocFeeds[] = $eeocFeed;
$eeocFeed->addFeedCompany($this);
}
return $this;
}
public function removeEeocFeed(EeocFeed $eeocFeed): self
{
if ($this->eeocFeeds->contains($eeocFeed)) {
$this->eeocFeeds->removeElement($eeocFeed);
$eeocFeed->removeFeedCompany($this);
}
return $this;
}
public function getCompanyFeed(): ?CompanyFeed
{
return $this->companyFeed;
}
public function setCompanyFeed(?CompanyFeed $companyFeed): void
{
$this->companyFeed = $companyFeed;
// set (or unset) the owning side of the relation if necessary
$newCompany = null === $companyFeed ? null : $this;
if ($companyFeed->getCompany() !== $newCompany) {
$companyFeed->setCompany($newCompany);
}
}
public function getNbComplaints(): ?int
{
return $this->nbComplaints;
}
public function setNbComplaints(int $nbComplaints): self
{
$this->nbComplaints = $nbComplaints;
return $this;
}
public function getEeoReportAvg()
{
return $this->eeoReportAvg;
}
public function setEeoReportAvg($eeoReportAvg): self
{
$this->eeoReportAvg = $eeoReportAvg;
return $this;
}
public function getEeocRecognitionAvg()
{
return $this->eeocRecognitionAvg;
}
public function setEeocRecognitionAvg($eeocRecognitionAvg): self
{
$this->eeocRecognitionAvg = $eeocRecognitionAvg;
return $this;
}
public function getAwardsRecognitionAvg()
{
return $this->awardsRecognitionAvg;
}
public function setAwardsRecognitionAvg($awardsRecognitionAvg): self
{
$this->awardsRecognitionAvg = $awardsRecognitionAvg;
return $this;
}
public function getDeiInitiativesAvg()
{
return $this->deiInitiativesAvg;
}
public function setDeiInitiativesAvg($deiInitiativesAvg): self
{
$this->deiInitiativesAvg = $deiInitiativesAvg;
return $this;
}
public function getBenefitsPolicyAvg()
{
return $this->benefitsPolicyAvg;
}
public function setBenefitsPolicyAvg($benefitsPolicyAvg): self
{
$this->benefitsPolicyAvg = $benefitsPolicyAvg;
return $this;
}
public function getEmployeePerksAvg()
{
return $this->employeePerksAvg;
}
public function setEmployeePerksAvg($employeePerksAvg): self
{
$this->employeePerksAvg = $employeePerksAvg;
return $this;
}
public function getRecruitmentAvg()
{
return $this->recruitmentAvg;
}
public function setRecruitmentAvg($recruitmentAvg): self
{
$this->recruitmentAvg = $recruitmentAvg;
return $this;
}
public function getEpiAvg()
{
return $this->epiAvg;
}
public function setEpiAvg($epiAvg): self
{
$this->epiAvg = $epiAvg;
return $this;
}
public function getMpiAvg()
{
return $this->mpiAvg;
}
public function setMpiAvg($mpiAvg): self
{
$this->mpiAvg = $mpiAvg;
return $this;
}
/**
* @return Collection|SurveyCompany[]
*/
public function getSurveyCompanies(): Collection
{
return $this->surveyCompanies;
}
public function addSurveyCompany(SurveyCompany $surveyCompany): self
{
if (!$this->surveyCompanies->contains($surveyCompany)) {
$this->surveyCompanies[] = $surveyCompany;
$surveyCompany->setCompany($this);
}
return $this;
}
public function removeSurveyCompany(SurveyCompany $surveyCompany): self
{
if ($this->surveyCompanies->contains($surveyCompany)) {
$this->surveyCompanies->removeElement($surveyCompany);
// set the owning side to null (unless already changed)
if ($surveyCompany->getCompany() === $this) {
$surveyCompany->setCompany(null);
}
}
return $this;
}
/**
* @return Collection|SurveyCampaignSubmission[]
*/
public function getSurveyCampaignSubmissions(): Collection
{
return $this->surveyCampaignSubmissions;
}
public function addSurveyCampaignSubmission(SurveyCampaignSubmission $surveyCampaignSubmission): self
{
if (!$this->surveyCampaignSubmissions->contains($surveyCampaignSubmission)) {
$this->surveyCampaignSubmissions[] = $surveyCampaignSubmission;
$surveyCampaignSubmission->setCompany($this);
}
return $this;
}
public function removeSurveyCampaignSubmission(SurveyCampaignSubmission $surveyCampaignSubmission): self
{
if ($this->surveyCampaignSubmissions->contains($surveyCampaignSubmission)) {
$this->surveyCampaignSubmissions->removeElement($surveyCampaignSubmission);
// set the owning side to null (unless already changed)
if ($surveyCampaignSubmission->getCompany() === $this) {
$surveyCampaignSubmission->setCompany(null);
}
}
return $this;
}
/**
* @return Collection|Department[]
*/
public function getDepartments(): Collection
{
return $this->departments;
}
public function addDepartment(Department $department): self
{
if (!$this->departments->contains($department)) {
$this->departments[] = $department;
}
return $this;
}
public function removeDepartment(Department $department): self
{
if ($this->departments->contains($department)) {
$this->departments->removeElement($department);
}
return $this;
}
/**
* @return Collection|Region[]
*/
public function getRegions(): Collection
{
return $this->regions;
}
public function addRegion(Region $region): self
{
if (!$this->regions->contains($region)) {
$this->regions[] = $region;
}
return $this;
}
public function removeRegion(Region $region): self
{
if ($this->regions->contains($region)) {
$this->regions->removeElement($region);
}
return $this;
}
/**
* @return Collection|Division[]
*/
public function getDivisions(): Collection
{
return $this->divisions;
}
public function addDivision(Division $division): self
{
if (!$this->divisions->contains($division)) {
$this->divisions[] = $division;
}
return $this;
}
public function removeDivision(Division $division): self
{
if ($this->divisions->contains($division)) {
$this->divisions->removeElement($division);
}
return $this;
}
/**
* @return Collection|DivisionHead[]
*/
public function getDivisionHeads(): Collection
{
return $this->divisionHeads;
}
public function addDivisionHead(DivisionHead $divisionHead): self
{
if (!$this->divisionHeads->contains($divisionHead)) {
$this->divisionHeads[] = $divisionHead;
}
return $this;
}
public function removeDivisionHead(DivisionHead $divisionHead): self
{
if ($this->divisionHeads->contains($divisionHead)) {
$this->divisionHeads->removeElement($divisionHead);
}
return $this;
}
/**
* @return Collection|PyramidHead[]
*/
public function getPyramidHeads(): Collection
{
return $this->pyramidHeads;
}
public function addPyramidHead(PyramidHead $pyramidHead): self
{
if (!$this->pyramidHeads->contains($pyramidHead)) {
$this->pyramidHeads[] = $pyramidHead;
}
return $this;
}
public function removePyramidHead(PyramidHead $pyramidHead): self
{
if ($this->pyramidHeads->contains($pyramidHead)) {
$this->pyramidHeads->removeElement($pyramidHead);
}
return $this;
}
/**
* @return Collection|Position[]
*/
public function getPositions(): Collection
{
return $this->positions;
}
public function addPosition(Position $position): self
{
if (!$this->positions->contains($position)) {
$this->positions[] = $position;
}
return $this;
}
public function removePosition(Position $position): self
{
if ($this->positions->contains($position)) {
$this->positions->removeElement($position);
}
return $this;
}
/**
* @return Collection|City[]
*/
public function getCities(): Collection
{
return $this->cities;
}
public function addCity(City $city): self
{
if (!$this->cities->contains($city)) {
$this->cities[] = $city;
}
return $this;
}
public function removeCity(City $city): self
{
if ($this->cities->contains($city)) {
$this->cities->removeElement($city);
}
return $this;
}
/**
* @return Collection|User[]
*/
public function getUsers(): Collection
{
return $this->users;
}
public function addUser(User $user): self
{
if (!$this->users->contains($user)) {
$this->users[] = $user;
}
return $this;
}
public function removeUser(User $user): self
{
if ($this->users->contains($user)) {
$this->users->removeElement($user);
}
return $this;
}
public function getCompletionPercentage()
{
return $this->completionPercentage;
}
public function setCompletionPercentage($completionPercentage): self
{
$this->completionPercentage = $completionPercentage;
return $this;
}
}