<?php
namespace App\Model\ListingItem;
use App\Model\Listing\Listing;
use App\Model\Traits\ImportableObjectTrait;
use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Validator\Constraints as Assert;
class ListingItem
{
use ImportableObjectTrait;
/**
* @var string
* @Groups({"list_listing_item", "read_listing_item", "read_listing", "sub_listing", "read_post_listing_item", "read_put_listing_item", "write_post_listing", "read_post_listing"})
*/
private $id;
/**
* @var string
* @Assert\NotNull()
* @Groups({"list_listing_item", "read_listing_item", "read_listing", "sub_listing", "write_post_listing_item", "read_post_listing_item", "write_put_listing_item", "read_put_listing_item","write_post_listing", "read_post_listing"})
*/
private $name;
/**
* @var Listing
* @Groups({"list_listing_item", "read_listing_item", "read_listing", "sub_listing", "read_post_listing_item", "read_put_listing_item"})
*/
private $listing;
/**
* @var string
* @Groups({"write_post_listing_item", "write_put_listing_item"})
*/
private $listingId;
/**
* @var string
* @Groups({"list_listing_item", "read_listing_item", "read_listing", "sub_listing", "write_post_listing_item", "read_post_listing_item", "write_put_listing_item", "read_put_listing_item"})
*/
private $type;
/**
* @var bool
* @Assert\NotNull()
* @Groups({"list_listing_item", "read_listing_item", "read_listing", "sub_listing", "write_post_listing_item", "read_post_listing_item", "write_put_listing_item", "read_put_listing_item", "write_post_listing", "read_post_listing"})
*/
private $isActive = true;
/**
* @var int
* @Assert\NotNull()
* @Groups({"list_listing_item", "read_listing_item", "read_listing", "sub_listing", "write_post_listing_item", "read_post_listing_item", "write_put_listing_item", "read_put_listing_item", "write_post_listing", "read_post_listing"})
*/
private $position;
/**
* @return string|null
*/
public function getId(): ?string
{
return $this->id;
}
/**
* @param string $id
*
* @return ListingItem
*/
public function setId(?string $id): self
{
$this->id = $id;
return $this;
}
/**
* @return string|null
*/
public function getName(): ?string
{
return $this->name;
}
/**
* @param string $name
*
* @return ListingItem
*/
public function setName(?string $name): self
{
$this->name = $name;
return $this;
}
/**
* @return Listing|null
*/
public function getListing(): ?Listing
{
return $this->listing;
}
/**
* @param Listing $listing
*
* @return ListingItem
*/
public function setListing(?Listing $listing): self
{
$this->listing = $listing;
$listing->addListingItem($this);
return $this;
}
/**
* @return string|null
*/
public function getListingId(): ?string
{
return $this->listingId;
}
/**
* @param string|null $listingId
*
* @return ListingItem
*/
public function setListingId(?string $listingId): self
{
$this->listingId = $listingId;
return $this;
}
/**
* @return string|null
*/
public function getType(): ?string
{
return $this->type;
}
/**
* @param string $type
*
* @return ListingItem
*/
public function setType(?string $type): self
{
$this->type = $type;
return $this;
}
/**
* @return bool
*/
public function getIsActive(): bool
{
return $this->isActive;
}
/**
* @param bool $isActive
*
* @return ListingItem
*/
public function setIsActive(bool $isActive): self
{
$this->isActive = $isActive;
return $this;
}
/**
* @return string
*/
public function __toString(): string
{
return $this->name;
}
/**
* @return int|null
*/
public function getPosition(): ?int
{
return $this->position;
}
/**
* @param int $position
*
* @return ListingItem
*/
public function setPosition(int $position): self
{
$this->position = $position;
return $this;
}
}