src/Entity/Accommodation.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Constant\BigBrotherRequestStatus;
  4. use App\Constant\CleaningStatus;
  5. use App\Constant\OwnerType;
  6. use Doctrine\Common\Collections\ArrayCollection;
  7. use Doctrine\Common\Collections\Collection;
  8. use Symfony\Component\Validator\Constraints as Assert;
  9. use Gedmo\Mapping\Annotation as Gedmo;
  10. use Doctrine\ORM\Mapping as ORM;
  11. /**
  12.  * @ORM\Entity
  13.  * @ORM\Table(name="cal_accommodation")
  14.  */
  15. class Accommodation
  16. {
  17.     /**
  18.      * @ORM\Id
  19.      * @ORM\GeneratedValue
  20.      * @ORM\Column(type="integer")
  21.      */
  22.     private $id;
  23.     /**
  24.      * @Assert\NotBlank()
  25.      * @Assert\Length(max=100)
  26.      * @ORM\Column(type="string", length=100)
  27.      */
  28.     private $name "";
  29.     /**
  30.      * @ORM\OneToOne(targetEntity="App\Entity\Address", cascade={"persist"}, orphanRemoval=true)
  31.      */
  32.     private $address;
  33.     /**
  34.      * @ORM\OneToOne(targetEntity="App\Entity\Translation", cascade={"persist"}, orphanRemoval=true)
  35.      */
  36.     private $description;
  37.     /**
  38.      * @ORM\OneToOne(targetEntity="App\Entity\AccommodationImage", cascade={"persist"}, orphanRemoval=true)
  39.      */
  40.     private $cover;
  41.     /**
  42.      * @ORM\OneToMany(targetEntity="App\Entity\AccommodationImage", mappedBy="accommodation", cascade={"persist"}, orphanRemoval=true)
  43.      * @ORM\OrderBy({"position" = "ASC"})
  44.      */
  45.     private $images;
  46.     /**
  47.      * @ORM\OneToOne(targetEntity="App\Entity\AccommodationImage", cascade={"persist"}, orphanRemoval=true)
  48.      */
  49.     private $plan;
  50.     /**
  51.      * @ORM\Column(type="string", length=255, nullable=true)
  52.      */
  53.     private $virtualTour "";
  54.     /**
  55.      * @ORM\Column(type="boolean", nullable=true)
  56.      */
  57.     private $eco;
  58.     /**
  59.      * @ORM\Column(type="boolean", nullable=true)
  60.      */
  61.     private $petFriendly;
  62.     /**
  63.      * @ORM\Column(type="boolean", nullable=true)
  64.      */
  65.     private $girlsOnly;
  66.     /**
  67.      * @ORM\Column(type="integer", nullable=true)
  68.      */
  69.     private $surface;
  70.     /**
  71.      * @ORM\Column(type="string", length=24, nullable=true)
  72.      */
  73.     private $type "";
  74.     /**
  75.      * @ORM\Column(type="string", length=500, nullable=true)
  76.      */
  77.     private $constructionYear "";
  78.     /**
  79.      * @ORM\Column(type="integer", nullable=true)
  80.      */
  81.     private $totalBedrooms;
  82.     /**
  83.      * @ORM\Column(type="integer", nullable=true)
  84.      */
  85.     private $totalBathrooms;
  86.     /**
  87.      * @ORM\Column(type="integer", nullable=true)
  88.      */
  89.     private $totalKitchens;
  90.     /**
  91.      * @ORM\Column(type="integer", nullable=true)
  92.      */
  93.     private $totalToilets;
  94.     /**
  95.      * @ORM\Column(type="boolean", nullable=true)
  96.      */
  97.     private $garden;
  98.     /**
  99.      * @ORM\OneToOne(targetEntity="App\Entity\Translation", cascade={"persist"}, orphanRemoval=true)
  100.      */
  101.     private $access;
  102.     /**
  103.      * @ORM\ManyToOne(targetEntity="App\Entity\AddressArea")
  104.      */
  105.     private $addressArea;
  106.     /**
  107.      * @ORM\ManyToOne(targetEntity="App\Entity\PropertyListItem")
  108.      */
  109.     private $district;
  110.     /**
  111.      * @ORM\ManyToMany(targetEntity="App\Entity\PropertyListItem")
  112.      * @ORM\JoinTable(name="cal_accommodations_universities")
  113.      */
  114.     private $universities;
  115.     /**
  116.      * @ORM\ManyToMany(targetEntity="App\Entity\PropertyListItem")
  117.      * @ORM\JoinTable(name="cal_accommodations_transports")
  118.      */
  119.     private $transports;
  120.     /**
  121.      * @ORM\ManyToMany(targetEntity="App\Entity\PropertyListItem")
  122.      * @ORM\JoinTable(name="cal_accommodations_equipments")
  123.      */
  124.     private $equipments;
  125.     /**
  126.      * @ORM\ManyToMany(targetEntity="App\Entity\PropertyListItem")
  127.      * @ORM\JoinTable(name="cal_accommodations_security")
  128.      */
  129.     private $security;
  130.     /**
  131.      * @ORM\ManyToMany(targetEntity="App\Entity\PropertyListItem")
  132.      * @ORM\JoinTable(name="cal_accommodations_services")
  133.      */
  134.     private $services;
  135.     /**
  136.      * @ORM\Column(type="datetime", nullable=true)
  137.      */
  138.     private $availabilityDate;
  139.     /**
  140.      * @var \DateTime $createdAt
  141.      *
  142.      * @Gedmo\Timestampable(on="create")
  143.      * @ORM\Column(type="datetime")
  144.      */
  145.     private $createdAt;
  146.     /**
  147.      * @var \DateTime $updated
  148.      *
  149.      * @Gedmo\Timestampable(on="update")
  150.      * @ORM\Column(type="datetime")
  151.      */
  152.     private $updatedAt;
  153.     /**
  154.      * @ORM\Column(type="boolean", nullable=true)
  155.      */
  156.     private $disabled false;
  157.     /**
  158.      * @ORM\Column(type="boolean", nullable=true)
  159.      */
  160.     private $deleted false;
  161.     /**
  162.      * @ORM\OneToMany(targetEntity="App\Entity\AccommodationRoom", mappedBy="accommodation", orphanRemoval=true)
  163.      */
  164.     private $rooms = [];
  165.     /**
  166.      * @ORM\OneToMany(targetEntity="App\Entity\AccommodationReport", mappedBy="accommodation", orphanRemoval=true)
  167.      */
  168.     private $reports = [];
  169.     /**
  170.      * @ORM\OneToMany(targetEntity="App\Entity\Booking", mappedBy="accommodation")
  171.      */
  172.     private $bookings;
  173.     /**
  174.      * @ORM\OneToMany(targetEntity="App\Entity\AccommodationZone", mappedBy="accommodation", cascade={"persist"}, orphanRemoval=true)
  175.      * @ORM\OrderBy({"priority" = "DESC"})
  176.      */
  177.     private $zones;
  178.     /**
  179.      * @ORM\Column(type="string", length=50, nullable=true)
  180.      */
  181.     private $ownerType OwnerType::COLOCALYON_TRANSACTION;
  182.     /**
  183.      * @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="ownedAccommodations")
  184.      */
  185.     private $owner;
  186.     /**
  187.      * @ORM\OneToOne(targetEntity="App\Entity\AccommodationOwnerInfo", cascade={"persist"}, orphanRemoval=true)
  188.      */
  189.     private $ownerInfo;
  190.     /**
  191.      * @ORM\OneToOne(targetEntity="App\Entity\AccommodationInfo", cascade={"persist"}, orphanRemoval=true)
  192.      */
  193.     private $info;
  194.     /**
  195.      * @ORM\OneToMany(targetEntity="App\Entity\Maintenance", mappedBy="accommodation")
  196.      */
  197.     private $maintenances;
  198.     /**
  199.      * @ORM\OneToMany(targetEntity="App\Entity\Survey", mappedBy="accommodation")
  200.      */
  201.     private $surveys;
  202.     /**
  203.      * @ORM\OneToOne(targetEntity="App\Entity\CleaningRecurrence", cascade={"persist"}, orphanRemoval=true)
  204.      */
  205.     private $cleaningRecurrence;
  206.     /**
  207.      * @ORM\OneToMany(targetEntity="App\Entity\CleaningDate", mappedBy="accommodation")
  208.      * @ORM\OrderBy({"date" = "ASC"})
  209.      */
  210.     private $cleaningDates;
  211.     /**
  212.      * @ORM\Column(type="integer", nullable=true)
  213.      */
  214.     private $squareMeterPrice;
  215.     /**
  216.      * @ORM\Column(type="integer", nullable=true)
  217.      */
  218.     private $majoredSquareMeterPrice;
  219.     /**
  220.      * @ORM\OneToMany(targetEntity="App\Entity\Insurance", mappedBy="accommodation", cascade={"persist"})
  221.      */
  222.     private $insurances;
  223.     /**
  224.      * @ORM\OneToOne (targetEntity="App\Entity\WorkflowProject", mappedBy="accommodation")
  225.      */
  226.     private $project;
  227.     /**
  228.      * @ORM\OneToMany (targetEntity="App\Entity\BigBrotherRequest", mappedBy="accommodation")
  229.      */
  230.     private $bigBrotherRequests;
  231.     //--------------------------------------------------------------
  232.     // Utilities
  233.     //--------------------------------------------------------------
  234.     public function __toString() {
  235.         return $this->getName();
  236.     }
  237.     public function __construct()
  238.     {
  239.         $this->zones = new ArrayCollection();
  240.         $this->images = new ArrayCollection();
  241.         $this->rooms = new ArrayCollection();
  242.         $this->reports = new ArrayCollection();
  243.         $this->maintenances = new ArrayCollection();
  244.         $this->surveys = new ArrayCollection();
  245.         $this->cleaningDates = new ArrayCollection();
  246.         $this->insurances = new ArrayCollection();
  247.         $this->bigBrotherRequests = new ArrayCollection();
  248.     }
  249.     public function getLowestPrice() {
  250.         foreach ($this->getActiveRooms() as $room) {
  251.             if(empty($lowest) || $lowest $room->getRent()){
  252.                 $lowest $room->getRent();
  253.             }
  254.         }
  255.         return !empty($lowest) ? $lowest 0;
  256.     }
  257.     public function getTotalAvailableRooms() {
  258.         $total 0;
  259.         foreach ($this->getActiveRooms() as $room) {
  260.             if($room->isAvailable()){
  261.                 $total++;
  262.             }
  263.         }
  264.         return $total;
  265.     }
  266.     public function getFirstRoomAvailability() {
  267.         $dates array_filter($this->getActiveRooms()->map(function(AccommodationRoom $room){
  268.            return $room->getAvailablilityDate();
  269.         })->toArray());
  270.         return !empty($dates) ? min($dates) : null;
  271.     }
  272.     public function getActiveRooms() {
  273.         return $this->getRooms()->filter(function(AccommodationRoom $room){
  274.             return !$room->getDisabled();
  275.         });
  276.     }
  277.     public function getRoommates() {
  278.         $users = [];
  279.         foreach ($this->getActiveRooms() as $room) {
  280.             if(!$room->isAvailable()){
  281.                 $occupancy $room->getOccupancy();
  282.                 if ($occupancy instanceof AccommodationOccupancy) {
  283.                     $users[] = $occupancy->getUser();
  284.                 }
  285.             }
  286.         }
  287.         return $users;
  288.     }
  289.     public function getCleaningDuration() {
  290.         return !empty($this->getCleaningRecurrence()) ? $this->getCleaningRecurrence()->getDuration() : 60;
  291.     }
  292.     public function getNextsCleaningDates() {
  293.         return $this->getCleaningDates()->slice(03);
  294.     }
  295.     public function getNextsActiveCleaningDates() {
  296.         return $this->getCleaningDates()->filter(function($cleaningDate){
  297.             return $cleaningDate->getStatus() === CleaningStatus::TODO && !empty($cleaningDate->getCleaner());
  298.         })->slice(02);
  299.     }
  300.     public function getRoomsWithCleaning() {
  301.         return $this->getRooms()->filter(function ($room) {
  302.             $occupancy $room->getOccupancy();
  303.             if ($occupancy instanceof AccommodationOccupancy) {
  304.                 return $occupancy->isActive() && $occupancy->getActiveCleaning();
  305.             }
  306.             return false;
  307.         });
  308.     }
  309.     public function hasEmptyZone() {
  310.         if ($this->getZones()->count() === 0) return true;
  311.         $hasEmptyZone false;
  312.         foreach ($this->getZones() as $zone) {
  313.             if ($zone->isEmpty()) $hasEmptyZone true;
  314.         }
  315.         foreach ($this->getRooms() as $room) {
  316.             if ($room->hasEmptyZone()) $hasEmptyZone true;
  317.         }
  318.         return $hasEmptyZone;
  319.     }
  320.     public function export() {
  321.         $datas = [
  322.             "id" => $this->getId(),
  323.             "name" => $this->getName(),
  324.             "address" => $this->getAddress()->getFullAddress(),
  325.             "surface" => $this->getSurface(),
  326.             "total_bedrooms" => $this->getTotalBedrooms(),
  327.             "total_bathrooms" => $this->getTotalBathrooms(),
  328.             "total_kitchens" => $this->getTotalKitchens(),
  329.             "total_toilets" => $this->getTotalToilets(),
  330.             "total_roommates" => count($this->getRoommates()),
  331.         ];
  332.         if ($this->getOwner() instanceof User) {
  333.             $datas array_merge($datas, [
  334.                 "owner" => $this->getOwner()->getFullName(),
  335.             ]);
  336.         }
  337.         return $datas;
  338.     }
  339.     public function getPaymentDelegationAmount() {
  340.         return $this->getOwnerInfo() ? $this->getOwnerInfo()->getPaymentDelegationAmount() : 0;
  341.     }
  342.     public function getActiveBigBrotherRequests(): Collection {
  343.         return $this->getBigBrotherRequests()->filter(function($r) {
  344.             return $r->getStatus() !== BigBrotherRequestStatus::CLOSED;
  345.         });
  346.     }
  347.     public function getActiveBigBrotherAppointment() {
  348.         $appointment null;
  349.         foreach ($this->getActiveBigBrotherRequests() as $request) {
  350.             if ($request->getAppointment() && $request->getAppointment()->getDate() > new \DateTime()) {
  351.                 $appointment $request->getAppointment();
  352.             }
  353.         }
  354.         return $appointment;
  355.     }
  356.     //--------------------------------------------------------------
  357.     // Collections
  358.     //--------------------------------------------------------------
  359.     public function addImage(AccommodationImage $image)
  360.     {
  361.         $image->setAccommodation($this);
  362.         $this->images[] = $image;
  363.         return $this;
  364.     }
  365.     public function removeImage(AccommodationImage $image)
  366.     {
  367.         $this->images->removeElement($image);
  368.     }
  369.     //--------------------------------------------------------------
  370.     // Getters and setters
  371.     //--------------------------------------------------------------
  372.     public function getImages()
  373.     {
  374.         return $this->images;
  375.     }
  376.     public function setImages($images)
  377.     {
  378.         $this->images $images;
  379.     }
  380.     /**
  381.      * @return mixed
  382.      */
  383.     public function getId()
  384.     {
  385.         return $this->id;
  386.     }
  387.     /**
  388.      * @param mixed $id
  389.      */
  390.     public function setId($id)
  391.     {
  392.         $this->id $id;
  393.     }
  394.     /**
  395.      * @return mixed
  396.      */
  397.     public function getName()
  398.     {
  399.         return $this->name;
  400.     }
  401.     /**
  402.      * @param mixed $name
  403.      */
  404.     public function setName($name)
  405.     {
  406.         $this->name $name;
  407.     }
  408.     /**
  409.      * @return mixed
  410.      */
  411.     public function getAddress()
  412.     {
  413.         return $this->address;
  414.     }
  415.     /**
  416.      * @param mixed $address
  417.      */
  418.     public function setAddress($address)
  419.     {
  420.         $this->address $address;
  421.     }
  422.     /**
  423.      * @return mixed
  424.      */
  425.     public function getDescription()
  426.     {
  427.         return $this->description;
  428.     }
  429.     /**
  430.      * @param mixed $description
  431.      */
  432.     public function setDescription($description)
  433.     {
  434.         $this->description $description;
  435.     }
  436.     /**
  437.      * @return mixed
  438.      */
  439.     public function getCover()
  440.     {
  441.         return $this->cover;
  442.     }
  443.     /**
  444.      * @param mixed $cover
  445.      */
  446.     public function setCover($cover)
  447.     {
  448.         $this->cover $cover;
  449.     }
  450.     /**
  451.      * @return mixed
  452.      */
  453.     public function getVirtualTour()
  454.     {
  455.         return $this->virtualTour;
  456.     }
  457.     /**
  458.      * @param mixed $virtualTour
  459.      */
  460.     public function setVirtualTour($virtualTour)
  461.     {
  462.         $this->virtualTour $virtualTour;
  463.     }
  464.     /**
  465.      * @return \DateTime
  466.      */
  467.     public function getCreatedAt(): \DateTime
  468.     {
  469.         return $this->createdAt;
  470.     }
  471.     /**
  472.      * @param \DateTime $createdAt
  473.      */
  474.     public function setCreatedAt(\DateTime $createdAt)
  475.     {
  476.         $this->createdAt $createdAt;
  477.     }
  478.     /**
  479.      * @return \DateTime
  480.      */
  481.     public function getUpdatedAt(): \DateTime
  482.     {
  483.         return $this->updatedAt;
  484.     }
  485.     /**
  486.      * @param \DateTime $updatedAt
  487.      */
  488.     public function setUpdatedAt(\DateTime $updatedAt)
  489.     {
  490.         $this->updatedAt $updatedAt;
  491.     }
  492.     /**
  493.      * @return mixed
  494.      */
  495.     public function getPetFriendly()
  496.     {
  497.         return $this->petFriendly;
  498.     }
  499.     /**
  500.      * @param mixed $petFriendly
  501.      */
  502.     public function setPetFriendly($petFriendly)
  503.     {
  504.         $this->petFriendly $petFriendly;
  505.     }
  506.     /**
  507.      * @return mixed
  508.      */
  509.     public function getGirlsOnly()
  510.     {
  511.         return $this->girlsOnly;
  512.     }
  513.     /**
  514.      * @param mixed $girlsOnly
  515.      */
  516.     public function setGirlsOnly($girlsOnly)
  517.     {
  518.         $this->girlsOnly $girlsOnly;
  519.     }
  520.     /**
  521.      * @return mixed
  522.      */
  523.     public function getSurface()
  524.     {
  525.         return $this->surface;
  526.     }
  527.     /**
  528.      * @param mixed $surface
  529.      */
  530.     public function setSurface($surface)
  531.     {
  532.         $this->surface $surface;
  533.     }
  534.     /**
  535.      * @return mixed
  536.      */
  537.     public function getType()
  538.     {
  539.         return $this->type;
  540.     }
  541.     /**
  542.      * @param mixed $type
  543.      */
  544.     public function setType($type)
  545.     {
  546.         $this->type $type;
  547.     }
  548.     /**
  549.      * @return mixed
  550.      */
  551.     public function getTotalBedrooms()
  552.     {
  553.         return $this->totalBedrooms;
  554.     }
  555.     /**
  556.      * @param mixed $totalBedrooms
  557.      */
  558.     public function setTotalBedrooms($totalBedrooms)
  559.     {
  560.         $this->totalBedrooms $totalBedrooms;
  561.     }
  562.     /**
  563.      * @return mixed
  564.      */
  565.     public function getTotalBathrooms()
  566.     {
  567.         return $this->totalBathrooms;
  568.     }
  569.     /**
  570.      * @param mixed $totalBathrooms
  571.      */
  572.     public function setTotalBathrooms($totalBathrooms)
  573.     {
  574.         $this->totalBathrooms $totalBathrooms;
  575.     }
  576.     /**
  577.      * @return mixed
  578.      */
  579.     public function getTotalKitchens()
  580.     {
  581.         return $this->totalKitchens;
  582.     }
  583.     /**
  584.      * @param mixed $totalKitchens
  585.      */
  586.     public function setTotalKitchens($totalKitchens)
  587.     {
  588.         $this->totalKitchens $totalKitchens;
  589.     }
  590.     /**
  591.      * @return mixed
  592.      */
  593.     public function getTotalToilets()
  594.     {
  595.         return $this->totalToilets;
  596.     }
  597.     /**
  598.      * @param mixed $totalToilets
  599.      */
  600.     public function setTotalToilets($totalToilets)
  601.     {
  602.         $this->totalToilets $totalToilets;
  603.     }
  604.     /**
  605.      * @return mixed
  606.      */
  607.     public function getGarden()
  608.     {
  609.         return $this->garden;
  610.     }
  611.     /**
  612.      * @param mixed $garden
  613.      */
  614.     public function setGarden($garden)
  615.     {
  616.         $this->garden $garden;
  617.     }
  618.     /**
  619.      * @return mixed
  620.      */
  621.     public function getAccess()
  622.     {
  623.         return $this->access;
  624.     }
  625.     /**
  626.      * @param mixed $access
  627.      */
  628.     public function setAccess($access)
  629.     {
  630.         $this->access $access;
  631.     }
  632.     /**
  633.      * @return mixed
  634.      */
  635.     public function getDistrict()
  636.     {
  637.         return $this->district;
  638.     }
  639.     /**
  640.      * @param mixed $district
  641.      */
  642.     public function setDistrict($district)
  643.     {
  644.         $this->district $district;
  645.     }
  646.     /**
  647.      * @return mixed
  648.      */
  649.     public function getUniversities()
  650.     {
  651.         return $this->universities;
  652.     }
  653.     /**
  654.      * @param mixed $universities
  655.      */
  656.     public function setUniversities($universities)
  657.     {
  658.         $this->universities $universities;
  659.     }
  660.     /**
  661.      * @return mixed
  662.      */
  663.     public function getTransports()
  664.     {
  665.         return $this->transports;
  666.     }
  667.     /**
  668.      * @param mixed $transports
  669.      */
  670.     public function setTransports($transports)
  671.     {
  672.         $this->transports $transports;
  673.     }
  674.     /**
  675.      * @return mixed
  676.      */
  677.     public function getEquipments()
  678.     {
  679.         return $this->equipments;
  680.     }
  681.     /**
  682.      * @param mixed $equipments
  683.      */
  684.     public function setEquipments($equipments)
  685.     {
  686.         $this->equipments $equipments;
  687.     }
  688.     /**
  689.      * @return mixed
  690.      */
  691.     public function getSecurity()
  692.     {
  693.         return $this->security;
  694.     }
  695.     /**
  696.      * @param mixed $security
  697.      */
  698.     public function setSecurity($security)
  699.     {
  700.         $this->security $security;
  701.     }
  702.     /**
  703.      * @return mixed
  704.      */
  705.     public function getServices()
  706.     {
  707.         return $this->services;
  708.     }
  709.     /**
  710.      * @param mixed $services
  711.      */
  712.     public function setServices($services)
  713.     {
  714.         $this->services $services;
  715.     }
  716.     /**
  717.      * @return mixed
  718.      */
  719.     public function getDisabled()
  720.     {
  721.         return $this->disabled;
  722.     }
  723.     /**
  724.      * @param mixed $disabled
  725.      */
  726.     public function setDisabled($disabled)
  727.     {
  728.         $this->disabled $disabled;
  729.     }
  730.     /**
  731.      * @return mixed
  732.      */
  733.     public function getRooms()
  734.     {
  735.         return $this->rooms;
  736.     }
  737.     /**
  738.      * @param mixed $rooms
  739.      */
  740.     public function setRooms($rooms)
  741.     {
  742.         $this->rooms $rooms;
  743.     }
  744.     /**
  745.      * @return mixed
  746.      */
  747.     public function getBookings()
  748.     {
  749.         return $this->bookings;
  750.     }
  751.     /**
  752.      * @param mixed $bookings
  753.      */
  754.     public function setBookings($bookings)
  755.     {
  756.         $this->bookings $bookings;
  757.     }
  758.     /**
  759.      * @return mixed
  760.      */
  761.     public function getZones()
  762.     {
  763.         return $this->zones;
  764.     }
  765.     /**
  766.      * @param mixed $zones
  767.      */
  768.     public function setZones($zones): void
  769.     {
  770.         $this->zones $zones;
  771.     }
  772.     /**
  773.      * @return mixed
  774.      */
  775.     public function getOwner()
  776.     {
  777.         return $this->owner;
  778.     }
  779.     /**
  780.      * @param mixed $owner
  781.      */
  782.     public function setOwner($owner): void
  783.     {
  784.         $this->owner $owner;
  785.     }
  786.     /**
  787.      * @return string
  788.      */
  789.     public function getOwnerType(): string
  790.     {
  791.         return $this->ownerType;
  792.     }
  793.     /**
  794.      * @param string $ownerType
  795.      */
  796.     public function setOwnerType(string $ownerType): void
  797.     {
  798.         $this->ownerType $ownerType;
  799.     }
  800.     /**
  801.      * @return mixed
  802.      */
  803.     public function getOwnerInfo()
  804.     {
  805.         return $this->ownerInfo;
  806.     }
  807.     /**
  808.      * @param mixed $ownerInfo
  809.      */
  810.     public function setOwnerInfo($ownerInfo): void
  811.     {
  812.         $this->ownerInfo $ownerInfo;
  813.     }
  814.     /**
  815.      * @return mixed
  816.      */
  817.     public function getInfo()
  818.     {
  819.         return $this->info;
  820.     }
  821.     /**
  822.      * @param mixed $info
  823.      */
  824.     public function setInfo($info): void
  825.     {
  826.         $this->info $info;
  827.     }
  828.     /**
  829.      * @return mixed
  830.      */
  831.     public function getSurveys()
  832.     {
  833.         return $this->surveys;
  834.     }
  835.     /**
  836.      * @param mixed $surveys
  837.      */
  838.     public function setSurveys($surveys): void
  839.     {
  840.         $this->surveys $surveys;
  841.     }
  842.     /**
  843.      * @return ArrayCollection
  844.      */
  845.     public function getCleaningDates()
  846.     {
  847.         return $this->cleaningDates;
  848.     }
  849.     /**
  850.      * @param ArrayCollection $cleaningDates
  851.      */
  852.     public function setCleaningDates($cleaningDates): void
  853.     {
  854.         $this->cleaningDates $cleaningDates;
  855.     }
  856.     /**
  857.      * @return mixed
  858.      */
  859.     public function getCleaningRecurrence()
  860.     {
  861.         return $this->cleaningRecurrence;
  862.     }
  863.     /**
  864.      * @param mixed $cleaningRecurrence
  865.      */
  866.     public function setCleaningRecurrence($cleaningRecurrence): void
  867.     {
  868.         $this->cleaningRecurrence $cleaningRecurrence;
  869.     }
  870.     /**
  871.      * @return string
  872.      */
  873.     public function getConstructionYear()
  874.     {
  875.         return $this->constructionYear;
  876.     }
  877.     /**
  878.      * @param string $constructionYear
  879.      */
  880.     public function setConstructionYear($constructionYear): void
  881.     {
  882.         $this->constructionYear $constructionYear;
  883.     }
  884.     /**
  885.      * @return mixed
  886.      */
  887.     public function getSquareMeterPrice()
  888.     {
  889.         return $this->squareMeterPrice 100;
  890.     }
  891.     /**
  892.      * @param mixed $squareMeterPrice
  893.      */
  894.     public function setSquareMeterPrice($squareMeterPrice): void
  895.     {
  896.         $this->squareMeterPrice $squareMeterPrice 100;
  897.     }
  898.     /**
  899.      * @return mixed
  900.      */
  901.     public function getMajoredSquareMeterPrice()
  902.     {
  903.         return $this->majoredSquareMeterPrice 100;
  904.     }
  905.     /**
  906.      * @param mixed $majoredSquareMeterPrice
  907.      */
  908.     public function setMajoredSquareMeterPrice($majoredSquareMeterPrice): void
  909.     {
  910.         $this->majoredSquareMeterPrice $majoredSquareMeterPrice 100;
  911.     }
  912.     /**
  913.      * @return mixed
  914.      */
  915.     public function getPlan()
  916.     {
  917.         return $this->plan;
  918.     }
  919.     /**
  920.      * @param mixed $plan
  921.      */
  922.     public function setPlan($plan): void
  923.     {
  924.         $this->plan $plan;
  925.     }
  926.     /**
  927.      * @return Collection
  928.      */
  929.     public function getMaintenances(): Collection
  930.     {
  931.         return $this->maintenances;
  932.     }
  933.     /**
  934.      * @param Collection $maintenances
  935.      */
  936.     public function setMaintenances(Collection $maintenances): void
  937.     {
  938.         $this->maintenances $maintenances;
  939.     }
  940.     /**
  941.      * @return Collection
  942.      */
  943.     public function getInsurances(): Collection
  944.     {
  945.         return $this->insurances;
  946.     }
  947.     /**
  948.      * @param Collection $insurances
  949.      */
  950.     public function setInsurances(Collection $insurances): void
  951.     {
  952.         $this->insurances $insurances;
  953.     }
  954.     /**
  955.      * @return mixed
  956.      */
  957.     public function getProject()
  958.     {
  959.         return $this->project;
  960.     }
  961.     /**
  962.      * @param mixed $project
  963.      */
  964.     public function setProject($project): void
  965.     {
  966.         $this->project $project;
  967.     }
  968.     /**
  969.      * @return bool
  970.      */
  971.     public function isDeleted(): bool
  972.     {
  973.         return $this->deleted;
  974.     }
  975.     /**
  976.      * @param bool $deleted
  977.      */
  978.     public function setDeleted(bool $deleted): void
  979.     {
  980.         $this->deleted $deleted;
  981.     }
  982.     /**
  983.      * @return mixed
  984.      */
  985.     public function getEco()
  986.     {
  987.         return $this->eco;
  988.     }
  989.     /**
  990.      * @param mixed $eco
  991.      */
  992.     public function setEco($eco): void
  993.     {
  994.         $this->eco $eco;
  995.     }
  996.     /**
  997.      * @return Collection
  998.      */
  999.     public function getReports(): Collection
  1000.     {
  1001.         return $this->reports;
  1002.     }
  1003.     /**
  1004.      * @param Collection $reports
  1005.      */
  1006.     public function setReports(Collection $reports): void
  1007.     {
  1008.         $this->reports $reports;
  1009.     }
  1010.     /**
  1011.      * @return mixed
  1012.      */
  1013.     public function getAvailabilityDate()
  1014.     {
  1015.         return $this->availabilityDate;
  1016.     }
  1017.     /**
  1018.      * @param mixed $availabilityDate
  1019.      */
  1020.     public function setAvailabilityDate($availabilityDate): void
  1021.     {
  1022.         $this->availabilityDate $availabilityDate;
  1023.     }
  1024.     /**
  1025.      * @return Collection
  1026.      */
  1027.     public function getBigBrotherRequests(): Collection
  1028.     {
  1029.         return $this->bigBrotherRequests;
  1030.     }
  1031.     /**
  1032.      * @param Collection $bigBrotherRequests
  1033.      */
  1034.     public function setBigBrotherRequests(Collection $bigBrotherRequests): void
  1035.     {
  1036.         $this->bigBrotherRequests $bigBrotherRequests;
  1037.     }
  1038.     /**
  1039.      * @return mixed
  1040.      */
  1041.     public function getAddressArea()
  1042.     {
  1043.         return $this->addressArea;
  1044.     }
  1045.     /**
  1046.      * @param mixed $addressArea
  1047.      */
  1048.     public function setAddressArea($addressArea): void
  1049.     {
  1050.         $this->addressArea $addressArea;
  1051.     }
  1052. }