src/Entity/Company.php line 70

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Filter\CompanyFilter;
  4. use App\Annotation\EsUploadable;
  5. use Doctrine\ORM\Mapping as ORM;
  6. use App\Repository\CompanyRepository;
  7. use ApiPlatform\Core\Annotation\ApiFilter;
  8. use App\Entity\Traits\TimestampableEntity;
  9. use Doctrine\Common\Collections\Collection;
  10. use ApiPlatform\Core\Annotation\ApiProperty;
  11. use ApiPlatform\Core\Annotation\ApiResource;
  12. use App\Entity\Interfaces\ClientMappedInterface;
  13. use App\Entity\Interfaces\UploadMappedInterface;
  14. use Doctrine\Common\Collections\ArrayCollection;
  15. use Symfony\Component\Serializer\Annotation\Groups;
  16. use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\OrderFilter;
  17. use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\SearchFilter;
  18. /**
  19.  * @ApiResource(
  20.  *      attributes={"security"="is_granted('ROLE_SUPER_ADMIN')", "filters"={"translation.groups"}},
  21.  *      normalizationContext={"groups"={"Company:Read"}, "skip_null_values"=false, "enable_max_depth"=true},
  22.  *      denormalizationContext={"groups"={"Company:Write"}},
  23.  *      collectionOperations={
  24.  *          "get",
  25.  *          "get_overview"={
  26.  *              "path"="/companies/get-overview",
  27.  *              "method"="GET",
  28.  *              "normalization_context"={"groups"={"Company:Overview"}, "skip_null_values"=false},
  29.  *              "security"="is_granted('IS_AUTHENTICATED_FULLY')"
  30.  *          },
  31.  *          "get_all"={
  32.  *              "path"="/companies/get-all",
  33.  *              "method"="GET",
  34.  *              "pagination_enabled"=false,
  35.  *              "normalization_context"={"groups"={"Company:Read"}, "skip_null_values"=false},
  36.  *              "security"="is_granted('IS_AUTHENTICATED_FULLY')"
  37.  *          },
  38.  *          "get_for_public_page"={
  39.  *              "route_name"="api_pub_companies_get_for_public_page_collection",
  40.  *              "method"="GET",
  41.  *              "security"="is_granted('PUBLIC_ACCESS')",
  42.  *              "normalization_context"={"groups"={"Company:PRead"}, "skip_null_values"=false}
  43.  *          },
  44.  *          "post"
  45.  *      },
  46.  *      itemOperations={
  47.  *          "get"={
  48.  *              "security"="is_granted('IS_AUTHENTICATED_FULLY')",
  49.  *              "normalization_context"={"groups"={"Company:Read", "Company:Detail"}, "skip_null_values"=false}
  50.  *          },
  51.  *          "get_for_public_item_page"={
  52.  *              "route_name"="api_pub_companies_get_for_public_page_item",
  53.  *              "method"="GET",
  54.  *              "security"="is_granted('PUBLIC_ACCESS')",
  55.  *              "normalization_context"={"groups"={"Company:PRead", "Company:PIRead"}, "skip_null_values"=false}
  56.  *          },
  57.  *          "put"={"security"="is_granted('ROLE_SUPER_ADMIN') || is_granted('IS_CLIENT_OWNER_COMPANY_SPE', object)"},
  58.  *          "patch"={"security"="is_granted('ROLE_SUPER_ADMIN') || is_granted('IS_CLIENT_OWNER_COMPANY_SPE', object)"},
  59.  *          "delete"
  60.  *     }
  61.  * )
  62.  * @ApiFilter(SearchFilter::class, properties={"id": "exact", "client.id": "exact", "containers.id": "exact", "externalId": "exact", "name": "partial", "website": "partial", "followers.id": "exact", "owners.id": "exact", "companyCategory.id": "exact", "companyTags.id": "exact"})
  63.  * @ApiFilter(CompanyFilter::class, properties={"search": "partial"})
  64.  * @ApiFilter(OrderFilter::class, properties={"id", "name": "ASC", "companyCategory.translations.name"})
  65.  * @ORM\Entity(repositoryClass=CompanyRepository::class)
  66.  */
  67. class Company implements ClientMappedInterfaceUploadMappedInterface
  68. {
  69.     /**
  70.      * Hook timestampable behavior
  71.      * updates createdAt, updatedAt fields
  72.      */
  73.     use TimestampableEntity;
  74.     /**
  75.      * @ORM\Id
  76.      * @ORM\GeneratedValue
  77.      * @ORM\Column(type="integer")
  78.      * @Groups({"Company:Read", "Company:Overview", "Company:PRead", "Conference:Read", "Newsfeed:Read", "Session:GetItemDetail", "User:Me", "Conference:PRead", "User:PRead", "ElCourse:Read", "ElCourse:PRead"})
  79.      */
  80.     private $id;
  81.     /**
  82.      * @ORM\Column(type="string", length=255)
  83.      * @Groups({"Company:Read", "Company:Write", "Company:Overview", "Company:PRead", "Conference:Read", "Newsfeed:Read", "Session:GetItemDetail", "User:Me", "Conference:PRead", "User:PRead", "ElCourse:Read", "ElCourse:PRead"})
  84.      */
  85.     private $name;
  86.     /**
  87.      * @ORM\Column(type="string", length=255, nullable=true)
  88.      * @Groups({"Company:Read", "Company:Write", "Company:Overview", "Company:PRead", "Conference:Read", "Newsfeed:Read", "Session:GetItemDetail", "Conference:PRead", "User:PRead", "ElCourse:Read", "ElCourse:PRead"})
  89.      */
  90.     private $website;
  91.     /**
  92.      * @ORM\Column(type="text", nullable=true)
  93.      * @Groups({"Company:Read", "Company:Write", "Company:PIRead"})
  94.      */
  95.     private $description;
  96.     /**
  97.      * @ORM\Column(type="string", length=128, nullable=true)
  98.      * @Groups({"Company:Read", "Company:Write"})
  99.      */
  100.     private $externalId;
  101.     /**
  102.      * @ORM\Column(type="json", nullable=true)
  103.      * @Groups({"Company:Read", "Company:Write"})
  104.      */
  105.     private $details = [];
  106.     /**
  107.      * @ORM\ManyToOne(targetEntity=Client::class)
  108.      * @ORM\JoinColumn(nullable=false, onDelete="CASCADE")
  109.      * @Groups({"Company:Read", "Company:Write"})
  110.      */
  111.     private $client;
  112.     /**
  113.      * @ORM\ManyToMany(targetEntity=Container::class)
  114.      * @Groups({"Company:Detail", "Company:Write"})
  115.      */
  116.     private $containers;
  117.     /**
  118.      * @ApiProperty(attributes={"fetch_eager": false})
  119.      * @ORM\ManyToMany(targetEntity=CompanyTag::class, mappedBy="companies", cascade={"persist"})
  120.      * @Groups({"Company:Read", "Company:Write", "Company:PRead"})
  121.      */
  122.     private $companyTags;
  123.     /**
  124.      * @ApiProperty(attributes={"fetch_eager": false})
  125.      * @ORM\ManyToOne(targetEntity=CommonCategory::class)
  126.      * @ORM\JoinColumn(nullable=true, onDelete="SET NULL")
  127.      * @Groups({"Company:Read", "Company:Write", "Company:Overview", "Company:PRead"})
  128.      */
  129.     private $companyCategory;
  130.     /**
  131.      * @ApiProperty(attributes={"fetch_eager": false})
  132.      * @ORM\ManyToMany(targetEntity=User::class)
  133.      * @ORM\JoinTable(name="company_owner")
  134.      * @Groups({"Company:Read", "Company:Write"})
  135.      */
  136.     private $owners;
  137.     /**
  138.      * @ORM\OneToMany(targetEntity=User::class, mappedBy="organization")
  139.      */
  140.     private $users;
  141.     /**
  142.      * @ORM\Column(type="string", length=255, nullable=true)
  143.      * @Groups({"Company:Read", "Company:Write", "Company:Overview", "Company:PRead", "Conference:Read", "Newsfeed:Read", "Session:GetItemDetail", "Conference:PRead", "User:PRead", "ElCourse:Read", "ElCourse:PRead"})
  144.      * @EsUploadable()
  145.      */
  146.     private $logoImageName;
  147.     /**
  148.      * @ORM\Column(type="string", length=255, nullable=true)
  149.      * @Groups({"Company:Read", "Company:Write", "Company:Overview", "Company:PRead", "Conference:Read", "Newsfeed:Read", "Session:GetItemDetail", "Conference:PRead", "User:PRead", "ElCourse:Read", "ElCourse:PRead"})
  150.      * @EsUploadable()
  151.      */
  152.     private $coverImageName;
  153.     /**
  154.      * @ORM\OneToMany(targetEntity=CompanyProduct::class, mappedBy="company", orphanRemoval=true)
  155.      */
  156.     private $companyProducts;
  157.     /**
  158.      * @ORM\Column(type="string", length=255, nullable=true)
  159.      * @Groups({"Company:Read", "Company:Write", "Company:Overview", "Company:PRead", "Newsfeed:Read"})
  160.      */
  161.     private $tagline;
  162.     /**
  163.      * @ORM\Column(type="string", length=255, nullable=true)
  164.      * @Groups({"Company:Read", "Company:Write", "Company:PRead"})
  165.      */
  166.     private $contactEmail;
  167.     /**
  168.      * @ORM\Column(type="string", length=32, nullable=true)
  169.      * @Groups({"Company:Read", "Company:Write", "Company:PRead"})
  170.      */
  171.     private $phone;
  172.     /**
  173.      * @ORM\Column(type="string", length=255, nullable=true)
  174.      * @Groups({"Company:Read", "Company:Write", "Company:PIRead"})
  175.      */
  176.     private $streamUrl;
  177.     /**
  178.      * @ORM\Column(type="string", length=32, nullable=true)
  179.      * @Groups({"Company:Read", "Company:Write", "Company:PIRead"})
  180.      */
  181.     private $streamType;
  182.     /**
  183.      * @ORM\ManyToMany(targetEntity=User::class, mappedBy="followingCompanies")
  184.      */
  185.     private $followers;
  186.     /**
  187.      * @ORM\Column(type="integer", nullable=true)
  188.      * @Groups({"Company:Read", "Company:Overview", "Company:PRead"})
  189.      */
  190.     private $totalFollowers;
  191.     /**
  192.      * @ORM\ManyToMany(targetEntity=User::class, mappedBy="offCompanyNotifications")
  193.      */
  194.     private $offNotificationUsers;
  195.     /**
  196.      * @ORM\OneToMany(targetEntity=Newsfeed::class, mappedBy="company")
  197.      */
  198.     private $newsfeeds;
  199.     /**
  200.      * @ORM\Column(type="string", length=255, nullable=true)
  201.      * @Groups({"Company:Read", "Company:Write", "Company:PRead"})
  202.      */
  203.     private $industry;
  204.     /**
  205.      * @ORM\Column(type="string", length=255, nullable=true)
  206.      * @Groups({"Company:Read", "Company:Write", "Company:PRead"})
  207.      */
  208.     private $size;
  209.     /**
  210.      * @ORM\Column(type="string", length=255, nullable=true)
  211.      * @Groups({"Company:Read", "Company:Write", "Company:PRead"})
  212.      */
  213.     private $address1;
  214.     /**
  215.      * @ORM\Column(type="string", length=255, nullable=true)
  216.      * @Groups({"Company:Read", "Company:Write", "Company:PRead"})
  217.      */
  218.     private $address2;
  219.     /**
  220.      * @ORM\Column(type="string", length=255, nullable=true)
  221.      * @Groups({"Company:Read", "Company:Write", "Company:PRead"})
  222.      */
  223.     private $city;
  224.     /**
  225.      * @ORM\Column(type="string", length=255, nullable=true)
  226.      * @Groups({"Company:Read", "Company:Write", "Company:PRead"})
  227.      */
  228.     private $postalCode;
  229.     /**
  230.      * @ORM\Column(type="string", length=255, nullable=true)
  231.      * @Groups({"Company:Read", "Company:Write", "Company:PRead"})
  232.      */
  233.     private $state;
  234.     /**
  235.      * @ORM\Column(type="string", length=255, nullable=true)
  236.      * @Groups({"Company:Read", "Company:Write", "Company:PRead"})
  237.      */
  238.     private $country;
  239.     /**
  240.      * @ORM\Column(type="string", length=255, nullable=true)
  241.      * @Groups({"Company:Read", "Company:Write", "Company:PRead"})
  242.      */
  243.     private $socialLinkedin;
  244.     /**
  245.      * @ORM\Column(type="string", length=255, nullable=true)
  246.      * @Groups({"Company:Read", "Company:Write", "Company:PRead"})
  247.      */
  248.     private $socialX;
  249.     /**
  250.      * @ORM\Column(type="string", length=255, nullable=true)
  251.      * @Groups({"Company:Read", "Company:Write", "Company:PRead"})
  252.      */
  253.     private $socialFacebook;
  254.     /**
  255.      * @ORM\Column(type="string", length=255, nullable=true)
  256.      * @Groups({"Company:Read", "Company:Write", "Company:PRead"})
  257.      */
  258.     private $socialInstagram;
  259.     /**
  260.      * @ORM\Column(type="string", length=255, nullable=true)
  261.      * @Groups({"Company:Read", "Company:Write", "Company:PRead"})
  262.      */
  263.     private $socialYoutube;
  264.     /**
  265.      * @ORM\ManyToMany(targetEntity=Container::class)
  266.      * @ORM\JoinTable(name="rel_owner_container_company")
  267.      * @Groups({"Company:Detail", "Company:Write"})
  268.      */
  269.     private $ownerContainers;
  270.     public function __construct()
  271.     {
  272.         $this->containers = new ArrayCollection();
  273.         $this->companyTags = new ArrayCollection();
  274.         $this->owners = new ArrayCollection();
  275.         $this->users = new ArrayCollection();
  276.         $this->companyProducts = new ArrayCollection();
  277.         $this->followers = new ArrayCollection();
  278.         $this->offNotificationUsers = new ArrayCollection();
  279.         $this->newsfeeds = new ArrayCollection();
  280.         $this->ownerContainers = new ArrayCollection();
  281.     }
  282.     public function getId(): ?int
  283.     {
  284.         return $this->id;
  285.     }
  286.     public function getName(): ?string
  287.     {
  288.         return $this->name;
  289.     }
  290.     public function setName(string $name): self
  291.     {
  292.         $this->name $name;
  293.         return $this;
  294.     }
  295.     public function getWebsite(): ?string
  296.     {
  297.         return $this->website;
  298.     }
  299.     public function setWebsite(?string $website): self
  300.     {
  301.         $this->website $website;
  302.         return $this;
  303.     }
  304.     public function getDescription(): ?string
  305.     {
  306.         return $this->description;
  307.     }
  308.     public function setDescription(?string $description): self
  309.     {
  310.         $this->description $description;
  311.         return $this;
  312.     }
  313.     public function getExternalId(): ?string
  314.     {
  315.         return $this->externalId;
  316.     }
  317.     public function setExternalId(?string $externalId): self
  318.     {
  319.         $this->externalId $externalId;
  320.         return $this;
  321.     }
  322.     public function getDetails(): ?array
  323.     {
  324.         return $this->details;
  325.     }
  326.     public function setDetails(?array $details): self
  327.     {
  328.         $this->details $details;
  329.         return $this;
  330.     }
  331.     public function getClient(): ?Client
  332.     {
  333.         return $this->client;
  334.     }
  335.     public function setClient(?Client $client): self
  336.     {
  337.         $this->client $client;
  338.         return $this;
  339.     }
  340.     /**
  341.      * @return Collection<int, Container>
  342.      */
  343.     public function getContainers(): Collection
  344.     {
  345.         return $this->containers;
  346.     }
  347.     public function addContainer(Container $container): self
  348.     {
  349.         if (!$this->containers->contains($container)) {
  350.             $this->containers[] = $container;
  351.         }
  352.         return $this;
  353.     }
  354.     public function removeContainer(Container $container): self
  355.     {
  356.         $this->containers->removeElement($container);
  357.         return $this;
  358.     }
  359.     /**
  360.      * @return Collection<int, CompanyTag>
  361.      */
  362.     public function getCompanyTags(): Collection
  363.     {
  364.         return $this->companyTags;
  365.     }
  366.     public function addCompanyTag(CompanyTag $companyTag): self
  367.     {
  368.         if (!$this->companyTags->contains($companyTag)) {
  369.             $this->companyTags[] = $companyTag;
  370.             $companyTag->addCompany($this);
  371.         }
  372.         return $this;
  373.     }
  374.     public function removeCompanyTag(CompanyTag $companyTag): self
  375.     {
  376.         if ($this->companyTags->removeElement($companyTag)) {
  377.             $companyTag->removeCompany($this);
  378.         }
  379.         return $this;
  380.     }
  381.     public function getCompanyCategory(): ?CommonCategory
  382.     {
  383.         return $this->companyCategory;
  384.     }
  385.     public function setCompanyCategory(?CommonCategory $companyCategory): self
  386.     {
  387.         $this->companyCategory $companyCategory;
  388.         return $this;
  389.     }
  390.     /**
  391.      * @return Collection<int, User>
  392.      */
  393.     public function getOwners(): Collection
  394.     {
  395.         return $this->owners;
  396.     }
  397.     public function addOwner(User $owner): self
  398.     {
  399.         if (!$this->owners->contains($owner)) {
  400.             $this->owners[] = $owner;
  401.         }
  402.         return $this;
  403.     }
  404.     public function removeOwner(User $owner): self
  405.     {
  406.         $this->owners->removeElement($owner);
  407.         return $this;
  408.     }
  409.     /**
  410.      * @return Collection<int, User>
  411.      */
  412.     public function getUsers(): Collection
  413.     {
  414.         return $this->users;
  415.     }
  416.     public function addUser(User $user): self
  417.     {
  418.         if (!$this->users->contains($user)) {
  419.             $this->users[] = $user;
  420.             $user->setOrganization($this);
  421.         }
  422.         return $this;
  423.     }
  424.     public function removeUser(User $user): self
  425.     {
  426.         if ($this->users->removeElement($user)) {
  427.             // set the owning side to null (unless already changed)
  428.             if ($user->getOrganization() === $this) {
  429.                 $user->setOrganization(null);
  430.             }
  431.         }
  432.         return $this;
  433.     }
  434.     public function getLogoImageName(): ?string
  435.     {
  436.         return $this->logoImageName;
  437.     }
  438.     public function setLogoImageName(?string $logoImageName): self
  439.     {
  440.         $this->logoImageName $logoImageName;
  441.         return $this;
  442.     }
  443.     public function getCoverImageName(): ?string
  444.     {
  445.         return $this->coverImageName;
  446.     }
  447.     public function setCoverImageName(?string $coverImageName): self
  448.     {
  449.         $this->coverImageName $coverImageName;
  450.         return $this;
  451.     }
  452.     /**
  453.      * @return Collection|CompanyProduct[]
  454.      */
  455.     public function getCompanyProducts(): Collection
  456.     {
  457.         return $this->companyProducts;
  458.     }
  459.     public function addCompanyProduct(CompanyProduct $companyProduct): self
  460.     {
  461.         if (!$this->companyProducts->contains($companyProduct)) {
  462.             $this->companyProducts[] = $companyProduct;
  463.             $companyProduct->setCompany($this);
  464.         }
  465.         return $this;
  466.     }
  467.     public function removeCompanyProduct(CompanyProduct $companyProduct): self
  468.     {
  469.         if ($this->companyProducts->removeElement($companyProduct)) {
  470.             // set the owning side to null (unless already changed)
  471.             if ($companyProduct->getCompany() === $this) {
  472.                 $companyProduct->setCompany(null);
  473.             }
  474.         }
  475.         return $this;
  476.     }
  477.     public function getTagline(): ?string
  478.     {
  479.         return $this->tagline;
  480.     }
  481.     public function setTagline(?string $tagline): self
  482.     {
  483.         $this->tagline $tagline;
  484.         return $this;
  485.     }
  486.     public function getContactEmail(): ?string
  487.     {
  488.         return $this->contactEmail;
  489.     }
  490.     public function setContactEmail(?string $contactEmail): self
  491.     {
  492.         $this->contactEmail $contactEmail;
  493.         return $this;
  494.     }
  495.     public function getPhone(): ?string
  496.     {
  497.         return $this->phone;
  498.     }
  499.     public function setPhone(?string $phone): self
  500.     {
  501.         $this->phone $phone;
  502.         return $this;
  503.     }
  504.     public function getStreamUrl(): ?string
  505.     {
  506.         return $this->streamUrl;
  507.     }
  508.     public function setStreamUrl(?string $streamUrl): self
  509.     {
  510.         $this->streamUrl $streamUrl;
  511.         return $this;
  512.     }
  513.     public function getStreamType(): ?string
  514.     {
  515.         return $this->streamType;
  516.     }
  517.     public function setStreamType(?string $streamType): self
  518.     {
  519.         $this->streamType $streamType;
  520.         return $this;
  521.     }
  522.     /**
  523.      * @return Collection<int, User>
  524.      */
  525.     public function getFollowers(): Collection
  526.     {
  527.         return $this->followers;
  528.     }
  529.     public function getFollowersId(): array
  530.     {
  531.         $ids = [];
  532.         foreach ($this->followers as $u) {
  533.             $ids[] = $u->getId();
  534.         }
  535.         return $ids;
  536.     }
  537.     public function addFollower(User $follower): self
  538.     {
  539.         if (!$this->followers->contains($follower)) {
  540.             $this->followers[] = $follower;
  541.             $follower->addFollowingCompany($this);
  542.         }
  543.         return $this;
  544.     }
  545.     public function removeFollower(User $follower): self
  546.     {
  547.         if ($this->followers->removeElement($follower)) {
  548.             $follower->removeFollowingCompany($this);
  549.         }
  550.         return $this;
  551.     }
  552.     /**
  553.      * @return Collection<int, User>
  554.      */
  555.     public function getOffNotificationUsers(): Collection
  556.     {
  557.         return $this->offNotificationUsers;
  558.     }
  559.     public function getOffNotificationUsersId(): array
  560.     {
  561.         $ids = [];
  562.         foreach ($this->offNotificationUsers as $u) {
  563.             $ids[] = $u->getId();
  564.         }
  565.         return $ids;
  566.     }
  567.     public function addOffNotificationUser(User $offNotificationUser): self
  568.     {
  569.         if (!$this->offNotificationUsers->contains($offNotificationUser)) {
  570.             $this->offNotificationUsers[] = $offNotificationUser;
  571.             $offNotificationUser->addOffCompanyNotification($this);
  572.         }
  573.         return $this;
  574.     }
  575.     public function removeOffNotificationUser(User $offNotificationUser): self
  576.     {
  577.         if ($this->offNotificationUsers->removeElement($offNotificationUser)) {
  578.             $offNotificationUser->removeOffCompanyNotification($this);
  579.         }
  580.         return $this;
  581.     }
  582.     /**
  583.      * @return Collection<int, Newsfeed>
  584.      */
  585.     public function getNewsfeeds(): Collection
  586.     {
  587.         return $this->newsfeeds;
  588.     }
  589.     public function addNewsfeed(Newsfeed $newsfeed): self
  590.     {
  591.         if (!$this->newsfeeds->contains($newsfeed)) {
  592.             $this->newsfeeds[] = $newsfeed;
  593.             $newsfeed->setCompany($this);
  594.         }
  595.         return $this;
  596.     }
  597.     public function removeNewsfeed(Newsfeed $newsfeed): self
  598.     {
  599.         if ($this->newsfeeds->removeElement($newsfeed)) {
  600.             // set the owning side to null (unless already changed)
  601.             if ($newsfeed->getCompany() === $this) {
  602.                 $newsfeed->setCompany(null);
  603.             }
  604.         }
  605.         return $this;
  606.     }
  607.     public function getTotalFollowers(): ?int
  608.     {
  609.         return $this->totalFollowers;
  610.     }
  611.     public function setTotalFollowers(?int $totalFollowers): self
  612.     {
  613.         $this->totalFollowers $totalFollowers;
  614.         return $this;
  615.     }
  616.     public function getMetadata()
  617.     {
  618.         return [
  619.             'company' => [
  620.                 'id' => $this->getId(),
  621.                 'name' => $this->getName(),
  622.                 'tagline' => $this->getTagline(),
  623.                 'website' => $this->getWebsite(),
  624.                 'companyCategory' => $this->getCompanyCategory() ? $this->getCompanyCategory()->getMeta() : null,
  625.                 'logoImageName' => $this->getLogoImageName(),
  626.                 'coverImageName' => $this->getCoverImageName()
  627.             ]
  628.         ];
  629.     }
  630.     public function getIndustry(): ?string
  631.     {
  632.         return $this->industry;
  633.     }
  634.     public function setIndustry(?string $industry): self
  635.     {
  636.         $this->industry $industry;
  637.         return $this;
  638.     }
  639.     public function getSize(): ?string
  640.     {
  641.         return $this->size;
  642.     }
  643.     public function setSize(?string $size): self
  644.     {
  645.         $this->size $size;
  646.         return $this;
  647.     }
  648.     public function getAddress1(): ?string
  649.     {
  650.         return $this->address1;
  651.     }
  652.     public function setAddress1(?string $address1): self
  653.     {
  654.         $this->address1 $address1;
  655.         return $this;
  656.     }
  657.     public function getAddress2(): ?string
  658.     {
  659.         return $this->address2;
  660.     }
  661.     public function setAddress2(?string $address2): self
  662.     {
  663.         $this->address2 $address2;
  664.         return $this;
  665.     }
  666.     public function getCity(): ?string
  667.     {
  668.         return $this->city;
  669.     }
  670.     public function setCity(?string $city): self
  671.     {
  672.         $this->city $city;
  673.         return $this;
  674.     }
  675.     public function getPostalCode(): ?string
  676.     {
  677.         return $this->postalCode;
  678.     }
  679.     public function setPostalCode(?string $postalCode): self
  680.     {
  681.         $this->postalCode $postalCode;
  682.         return $this;
  683.     }
  684.     public function getState(): ?string
  685.     {
  686.         return $this->state;
  687.     }
  688.     public function setState(?string $state): self
  689.     {
  690.         $this->state $state;
  691.         return $this;
  692.     }
  693.     public function getCountry(): ?string
  694.     {
  695.         return $this->country;
  696.     }
  697.     public function setCountry(?string $country): self
  698.     {
  699.         $this->country $country;
  700.         return $this;
  701.     }
  702.     public function getSocialLinkedin(): ?string
  703.     {
  704.         return $this->socialLinkedin;
  705.     }
  706.     public function setSocialLinkedin(?string $socialLinkedin): self
  707.     {
  708.         $this->socialLinkedin $socialLinkedin;
  709.         return $this;
  710.     }
  711.     public function getSocialX(): ?string
  712.     {
  713.         return $this->socialX;
  714.     }
  715.     public function setSocialX(?string $socialX): self
  716.     {
  717.         $this->socialX $socialX;
  718.         return $this;
  719.     }
  720.     public function getSocialFacebook(): ?string
  721.     {
  722.         return $this->socialFacebook;
  723.     }
  724.     public function setSocialFacebook(?string $socialFacebook): self
  725.     {
  726.         $this->socialFacebook $socialFacebook;
  727.         return $this;
  728.     }
  729.     public function getSocialInstagram(): ?string
  730.     {
  731.         return $this->socialInstagram;
  732.     }
  733.     public function setSocialInstagram(?string $socialInstagram): self
  734.     {
  735.         $this->socialInstagram $socialInstagram;
  736.         return $this;
  737.     }
  738.     public function getSocialYoutube(): ?string
  739.     {
  740.         return $this->socialYoutube;
  741.     }
  742.     public function setSocialYoutube(?string $socialYoutube): self
  743.     {
  744.         $this->socialYoutube $socialYoutube;
  745.         return $this;
  746.     }
  747.     /**
  748.      * @return Collection<int, Container>
  749.      */
  750.     public function getOwnerContainers(): Collection
  751.     {
  752.         return $this->ownerContainers;
  753.     }
  754.     public function addOwnerContainer(Container $ownerContainer): self
  755.     {
  756.         if (!$this->ownerContainers->contains($ownerContainer)) {
  757.             $this->ownerContainers[] = $ownerContainer;
  758.         }
  759.         return $this;
  760.     }
  761.     public function removeOwnerContainer(Container $ownerContainer): self
  762.     {
  763.         $this->ownerContainers->removeElement($ownerContainer);
  764.         return $this;
  765.     }
  766. }