src/Entity/CreditCard.php line 14

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\CreditCardRepository;
  4. use Doctrine\DBAL\Types\Types;
  5. use Doctrine\ORM\Mapping as ORM;
  6. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  7. use Symfony\Component\Validator\Constraints as Asserts;
  8. #[ORM\Entity(repositoryClassCreditCardRepository::class)]
  9. #[UniqueEntity(['number'])]
  10. class CreditCard
  11. {
  12.     #[ORM\Id]
  13.     #[ORM\GeneratedValue]
  14.     #[ORM\Column]
  15.     private ?int $id null;
  16.     #[ORM\Column(length255)]
  17.     #[Asserts\NotBlank]
  18.     private ?string $name null;
  19.     #[ORM\Column(length16)]
  20.     #[Asserts\CardScheme(
  21.         schemes: [Asserts\CardScheme::VISA Asserts\CardScheme::MASTERCARD Asserts\CardScheme::MAESTRO  ]
  22.     )]
  23.     #[Asserts\NotBlank]
  24.     private ?string $number null;
  25.     #[ORM\Column(length3)]
  26.     #[Asserts\Length(3)]
  27.     #[Asserts\NotBlank]
  28.     private ?string $cvcCode null;
  29.     #[ORM\Column(length32)]
  30.     #[Asserts\NotBlank]
  31.     private ?string $holderName null;
  32.     #[Asserts\Range(
  33.         min1,
  34.         max12
  35.     )]
  36.     #[ORM\Column(typeTypes::SMALLINT)]
  37.     private ?int $month null;
  38.     #[Asserts\Range(
  39.         min2023
  40.     )]
  41.     #[ORM\Column(typeTypes::SMALLINT)]
  42.     private ?int $year null;
  43.     public function __construct()
  44.     {
  45.     }
  46.     public function getId(): ?int
  47.     {
  48.         return $this->id;
  49.     }
  50.     public function getName(): ?string
  51.     {
  52.         return $this->name;
  53.     }
  54.     public function setName(string $name): self
  55.     {
  56.         $this->name $name;
  57.         return $this;
  58.     }
  59.     public function getNumber(): ?string
  60.     {
  61.         return $this->number;
  62.     }
  63.     public function setNumber(string $number): self
  64.     {
  65.         $this->number $number;
  66.         return $this;
  67.     }
  68.     public function getCvcCode(): ?string
  69.     {
  70.         return $this->cvcCode;
  71.     }
  72.     public function setCvcCode(?string $cvcCode): self
  73.     {
  74.         $this->cvcCode $cvcCode;
  75.         return $this;
  76.     }
  77.     public function getHolderName(): ?string
  78.     {
  79.         return $this->holderName;
  80.     }
  81.     public function setHolderName(?string $holderName): self
  82.     {
  83.         $this->holderName $holderName;
  84.         return $this;
  85.     }
  86.     public function __toString(): string
  87.     {
  88.         $number_masqued '';
  89.         for ($i=$istrlen($this->getNumber())-$i++ ){
  90.             $number_masqued $number_masqued'*';
  91.         }
  92.         return $number_masqued substr($this->getNumber(),  strlen($this->getNumber())-,  strlen($this->getNumber()) ) . ', ' .$this->getHolderName();
  93.     }
  94.     public function getMonth(): ?int
  95.     {
  96.         return $this->month;
  97.     }
  98.     public function setMonth(int $month): self
  99.     {
  100.         $this->month $month;
  101.         return $this;
  102.     }
  103.     public function getYear(): ?int
  104.     {
  105.         return $this->year;
  106.     }
  107.     public function setYear(int $year): self
  108.     {
  109.         $this->year $year;
  110.         return $this;
  111.     }
  112. }