src/Entity/Reference/ReferencePropertyType.php line 36

Open in your IDE?
  1. <?php
  2. namespace App\Entity\Reference;
  3. use ApiPlatform\Core\Annotation\ApiResource;
  4. use App\Repository\Reference\ReferencePropertyTypeRepository;
  5. use Doctrine\ORM\Mapping as ORM;
  6. use Symfony\Component\Serializer\Annotation\Groups;
  7. /**
  8.  * @ApiResource(
  9.  *     security= "is_granted('ROLE_AGENT') or is_granted('ROLE_MANAGER')",
  10.  *     normalizationContext={"groups"={"reference-property-type:read"}, "swagger_definition_name"="Read"},
  11.  *     denormalizationContext={"groups"={"reference-property-type:write"}, "swagger_definition_name"="Write"},
  12.  *     itemOperations={
  13.  *          "get"
  14.  *     },
  15.  *     collectionOperations={
  16.  *           "get",
  17.  *           "milkiya_reference_property_types"={
  18.  *              "security"="is_granted('PUBLIC_ACCESS')",
  19.  *              "normalization_context"={"groups"={"milkiya:read"}},
  20.  *              "method"="GET",
  21.  *              "path"="/internal/reference_property_types",
  22.  *              "pagination_enabled" = false
  23.  *          },
  24.  *
  25.  *     },
  26.  *     attributes={
  27.  *          "pagination_items_per_page"=10,
  28.  *          "formats"={"jsonld", "json", "html", "jsonhal", "csv"={"text/csv"} }
  29.  *     }
  30.  * )
  31.  * @ORM\Entity(repositoryClass=ReferencePropertyTypeRepository::class)
  32.  */
  33. class ReferencePropertyType
  34. {
  35.     public const TRANSLATION_DOMAIN 'reference_property';
  36.     public const REFERENCE_PROPERTY_TYPE_APARTMENT 'reference.property.type.APARTMENT';
  37.     public const REFERENCE_PROPERTY_TYPE_HOUSE 'reference.property.type.HOUSE';
  38.     public const REFERENCE_PROPERTY_TYPE_BUILDING 'reference.property.type.BUILDING';
  39.     public const REFERENCE_PROPERTY_TYPE_VILLA 'reference.property.type.VILLA';
  40.     public const CODE_REFERENCE_PROPERTY_TYPE_APARTMENT '0';
  41.     public const CODE_REFERENCE_PROPERTY_TYPE_HOUSE '1';
  42.     public const CODE_REFERENCE_PROPERTY_TYPE_BUILDING '2';
  43.     public const CODE_REFERENCE_PROPERTY_TYPE_VILLA '3';
  44.     public const ALL_REFERENCE_PROPERTY_TYPE = [
  45.         self::REFERENCE_PROPERTY_TYPE_APARTMENT,
  46.         self::REFERENCE_PROPERTY_TYPE_HOUSE,
  47.         self::REFERENCE_PROPERTY_TYPE_BUILDING,
  48.         self::REFERENCE_PROPERTY_TYPE_VILLA,
  49.     ];
  50.     public const ALL_CODES_PROPERTY_TYPE = [
  51.         self::CODE_REFERENCE_PROPERTY_TYPE_APARTMENT,
  52.         self::CODE_REFERENCE_PROPERTY_TYPE_HOUSE,
  53.         self::CODE_REFERENCE_PROPERTY_TYPE_BUILDING,
  54.         self::CODE_REFERENCE_PROPERTY_TYPE_VILLA,
  55.     ];
  56.     /**
  57.      * @ORM\Id
  58.      * @ORM\GeneratedValue
  59.      * @ORM\Column(type="integer")
  60.      *
  61.      * @Groups({
  62.      *    "property:read",
  63.      *    "mandate:read",
  64.      *    "transaction-item:read",
  65.      *    "reference-property-type:read",
  66.      *    "milkiya:read",
  67.      *    "business-indication:item:read",
  68.      *    "read:matching",
  69.      *    "property-visit:read",
  70.      * })
  71.      */
  72.     private $id;
  73.     /**
  74.      * @ORM\Column(type="string", length=255)
  75.      *
  76.      * @Groups({
  77.      *    "property:read",
  78.      *    "mandate:read",
  79.      *    "transaction-item:read",
  80.      *    "reference-property-type:read",
  81.      *    "milkiya:read",
  82.      *    "business-indication:item:read",
  83.      *    "read:matching",
  84.      *    "contact:read",
  85.      *    "property-visit:read",
  86.      * })
  87.      */
  88.     private ?string $name;
  89.     /**
  90.      * @ORM\Column(type="string", length=255)
  91.      *
  92.      * @Groups({
  93.      *    "property:read",
  94.      *    "mandate:read",
  95.      *    "transaction-item:read",
  96.      *    "reference-property-type:read",
  97.      *    "milkiya:read",
  98.      *    "business-indication:item:read",
  99.      *    "read:matching",
  100.      *    "property-visit:read",
  101.      * })
  102.      */
  103.     private ?string $code;
  104.     public function getId(): ?int
  105.     {
  106.         return $this->id;
  107.     }
  108.     public function getName(): ?string
  109.     {
  110.         return $this->name;
  111.     }
  112.     public function setName(string $name): self
  113.     {
  114.         $this->name $name;
  115.         return $this;
  116.     }
  117.     public function getCode(): ?string
  118.     {
  119.         return $this->code;
  120.     }
  121.     public function setCode(string $code): self
  122.     {
  123.         $this->code $code;
  124.         return $this;
  125.     }
  126.     public function isApartment(): bool
  127.     {
  128.         if (null === $this) {
  129.             return false;
  130.         }
  131.         return $this->code === self::CODE_REFERENCE_PROPERTY_TYPE_APARTMENT;
  132.     }
  133.     public function isHouse(): bool
  134.     {
  135.         if (null === $this) {
  136.             return false;
  137.         }
  138.         return $this->code === self::CODE_REFERENCE_PROPERTY_TYPE_HOUSE;
  139.     }
  140.     public function isVilla(): bool
  141.     {
  142.         if (null === $this) {
  143.             return false;
  144.         }
  145.         return $this->code === self::CODE_REFERENCE_PROPERTY_TYPE_VILLA;
  146.     }
  147.     public function isBuilding(): bool
  148.     {
  149.         if (null === $this) {
  150.             return false;
  151.         }
  152.         return $this->code === self::CODE_REFERENCE_PROPERTY_TYPE_BUILDING;
  153.     }
  154. }