src/Entity/ChannelUserData/AdminChannelUserData/AdminChannelUserDataPrice.php line 25

Open in your IDE?
  1. <?php
  2. namespace App\Entity\ChannelUserData\AdminChannelUserData;
  3. use App\Entity\ChannelUserData\AdminChannelUserData;
  4. use App\Enum\ChannelUserData\Activity\AdminChannelUserDataActivityTagEnum;
  5. use Doctrine\ORM\Mapping\JoinColumn;
  6. use Nellapp\Bundle\SDKBundle\TrackData\Attribute\TrackEntity;
  7. use Doctrine\ORM\Mapping as ORM;
  8. use Nellapp\Bundle\SDKBundle\TrackData\Attribute\TrackField;
  9. use Nellapp\Bundle\SDKBundle\Utils\NellappFormatService;
  10. #[
  11. ORM\Entity(),
  12. ORM\Table(name: 'channel_user_data_admin_prices'),
  13. TrackEntity(
  14. name: 'Tarif',
  15. fieldGroups: [
  16. 'price' => [
  17. 'tags' => [AdminChannelUserDataActivityTagEnum::PRICES],
  18. ],
  19. ]
  20. ),
  21. ]
  22. class AdminChannelUserDataPrice implements \Stringable
  23. {
  24. #[ORM\Id, ORM\GeneratedValue, ORM\Column(type: 'integer')]
  25. private ?int $id = null;
  26. #[ORM\ManyToOne(targetEntity: AdminChannelUserData::class, fetch: 'EAGER', inversedBy: 'adminChannelUserDataPrices')]
  27. #[JoinColumn(nullable: false, onDelete: 'CASCADE')]
  28. private ?AdminChannelUserData $channelUserData = null;
  29. #[ORM\Column(type: 'integer', nullable: false)]
  30. #[TrackField(name: 'Tarif', fieldKey: 'price', callable: 'formatPrice', callableClass: NellappFormatService::class)]
  31. private ?int $value = null; //cents
  32. #[ORM\Column(type: 'integer', nullable: false, options: ['default' => 0])]
  33. private int $sortOrder = 0;
  34. public function __toString(): string
  35. {
  36. return (string) ($this->sortOrder + 1);
  37. }
  38. public function getId(): ?int
  39. {
  40. return $this->id;
  41. }
  42. public function getChannelUserData(): ?AdminChannelUserData
  43. {
  44. return $this->channelUserData;
  45. }
  46. public function setChannelUserData(?AdminChannelUserData $channelUserData): AdminChannelUserDataPrice
  47. {
  48. $this->channelUserData = $channelUserData;
  49. return $this;
  50. }
  51. public function getValue(): ?int
  52. {
  53. return $this->value;
  54. }
  55. public function setValue(?int $value): AdminChannelUserDataPrice
  56. {
  57. $this->value = $value;
  58. return $this;
  59. }
  60. public function getSortOrder(): int
  61. {
  62. return $this->sortOrder;
  63. }
  64. public function setSortOrder(int $sortOrder): AdminChannelUserDataPrice
  65. {
  66. $this->sortOrder = $sortOrder;
  67. return $this;
  68. }
  69. }