classes/XLite/Model/OrderDetail.php line 63

Open in your IDE?
  1. <?php
  2. /**
  3.  * Copyright (c) 2001-present X-Cart Holdings LLC. All rights reserved.
  4.  * See https://www.x-cart.com/license-agreement.html for license details.
  5.  */
  6. namespace XLite\Model;
  7. use ApiPlatform\Core\Annotation as ApiPlatform;
  8. use Doctrine\ORM\Mapping as ORM;
  9. use XLite\API\Endpoint\OrderDetail\DTO\OrderDetailOutput as Output;
  10. /**
  11.  * Order details
  12.  *
  13.  * @ORM\Entity
  14.  * @ORM\Table (name="order_details",
  15.  *      indexes={
  16.  *          @ORM\Index (name="oname", columns={"order_id","name"})
  17.  *      }
  18.  * )
  19.  * @ApiPlatform\ApiResource(
  20.  *     shortName="Detail",
  21.  *     output=Output::class,
  22.  *     itemOperations={},
  23.  *     collectionOperations={
  24.  *          "get"={
  25.  *              "method"="GET",
  26.  *              "path"="/orders/{id}/details.{_format}",
  27.  *              "requirements"={"id"="\d+"},
  28.  *              "openapi_context"={
  29.  *                  "summary"="Retrieve a list of order details",
  30.  *                  "responses"={
  31.  *                      "404"={
  32.  *                          "description"="Resource not found"
  33.  *                      }
  34.  *                  },
  35.  *                  "parameters"={
  36.  *                      {"name"="id", "in"="path", "required"=true, "schema"={"type"="integer"}},
  37.  *                  }
  38.  *              }
  39.  *          },
  40.  *          "get_cart_details"={
  41.  *              "method"="GET",
  42.  *              "path"="/carts/{id}/details.{_format}",
  43.  *              "requirements"={"id"="\d+"},
  44.  *              "openapi_context"={
  45.  *                  "summary"="Retrieve a list of cart details",
  46.  *                  "responses"={
  47.  *                      "404"={
  48.  *                          "description"="Resource not found"
  49.  *                      }
  50.  *                  },
  51.  *                  "parameters"={
  52.  *                      {"name"="id", "in"="path", "required"=true, "schema"={"type"="integer"}},
  53.  *                  }
  54.  *              }
  55.  *          }
  56.  *     }
  57.  * )
  58.  */
  59. class OrderDetail extends \XLite\Model\AEntity
  60. {
  61.     /**
  62.      * Order detail unique id
  63.      *
  64.      * @var mixed
  65.      *
  66.      * @ORM\Id
  67.      * @ORM\GeneratedValue (strategy="AUTO")
  68.      * @ORM\Column         (type="integer")
  69.      */
  70.     protected $detail_id;
  71.     /**
  72.      * Record name (code)
  73.      *
  74.      * @var string
  75.      *
  76.      * @ORM\Column (type="string", length=255)
  77.      */
  78.     protected $name;
  79.     /**
  80.      * Record label
  81.      *
  82.      * @var string
  83.      *
  84.      * @ORM\Column (type="string", length=255, nullable=true)
  85.      */
  86.     protected $label;
  87.     /**
  88.      * Value
  89.      *
  90.      * @var string
  91.      *
  92.      * @ORM\Column (type="text")
  93.      */
  94.     protected $value;
  95.     /**
  96.      * Relation to a order entity
  97.      *
  98.      * @var \XLite\Model\Order
  99.      *
  100.      * @ORM\ManyToOne  (targetEntity="XLite\Model\Order", inversedBy="details", fetch="LAZY")
  101.      * @ORM\JoinColumn (name="order_id", referencedColumnName="order_id", onDelete="CASCADE")
  102.      */
  103.     protected $order;
  104.     /**
  105.      * Get display record name
  106.      *
  107.      * @return string
  108.      */
  109.     public function getDisplayName()
  110.     {
  111.         return $this->getLabel() ?: $this->getName();
  112.     }
  113.     /**
  114.      * Get detail_id
  115.      *
  116.      * @return integer
  117.      */
  118.     public function getDetailId()
  119.     {
  120.         return $this->detail_id;
  121.     }
  122.     /**
  123.      * Set name
  124.      *
  125.      * @param string $name
  126.      * @return OrderDetail
  127.      */
  128.     public function setName($name)
  129.     {
  130.         $this->name $name;
  131.         return $this;
  132.     }
  133.     /**
  134.      * Get name
  135.      *
  136.      * @return string
  137.      */
  138.     public function getName()
  139.     {
  140.         return $this->name;
  141.     }
  142.     /**
  143.      * Set label
  144.      *
  145.      * @param string $label
  146.      * @return OrderDetail
  147.      */
  148.     public function setLabel($label)
  149.     {
  150.         $this->label $label;
  151.         return $this;
  152.     }
  153.     /**
  154.      * Get label
  155.      *
  156.      * @return string
  157.      */
  158.     public function getLabel()
  159.     {
  160.         return $this->label;
  161.     }
  162.     /**
  163.      * Set value
  164.      *
  165.      * @param string $value
  166.      * @return OrderDetail
  167.      */
  168.     public function setValue($value)
  169.     {
  170.         $this->value $value;
  171.         return $this;
  172.     }
  173.     /**
  174.      * Get value
  175.      *
  176.      * @return string
  177.      */
  178.     public function getValue()
  179.     {
  180.         return $this->value;
  181.     }
  182.     /**
  183.      * Set order
  184.      *
  185.      * @param \XLite\Model\Order $order
  186.      * @return OrderDetail
  187.      */
  188.     public function setOrder(\XLite\Model\Order $order null)
  189.     {
  190.         $this->order $order;
  191.         return $this;
  192.     }
  193.     /**
  194.      * Get order
  195.      *
  196.      * @return \XLite\Model\Order
  197.      */
  198.     public function getOrder()
  199.     {
  200.         return $this->order;
  201.     }
  202. }