src/Entity/Payment.php line 73

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use ApiPlatform\Core\Annotation\ApiFilter;
  4. use ApiPlatform\Core\Annotation\ApiResource;
  5. use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\SearchFilter;
  6. use App\Controller\ControllerNotificationCinepay;
  7. use App\Controller\ControllerNotificationCinetpay;
  8. use App\Controller\ControllerReturnUrlCinetpay;
  9. use App\Controller\ControllerReturnUrlCinetpayGet;
  10. use App\Repository\PaymentRepository;
  11. use DateTimeImmutable;
  12. use Doctrine\ORM\Mapping as ORM;
  13. use Symfony\Component\Serializer\Annotation\Groups;
  14. #[ORM\Entity(repositoryClassPaymentRepository::class)]
  15. #[ApiResource(
  16.     // denormalizationContext:[
  17.     //     'groups'=>['payement:write']
  18.     // ],
  19.     order: ["id" => "DESC"],
  20.     normalizationContext:[
  21.         'groups'=>['payement:read']
  22.     ],
  23.     collectionOperations: [
  24.         'get',
  25.         'post',
  26.         'notification' => [
  27.             'method' => 'POST',
  28.             'path' => "payments/notification",
  29.             'controller' => ControllerNotificationCinetpay::class,
  30.             'read' => false,
  31.             'deserialize' => false,
  32.             'input_formats' => [
  33.                 'application/x-www-form-urlencoded' => ['application/x-www-form-urlencoded'],
  34.             ],
  35.         ],
  36.         'return_redicrection' => [
  37.             'method' => 'POST',
  38.             'path' => "payments/return_url",
  39.             'controller' => ControllerReturnUrlCinetpay::class,
  40.             'read' => false,
  41.             'status' => 200,
  42.             'deserialize' => false,
  43.             // 'input_formats' => [
  44.             //     'application/x-www-form-urlencoded' => ['application/x-www-form-urlencoded'],
  45.             // ],
  46.         ],
  47.         'return_get_redicrection' => [
  48.             'method' => 'GET',
  49.             'path' => "payments/return_url",
  50.             'controller' => ControllerReturnUrlCinetpay::class,
  51.             'read' => false,
  52.             'status' => 200,
  53.             'deserialize' => false,
  54.             // 'input_formats' => [
  55.             //     'application/x-www-form-urlencoded' => ['application/x-www-form-urlencoded'],
  56.             // ],
  57.         ],
  58.         'return_redicrection_get' => [
  59.             'method' => 'GET',
  60.             'path' => "payments/return_url_get",
  61.             'controller' => ControllerReturnUrlCinetpayGet::class,
  62.             'read' => false,
  63.             'deserialize' => false
  64.         ],
  65.     ]
  66. )]
  67. #[ApiFilter(SearchFilter::class, properties: ['modePayment'=>'exact','abonnement.academicien'=>'exact'])]
  68. class Payment
  69. {
  70.     #[ORM\Id]
  71.     #[ORM\GeneratedValue]
  72.     #[ORM\Column(type'integer')]
  73.     #[Groups(['reservation:write','reservation:read','payement:read',
  74.     'abonnement:read','abonnement:write','abonnement:read','user:read'])]
  75.     private $id;
  76.     #[ORM\Column(type'integer')]
  77.     #[Groups(['reservation:write','reservation:read','payement:read','abonnement:read',
  78.     'abonnement:write','abonnement:read','user:read'])]
  79.     private $montant;
  80.     #[ORM\ManyToOne(targetEntityModePayement::class)]
  81.     #[ORM\JoinColumn(nullabletrue)]
  82.     #[Groups(['reservation:write','reservation:read',
  83.     'payement:read','abonnement:read','abonnement:write','abonnement:read','user:read'])]
  84.     private $modePayment;
  85.     #[ORM\ManyToOne(targetEntityReservation::class, inversedBy'payements')]
  86.     #[ORM\JoinColumn(nullabletrueonDelete'SET NULL')]
  87.     #[Groups(['payement:read'])]
  88.     private $reservation;
  89.     #[ORM\Column(type'datetime'nullabletrue)]
  90.     #[Groups(['reservation:read','payement:read','abonnement:read','abonnement:read','user:read'])]
  91.     private $date;
  92.     #[ORM\ManyToOne(targetEntityAbonnement::class, inversedBy'payements')]
  93.     #[Groups(['reservation:read','payement:read'])]
  94.     #[ORM\JoinColumn(nullabletrueonDelete'SET NULL')]
  95.     private $abonnement;
  96.     #[ORM\Column(type'string'length45nullabletrue)]
  97.     #[Groups(['reservation:read','payement:read','abonnement:read','abonnement:read','user:read'])]
  98.     private $statut;
  99.     #[ORM\Column(type'string'length255nullabletrue)]
  100.     #[Groups(['reservation:read','payement:read','abonnement:read','abonnement:read','user:read'])]
  101.     private $transactionId;
  102.     #[ORM\Column(type'integer'nullabletrue)]
  103.     #[Groups(['reservation:write','reservation:read','payement:read','abonnement:read',
  104.     'abonnement:write','abonnement:read','user:read'])]
  105.     private $remise;
  106.     public function __construct()
  107.     {
  108.         $this->date = new DateTimeImmutable();
  109.         $this->statut "await";
  110.         $this->remise 0;
  111.         $this->transactionId date("YmdHis");
  112.     }
  113.     public function getId(): ?int
  114.     {
  115.         return $this->id;
  116.     }
  117.     public function getMontant(): ?int
  118.     {
  119.         return $this->montant;
  120.     }
  121.     public function setMontant(int $montant): self
  122.     {
  123.         $this->montant $montant;
  124.         return $this;
  125.     }
  126.     public function getModePayment(): ?ModePayement
  127.     {
  128.         return $this->modePayment;
  129.     }
  130.     public function setModePayment(?ModePayement $modePayment): self
  131.     {
  132.         $this->modePayment $modePayment;
  133.         return $this;
  134.     }
  135.     public function getReservation(): ?Reservation
  136.     {
  137.         return $this->reservation;
  138.     }
  139.     public function setReservation(?Reservation $reservation): self
  140.     {
  141.         $this->reservation $reservation;
  142.         return $this;
  143.     }
  144.     public function getDate(): ?\DateTimeInterface
  145.     {
  146.         return $this->date;
  147.     }
  148.     public function setDate(?\DateTimeInterface $date): self
  149.     {
  150.         $this->date $date;
  151.         return $this;
  152.     }
  153.     public function getAbonnement(): ?Abonnement
  154.     {
  155.         return $this->abonnement;
  156.     }
  157.     public function setAbonnement(?Abonnement $abonnement): self
  158.     {
  159.         $this->abonnement $abonnement;
  160.         return $this;
  161.     }
  162.     public function getStatut(): ?string
  163.     {
  164.         return $this->statut;
  165.     }
  166.     public function setStatut(?string $statut): self
  167.     {
  168.         $this->statut $statut;
  169.         return $this;
  170.     }
  171.     public function getTransactionId(): ?string
  172.     {
  173.         return $this->transactionId;
  174.     }
  175.     public function setTransactionId(?string $transactionId): self
  176.     {
  177.         $this->transactionId $transactionId;
  178.         return $this;
  179.     }
  180.     public function getRemise(): ?int
  181.     {
  182.         return $this->remise;
  183.     }
  184.     public function setRemise(?int $remise): self
  185.     {
  186.         $this->remise $remise;
  187.         return $this;
  188.     }
  189. }