src/Entity/SberbankAcquiringOrder.php line 19

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Service\Helper\DateTimeHelper;
  4. use DateTime;
  5. use Doctrine\ORM\Mapping as ORM;
  6. use Exception;
  7. /**
  8.  * Class SberbankAcquiringOrder
  9.  *
  10.  * @ORM\Table(name="bookkeeping__sberbank_acquiring_orders",
  11.  *     indexes={
  12.  *          @ORM\Index(name="created_at", columns={"created_at"}),
  13.  *          @ORM\Index(name="status", columns={"status"})
  14.  *     })
  15.  * @ORM\Entity(repositoryClass="App\Repository\SberbankAcquiringOrderRepository")
  16.  */
  17. class SberbankAcquiringOrder
  18. {
  19.     const STATUS_IN_PROGRESS 'in_progress';
  20.     const STATUS_SUCCESS 'success';
  21.     const STATUS_ERROR 'error';
  22.     const STATUS_PAID 'paid';
  23.     const STATUS_CREATED 'created';
  24.     const STATUS_REVERSED 'reversed';
  25.     const STATUS_REFUNDED 'refunded';
  26.     const STATUS_REVOKED 'revoked';
  27.     const STATUS_DECLINED 'declined';
  28.     const STATUS_EXPIRED 'expired';
  29.     const STATUS_AUTHORIZED 'authorized';
  30.     const STATUS_CONFIRMED 'confirmed';
  31.     const STATUS_ON_PAYMENT 'on_payment';
  32.     const STATUSES = [
  33.         self::STATUS_CREATED => 'Создан',
  34.         self::STATUS_ERROR => 'Ошибка',
  35.         self::STATUS_PAID => 'Оплачен',
  36.         self::STATUS_REFUNDED => 'Возвращен',
  37.     ];
  38.     const TYPE_ACQUIRING 'acquiring';
  39.     const TYPE_QR 'qr';
  40.     use IdTrait;
  41.     /**
  42.      * @ORM\Column(name="created_at", type="datetime", nullable=false)
  43.      */
  44.     private DateTime $createdAt;
  45.     /**
  46.      * @ORM\Column(name="status", type="string", nullable=false)
  47.      */
  48.     private string $status;
  49.     /**
  50.      * @ORM\Column(name="type", type="string", nullable=true)
  51.      */
  52.     private string $type;
  53.     /**
  54.      * @ORM\Column(name="acquiring_order", type="string", nullable=true, options={"comments":"Номер заказа платежного шлюза."})
  55.      */
  56.     private ?string $acquiringOrder null;
  57.     /**
  58.      * @ORM\Column(name="form_url", type="string", nullable=true, options={"comments":"Адрес страницы оплаты платежного шлюза."})
  59.      */
  60.     private ?string $formUrl null;
  61.     /**
  62.      * @ORM\Column(name="auth_code", type="string", nullable=true)
  63.      */
  64.     private ?string $authCode;
  65.     /**
  66.      * @ORM\Column(name="operation_id", type="string", nullable=true)
  67.      */
  68.     private ?string $operationId;
  69.     /**
  70.      * @ORM\ManyToOne(targetEntity="App\Entity\Order", cascade={"all"})
  71.      * @ORM\JoinColumn(name="order_id", referencedColumnName="id", nullable=false, onDelete="CASCADE")
  72.      */
  73.     private Order $order;
  74.     /**
  75.      * @ORM\Column(name="amount", type="integer")
  76.      */
  77.     private int $amount;
  78.     /**
  79.      * @ORM\Column(name="refund_amount", type="integer", options={"default":0})
  80.      */
  81.     private int $refundAmount 0;
  82.     /**
  83.      * @ORM\Column(name="error", type="text", nullable=true)
  84.      */
  85.     private ?string $error null;
  86.     /**
  87.      * @ORM\Column(name="webhook_request", type="text", nullable=true)
  88.      */
  89.     private ?string $webhookRequest null;
  90.     /**
  91.      * @throws Exception
  92.      */
  93.     public function __construct(
  94.         Order $order,
  95.         int $amount,
  96.         string $type
  97.     )
  98.     {
  99.         $this->createdAt DateTimeHelper::getNowDateTime();
  100.         $this->order $order;
  101.         $this->amount $amount;
  102.         $this->status self::STATUS_IN_PROGRESS;
  103.         $this->type $type;
  104.     }
  105.     public function getOrder(): Order
  106.     {
  107.         return $this->order;
  108.     }
  109.     public function getAmount(): int
  110.     {
  111.         return $this->amount;
  112.     }
  113.     public function getRefundAmount(): int
  114.     {
  115.         return $this->refundAmount;
  116.     }
  117.     public function setRefundAmount(int $refundAmount): SberbankAcquiringOrder
  118.     {
  119.         $this->refundAmount $refundAmount;
  120.         return $this;
  121.     }
  122.     public function getStatus(): string
  123.     {
  124.         return $this->status;
  125.     }
  126.     public function setStatus(string $status): SberbankAcquiringOrder
  127.     {
  128.         $this->status $status;
  129.         return $this;
  130.     }
  131.     public function getAcquiringOrder(): ?string
  132.     {
  133.         return $this->acquiringOrder;
  134.     }
  135.     public function setAcquiringOrder(string $acquiringOrder): SberbankAcquiringOrder
  136.     {
  137.         $this->acquiringOrder $acquiringOrder;
  138.         return $this;
  139.     }
  140.     public function getFormUrl(): ?string
  141.     {
  142.         return $this->formUrl;
  143.     }
  144.     public function setFormUrl(string $formUrl): SberbankAcquiringOrder
  145.     {
  146.         $this->formUrl $formUrl;
  147.         return $this;
  148.     }
  149.     public function getError(): ?string
  150.     {
  151.         return $this->error;
  152.     }
  153.     public function setError(?string $error): SberbankAcquiringOrder
  154.     {
  155.         $this->error $error;
  156.         return $this;
  157.     }
  158.     public function getType(): string
  159.     {
  160.         return $this->type;
  161.     }
  162.     public function getAuthCode(): ?string
  163.     {
  164.         return $this->authCode;
  165.     }
  166.     public function setAuthCode(?string $authCode): SberbankAcquiringOrder
  167.     {
  168.         $this->authCode $authCode;
  169.         return $this;
  170.     }
  171.     public function getOperationId(): ?string
  172.     {
  173.         return $this->operationId;
  174.     }
  175.     public function setOperationId(?string $operationId): SberbankAcquiringOrder
  176.     {
  177.         $this->operationId $operationId;
  178.         return $this;
  179.     }
  180.     public function getWebhookRequest(): ?string
  181.     {
  182.         return $this->webhookRequest;
  183.     }
  184.     public function setWebhookRequest(?string $webhookRequest): SberbankAcquiringOrder
  185.     {
  186.         $this->webhookRequest $webhookRequest;
  187.         return $this;
  188.     }
  189. }